存档

2014年5月 的存档

Centos6安装gitlab+ldap认证

2014年5月27日 3 条评论
 

 

1.环境介绍

 

系统:centos 6.5 x64

git要求 1.7.10+

ruby要求1.93+,我这里用的2.1.2版本

redis要求2.0+

 

GitLab,是一个利用 Ruby on Rails 开发的开源应用程序,实现一个自托管的Git项目仓库,可通过Web界面进行访问公开的或者私人项目。

它拥有与Github类似的功能,能够浏览源代码,管理缺陷和注释。可以管理团队对仓库的访问,它非常易于浏览提交过的版本并提供一个文件历史库

 

2.添加EPEL安装源

 

 

3.安装GitLab所需依赖包和工具

 

4.安装ruby2.1

 

Gitlab 是基于 Ruby on Rails 开发的工具,要跑起来的话自然少不了安装 Ruby

查看下ruby是否安装正确

国外的gem源太慢了,这里用taobao的源  http://ruby.taobao.org/

安装bundle:

所有有bundle命令的执行都要注意
在执行目录下,要修改Gemfile文件头的rubygems.org到ruby.taobao.org,否则是不工作的

 

5.安装 Git 和 Gitolite

 

由于gitlab对git版本要1.7.10+,而默认centos 6 yum源里面的git是1.7.1版本,所以这里我们要选择另外的源

 

yum配置好后,这里开始安装

 

6.安装nginx mysql redis

 

软件安装

 创建gitlab 数据库用户

 添加git账户

这里就不设置密码,git帐号不用登录系统

 

7.安装GitLab-shell

 

软件下载

 修改配置文件

注意:如果gitlab是使用https访问,则需将http替换成https,配置文件中的self_signed_cert要修改成true,否则gitlab shell在通过api和gitlab进行通信的时候就会出现错误,导致项目push出错。因为后面配置web服务器的时候是使用ssl,所以这里要按照ssl的方式配置。

Tips: 另外如果使用的域名是测试域名,不要忘记在系统的/etc/hosts做域名映射。

安装

8. 安装GitLab

 

软件下载

 配置

一些全局配置

配置数据库访问文件

编辑config/database.yml,设置其中连接数据库的账号密码,笔者的配置部分如下:

修改其中username和password就可以了,其中密码就是上面数据库步骤中创建gitlab用户的密码。

确保该文件只有git账号有权限读取。

 

9.安装Gems

这里要用root安装

安装必需的 Ruby Gems

 

初始化数据库数据(执行输入 Yes 继续创建)

检查应用程序状态

启动gitlab服务

检查配置(要所有选项都通过)

有个权限提示

这里修改下权限

 

10.nginx配置

 

之前已经yum安装过了,这里修改下配置。

 

 

11.web访问

 

访问http://gitlab.54im.com报502,群里大神曹岩帮忙指导,没下载静态资源。

nginx日志中报

Error: upstream prematurely closed connection while reading response header from upstream

执行下面这个初始化下gitlab的资源

 

继续访问,还是502,nginx日志里面

2014/05/28 08:56:10 [crit] 9288#0: *24 connect() to unix:/home/git/gitlab/tmp/sockets/gitlab.socket failed (13: Permission denied) while connecting to upstream, client: 192.168.1.4, server: gitlab.54im.com, request: “GET /favicon.ico HTTP/1.1”, upstream: “http://unix:/home/git/gitlab/tmp/sockets/gitlab.socket:/favicon.ico”, host: “gitlab.54im.com”

 

想起来,刚刚我没有su – git用户下拉取资源,这里chown -R git.git /home/git/gitlab

nginx的运行用户是nginx,gitlab用户运行的用户是git,这里将nginx加入git组

上面解决好后,再次访问  http://gitlab.54im.com

这里默认的帐号密码就是之前初始化的时候,给你的帐号密码

Administrator account created:

login………admin@local.host
password……5iveL!fe

登录后界面是这样的

12.邮件配置

 

Gitlab邮件提醒方便跟踪项目进度,我这里用GMAIL的stmp来发送邮件


 

#配置好你的邮箱和密码

 

这里我去新建个用户,测试下邮件发送功能
在163邮箱中收到gitlab用户发来的邮件
用帐号 ldtrain@163.com登录,密码  ouuNZdi7,第一次会让你重置密码的

13.ldap配置

 

cd /home/git/gitlab

vi config/gitlab.yml

port 这里填openldap端口,如果是用加密的话,端口是 636

method 这里是openldap认证方式,plain是简单认证,还有ssl 和tls,如果是加密的话选ssl或者tls,对应端口也是636

base:填自己的组织架构,当然也可以精确到OU, ou=People,dc=openldap,dc=54im,dc=com 这里有只有People这个OU下面的用户能登录到gitlab

user_filter 禁止某个用户登录

bind_dn 这个是指定连接openldap的帐号

password 这个是指定连接openldap的账户密码

 

登录

登录的时候报 Could not authorize you from LDAP because “(ldap) account must provide a dn,uid and email address”

感谢@张成 成爷指导 gitlab帐号必须要有邮件这个属性,我的openldap里面没有,这里我在openldap里面给ldapuser 这个帐号添加email属性。

 

14.gitlab使用

  • gitlab管理员新建用户组
  • gitlab管理员新建项目
选择该项目是公开还是私有项目
如果你想进行代码的上传与下载等操作,需要你把自己的ssh key导入到gitlab里
gitlab管理员添加成员

想让其他用户也能看到并下载上次这个项目,需要将用户加入到这个组

用户登录后就可以看到这个项目,想要上传下载代码,首先得让管理员开相关权限,然后把自己的ssh key加入到gitlab中

上面有5个权限,我们来看下具体有哪些区别

guest    (r-)

reporter    (r)

developer    (rw)

master      (rw)(member,proteted,branch)

owner     (rw)(rename,transfer)

 

  • git用户操作

在linux上使用

 

在windows上使用

 

附录:

  • 如果访问报500 We’re sorry, but something went wrong

 

发现redis端口连接不上,我这里确实忘记开redis了, /etc/init.d/redis start

 

  • 如果第一次登录报 invalid email or password

可能由于你数据库没有初始化好

如果在linux客户端提交的时候报

/usr/bin/env: ruby: No such file or directory
fatal: The remote end hung up unexpectedly

在gitlab服务器端做如下操作

$rubyhome=ruby安装目录

sudo ln -s $rubyhome/ruby /usr/bin/ruby
sudo ln -s $rubyhome/bin/gem /usr/bin/gem

 

本文参考:

http://www.01happy.com/centos-6-5-install-gitlab/

http://longgeek.com/2013/12/26/ci-system-structures-ii-gitlab-installation/

 

分类: git 标签: , , , ,

Centos6 yum安装openldap+phpldapadmin+TLS+双主配置

2014年5月21日 14 条评论
 

 

1.概念介绍

 

LDAP是轻量目录访问协议,英文全称是Lightweight Directory Access Protocol,一般都简称为LDAP。它是基于X.500标准的,但是简单多了并且可以根据需要定制。与X.500不同,LDAP支持TCP/IP,这对访问Internet是必须的。LDAP的核心规范在RFC中都有定义,所有与LDAP相关的RFC都可以在LDAPman RFC网页中找到。 简单说来,LDAP是一个得到关于人或者资源的集中、静态数据的快速方式。 LDAP是一个用来发布目录信息到许多不同资源的协议。通常它都作为一个集中的地址本使用,不过根据组织者的需要,它可以做得更加强大

 

现在市场上有关LDAP的产品已有很多,各大软件公司都在他们的产品中集成了LDAP服务,如Microsoft的ActiveDirectory、Lotus的Domino Directory、IBM的WebSphere中也集成了LDAP服务。LDAP的开源实现是OpenLDAP,它比商业产品一点也不差,而且源码开放。

OpenLDAP 是最常用的目录服务之一,它是一个由开源社区及志愿者开发和管理的一个开源项目,提供了目录服务的所有功能,包括目录搜索、身份认证、安全通道、过滤器等等。大多数的 Linux 发行版里面都带有 OpenLDAP 的安装包。OpenLDAP 服务默认使用非加密的 TCP/IP 协议来接收服务的请求,并将查询结果传回到客户端。由于大多数目录服务都是用于系统的安全认证部分比如:用户登录和身份验证,所以它也支持使用基于 SSL/TLS 的加密协议来保证数据传送的保密性和完整性。OpenLDAP 是使用 OpenSSL 来实现 SSL/TLS 加密通信的

这里引申一下LDAP主要的简称含义:

  • o– organization(组织-公司)
  • ou – organization unit(组织单元-部门)
  • c – countryName(国家)
  • dc – domainComponent(域名)
  • sn – suer name(真实名称)
  • cn – common name(常用名称)

阅读全文…

[菜鸟学php]PHP版简单计算器

2014年5月19日 没有评论

用到的知识点

1. 三元运算

语法:条件 ? 结果1 : 结果2
说明:问号前面的位置是判断的条件,如果满足条件时结果1,不满足时结果2。

再看个例子

那么三元的表示法就是

阅读全文…

分类: PHP 标签: , , , , , , ,

[简单部署cloudstack]Centos6.5安装Cloudstack 4.3之升级虚拟机配置

2014年5月19日 没有评论

[简单部署cloudstack]Centos6.5安装Cloudstack 4.3之在线迁移虚拟机

2014年5月16日 1 条评论

钿畑的文章索引

 

 

[简单部署cloudstack]Centos6.5安装Cloudstack 4.3之概念介绍
[简单部署cloudstack]Centos6.5安装Cloudstack 4.3之管理节点和计算节点安装
[简单部署cloudstack]Centos6.5安装Cloudstack 4.3之配置详解
[简单部署cloudstack]Centos6.5安装Cloudstack 4.3之在线迁移虚拟机
[简单部署cloudstack]Centos6.5安装Cloudstack 4.3之升级虚拟机配置
[简单部署cloudstack]cloudstack名词解释

 

1. 环境介绍

cloudstack管理服务器+节点1: 192.168.20.36

节点2:  192.168.20.58

下面我的cloudstack 上有这这几个实例,其中test3 运行在节点2上面,名字叫cloudstack这个虚拟机运行在cloudstack管理机上也就是节点1,可以通过查看主机来看虚拟机运行在哪个宿主机,也可以通过在服务器上运行 virsh list –all 来查看。

阅读全文…

[简单部署cloudstack]Centos6.5安装Cloudstack 4.3之配置详解

2014年5月16日 8 条评论
 

 

[简单部署cloudstack]Centos6.5安装Cloudstack 4.3之概念介绍
[简单部署cloudstack]Centos6.5安装Cloudstack 4.3之管理节点和计算节点安装
[简单部署cloudstack]Centos6.5安装Cloudstack 4.3之配置详解
[简单部署cloudstack]Centos6.5安装Cloudstack 4.3之在线迁移虚拟机
[简单部署cloudstack]Centos6.5安装Cloudstack 4.3之升级虚拟机配置
[简单部署cloudstack]cloudstack名词解释

1. 登录web界面

启动成功能后,你现在就可以用谷歌、火狐浏览器访问管理节点啦: http://管理节点ip:8080/client
我这里给了个域名 http://cloudstack.54im.com
注:IE访问可能有兼容性问题。
Cloudstack基于tomcat提供web服务,默认使用了8080端口。如果你想改用其它端口,可以修改 /etc/tomcat6/server.xml 文件进行配置。
Cloudstack默认安装在 /etc/cloudstack/management 目录下,你可以通过修改 log4j-cloud.xml文件来调整日志的输出级别、路径等。
cloudstack默认日志在/var/log/cloudstack下

阅读全文…

[简单部署cloudstack]cloudstack名词解释

2014年5月15日 没有评论

[简单部署cloudstack]Centos6.5安装Cloudstack 4.3之概念介绍
[简单部署cloudstack]Centos6.5安装Cloudstack 4.3之管理节点和计算节点安装
[简单部署cloudstack]Centos6.5安装Cloudstack 4.3之配置详解
[简单部署cloudstack]Centos6.5安装Cloudstack 4.3之在线迁移虚拟机
[简单部署cloudstack]Centos6.5安装Cloudstack 4.3之升级虚拟机配置
[简单部署cloudstack]cloudstack名词解释

account (账户)
一个CloudStack账户是服务提供商的一个客户或一个大型组织结构中的一个部门. 账户是CloudStack里的最小隔离单元: 在一个账户里,所有的用户可以共享数据和其它资源,而这在另一账户里是不可见的.在CloudStack里账户(Account)与用户(User)是不同的概念.可以把一系列用户看成是账户的别名.在许多安装部署中并不会特别在意用户,只要保证每个账户有一个用户即可.

阅读全文…

[简单部署cloudstack]Centos6.5安装Cloudstack 4.3之概念介绍

2014年5月15日 1 条评论

[简单部署cloudstack]Centos6.5安装Cloudstack 4.3-管理节点和计算节点安装

2014年5月15日 6 条评论

安装过程中也遇到不少问题,特别感谢 兆松兄 @itnihao 的帮忙,想起那天半夜还在帮忙解决二级存储无法正常启动的问题,那是我逝去的青春。

1. 先决条件

 

  1. 至少一个支持硬件虚拟化的计算机。如果是个人电脑,在主板bios里面开启下虚拟化。
  2. CentOS 6.4 x86_64 的 minimal install CD <http://mirrors.kernel.org/centos/6.4/isos/x86_64/CentOS-6.4-x86_64-minimal.iso>
  3. 一个以xxx.xxx.xxx.1/24作为网关的C类地址并且该网络中不能存在DHCP服务器;运行Cloudstack 的机器不能使用动态地址。这样做只是为了简单起见,我的环境中是192.168.1.0/24网络。

阅读全文…

python处理文本例子1

2014年5月13日 2 条评论

需求:

对一个配置文件进行处理,拿出可用的字符来拼接,下面是原始文本,我们要得到这样的结果,

redis -h 127.0.0.1 -p 6379 | select 2
redis -h 127.0.0.1 -p 6379 | select 16
redis -h 127.0.0.1 -p 6379 | select 8

原始文本:

上python

 

分类: python 标签: , , , ,

[菜鸟学php] php版自定义函数实现金字塔

2014年5月13日 没有评论

54im.com php for循环例子系列文章:

1. php版简单实现99乘法表

2. php版简单实现金字塔

3. php版简单实现棋盘

4. php使用自定义函数实现99乘法表

5. php版自定义函数实现金字塔

6. php版自定义函数实现棋盘

转载请注明出处:http://54im.com


php版自定义函数实现金字塔

 

 

效果可以查看  php版简单实现金字塔-for循环

 

分类: PHP 标签: ,

[菜鸟学php] php版自定义函数实现棋盘

2014年5月13日 没有评论

54im.com php for循环例子系列文章:

1. php版简单实现99乘法表

2. php版简单实现金字塔

3. php版简单实现棋盘

4. php使用自定义函数实现99乘法表

5. php版自定义函数实现金字塔

6. php版自定义函数实现棋盘

转载请注明出处:http://54im.com


 

效果可以参考 php版简单实现棋盘-for循环+html

[菜鸟学php] php版自定义函数实现99乘法表

2014年5月13日 没有评论

54im.com php for循环例子系列文章:

1. php版简单实现99乘法表

2. php版简单实现金字塔

3. php版简单实现棋盘

4. php使用自定义函数实现99乘法表

5. php版自定义函数实现金字塔

6. php版自定义函数实现棋盘

转载请注明出处:http://54im.com


使用自定义函数方式来实现99乘法表,函数是一种可以在任何被需要的时候执行的代码块。

创建 PHP 函数:

  1. 所有的函数都使用关键词 “function()” 来开始
  2. 命名函数 – 函数的名称应该提示出它的功能。函数名称以字母或下划线开头。
  3. 添加 “{” – 开口的花括号之后的部分是函数的代码。
  4. 插入函数代码
  5. 添加一个 “}” – 函数通过关闭花括号来结束。

例子

一个简单的函数,在其被调用时能输出我的名称的:

使用 PHP 函数

现在,我们要在 PHP 脚本中使用这个函数了:

以上代码的输出:

下面我们来写用函数实现99乘法表

得到的结果和html一样。这里就不贴图了,效果是这样 php版简单99乘法表-for循环

[菜鸟学php] php版简单实现棋盘-for循环+html

2014年5月13日 没有评论

54im.com php for循环例子系列文章:

1. php版简单实现99乘法表

2. php版简单实现金字塔

3. php版简单实现棋盘

4. php使用自定义函数实现99乘法表

5. php版自定义函数实现金字塔

6. php版自定义函数实现棋盘

转载请注明出处:http://54im.com


 

 

实现这个棋盘首先我们想想棋盘是怎么样的,是有很多个方格组成,然后由黑色和白色的相间的方格组成。首先我们先把方格画出来。

得到以下结果:(是不是有点眉目了,我们现在只要把格子上颜色就可以)

php简单实现棋盘

php简单实现棋盘1

 

看到上面棋盘后,考虑下黑白格排放位置,有个规律可以发现,横排和竖排上白色格子都是基数,黑色的都是偶数,我们可以用取余的方法来判断这个格子该显示什么颜色,基数单元格我让他显示白色,偶数单元格显示黑色,基数+偶数=偶数,所以偶数单元格(黑色)我们很好找出来了。剩余的就是基数格(白色)

得到的效果是这样:

php简单实现棋盘

php简单实现棋盘

分类: PHP 标签: ,

[菜鸟学php] php版简单实现金字塔-for循环

2014年5月13日 没有评论

54im.com php for循环例子系列文章:

1. php版简单实现99乘法表

2. php版简单实现金字塔

3. php版简单实现棋盘

4. php使用自定义函数实现99乘法表

5. php版自定义函数实现金字塔

6. php版自定义函数实现棋盘

转载请注明出处:http://54im.com


 

 

上篇文章介绍了php下简单实现99乘法表,下面再实现个金字塔形状物,通用也是用到for循环

 

得到的结果是这样的:

php简单实现金字塔

php简单实现金字塔

同样想让这个金字塔倒立起来呢

效果是这样的

php版简单实现金字塔

php版简单实现金字塔

 

[菜鸟学php] php版简单99乘法表-for循环

2014年5月13日 没有评论

54im.com php for循环例子系列文章:

1. php版简单实现99乘法表

2. php版简单实现金字塔

3. php版简单实现棋盘

4. php使用自定义函数实现99乘法表

5. php版自定义函数实现金字塔

6. php版自定义函数实现棋盘

转载请注明出处:http://54im.com


 

 

最近在学php,用php写个简单99乘法表,用到for循环,其实这个也可以改下放shell中。

首先了解下for循环

for 语句

如果您已经确定了代码块的重复执行次数,则可以使用 for 语句。

语法

注释:for 语句有三个参数。第一个参数初始化变量,第二个参数保存条件,第三个参数包含执行循环所需的增量。如果 initialization 或 increment 参数中包括了多个变量,需要用逗号进行分隔。而条件必须计算为 true 或者 false。

例子

下面的例子会把文本 “Hello World!” 显示 5 次:

下面再看看99乘法表这个的正序写法,要用到嵌套循环。

运行这个php得到的结果 :

php版99乘法口诀表

php版99乘法口诀表

下面想让这个乘法表倒序,其实只有for循环里面数字逐渐递减就可以。

倒序显示如下:

php简单显示99乘法表

php简单显示99乘法表