gitlab部署

Posted gyz0517

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了gitlab部署相关的知识,希望对你有一定的参考价值。

前言:GitLab和GitHub一样属于第三方基于Git开发的作品,免费且开源(https://github.com/gitlabhq/gitlabhq 基于MIT协议),与Github类似,可以注册用户,任意提交你的代码,添加SSHKey等等。不同的是,GitLab是可以部署到自己的服务器上,数据库等一切信息都掌握在自己手上,适合团队内部协作开发,你总不可能把团队内部的智慧总放在别人的服务器上吧?简单来说可把GitLab看作个人版的GitHub。
开发语言:github和gitlab都是Ruby写的。
 
-----------------
一、安装(如果不使用yum方式直接跳至第4步)
1. 编辑yum源
1 [[email protected] src]# vim /etc/yum.repos.d/gitlab-ce.repo
2 [gitlab-ce]
3 name=gitlab-ce
4 baseurl=https://mirrors.tuna.tsinghua.edu.cn/gitlab-ce/yum/el$releasever/
5 repo_gpgcheck=0
6 gpgcheck=0
7 enabled=1
8 gpgkey=https://packages.gitlab.com/gpg.key

 

2. 安装依赖包(更新本地yum缓存)
1 [[email protected] src]# yum makecache
2 [[email protected] src]# yum install curl openssh-server openssh-clients postfix cronie -y
 
3.启动 postfix 邮件服务(用于发送邮件给相应用户)
1 [[email protected] src]# systemctl start postfix
2 [[email protected] src]# systemctl enable postfix
 
4.安装 GitLab 社区版
1 [[email protected] src]# yum install gitlab-ce -y #自动安装最新版
2 或者
3 [[email protected] src]# yum install gitlab-ce-x.x.x -y #安装指定版本
4 或者安装下载好的版本
5 [[email protected] src]# yum install gitlab-ce-10.8.2-ce.0.el7.x86_64.rpm -y
-------------------------
说明:安装后的gitlab默认路径是/opt/gitlab(程序路径)、 /var/opt/gitlab(配置文件路径)。
-------------------------
 
5. 初始化
1 [[email protected] src]# gitlab-ctl reconfigure
-------------------------
说明:上面配置命令执行后,如没有报错,就说明gitlab配置成功。配置后会生成各应用服务配置文件,放在/opt/gitlab/etc下,日志路径为/var/log/gitlab/
-------------------------
 
6. 修改配置文件,添加访问地址
1 [[email protected] src]# vim /etc/gitlab/gitlab.rb
2 external_url http://192.168.32.12/
3 或者
4 external_url http://域名/
5 [[email protected] src]# gitlab-ctl reconfigure
--------------------------
说明(将ip访问修改为域名访问的更改方法):
 1 1)首先将/etc/gitlab/gitlab.rb文件中的192.168.1.24全部替换为gitlab.kevin.com
 2 [[email protected] gitlab]# vim /etc/gitlab/gitlab.rb
 3 external_url http://192.168.1.24
 4 改为:
 5 external_url http://gitlab.kevin.com  
 6 2)其次将下面两文件中的192.168.1.24全部替换为gitlab.kevin.com
 7 /var/opt/gitlab/gitlab-shell/config.yml
 8 /var/opt/gitlab/gitlab-rails/etc/gitlab.yml
 9 下面两文件都是上面两文件的软链接,修改上面两个文件即可
10 [[email protected] gitlab]# ll /opt/gitlab/embedded/service/gitlab-rails/config/gitlab.yml
11 lrwxrwxrwx 1 root root 43 Nov  9 18:00 /opt/gitlab/embedded/service/gitlab-rails/config/gitlab.yml -> /var/opt/gitlab/gitlab-rails/etc/gitlab.yml
12 [[email protected] gitlab]# ll /opt/gitlab/embedded/service/gitlab-rails/config/gitlab.yml
13 lrwxrwxrwx 1 root root 43 Nov  9 18:00 /opt/gitlab/embedded/service/gitlab-rails/config/gitlab.yml -> /var/opt/gitlab/gitlab-rails/etc/gitlab.yml
14 3)然后将下面文件中的192.168.1.24全部替换为gitlab.kevin.com
15 /var/opt/gitlab/nginx/conf/gitlab-http.conf
16 4)最后执行"gitlab-ctl reconfigure"命令使之配置生效(注意最好不要执行"gitlab-ctl restart",只执行本命令即可)
--------------------------
 
7. 修改gitlab代码存储路径
 1 默认时GitLab的仓库存储位置在“/var/opt/gitlab/git-data/repositories”
 2 [[email protected] src]# cp /etc/gitlab/gitlab.rb /etc/gitlab/gitlab.rb.bak
 3 [[email protected] src]# vim /etc/gitlab/gitlab.rb
 4 #启用git_data_dirs参数,并修改如下:
 5 git_data_dirs({
 6 "default" => {
 7 "path" => "/data/git-data"
 8 }
 9 }) 
10 [[email protected] src]# gitlab-ctl reconfigure
11  
12 登陆默认用户名:root 密码需要重新设置

 

8. 汉化(可选)
------------------
第一种方法【推荐】:
 1 [[email protected] src]# gitlab-ctl stop
 2 [[email protected] src]# git clone https://gitlab.com/xhang/gitlab.git # 克隆最新汉化版本
 3 或者
 4 [[email protected] src]# git clone https://gitlab.com/xhang/gitlab.git -b v10.8.2-zh # 克隆指定汉化版本
 5 [[email protected] src]# yum install git patch -y # 安装git patch
 6 [[email protected] src]# cd /root/gitlab
 7 [[email protected] src]# git diff v10.8.2 v10.8.2-zh >/tmp/10.8.2-zh.diff
 8 [[email protected] src]# patch -d /opt/gitlab/embedded/service/gitlab-rails -p1 < /tmp/10.8.2-zh.diff
 9 一路回车(不知道有没有问题,报错可忽略)
10 或者(然后)
11 [[email protected] src]# cd /opt/gitlab/embedded/service/gitlab-rails
12 [[email protected] src]# git apply /tmp/10.8.2-zh.diff
13 [[email protected] src]# gitlab-ctl start # 启动
14 如果失败:
15 [[email protected] src]# gitlab-ctl reconfigure

 

第二种方法:
1 [[email protected] src]# yum install -y git
2 [[email protected] src]# tar zxf gitlab-11-4-stable-zh.tar.gz
3 [[email protected] src]# cp -rf gitlab-11-4-stable-zh/* /opt/gitlab/embedded/service/gitlab-rails/
4 cp: cannot overwrite non-directory `/opt/gitlab/embedded/service/gitlab-rails/log‘ with directory `gitlab-v10.7.0-zh/log‘
5 cp: cannot overwrite non-directory `/opt/gitlab/embedded/service/gitlab-rails/tmp‘ with directory `gitlab-v10.7.0-zh/tmp‘
6 此报错不用管,因为已经设置root密码,登录过,所以会报错。
7 [[email protected] src]# gitlab-ctl reconfigure
---------------
二、GitLab常用命令
 
1 gitlab-ctl start                               # 启动所有 gitlab 组件;
2 gitlab-ctl stop                                # 停止所有 gitlab 组件; 
3 gitlab-ctl restart                             # 重启所有 gitlab 组件; 
4 gitlab-ctl status                              # 查看服务状态; 
5 gitlab-ctl reconfigure                         # 启动服务; 
6 vim /etc/gitlab/gitlab.rb                      # 修改默认的配置文件; 
7 gitlab-rake gitlab:check SANITIZE=true --trace # 检查gitlab; 
8 gitlab-ctl tail                                #查看日志        
-------------
三、结合LDAP域控认证登录
前提:使用 ldapsearch 命令检查到 ldap 是否可用,会返回 ldap 中的用户信息(-h:ldap服务器IP -p:ldap服务端口 -D:bind_dn -w:ldap管理员密码 -b:base)
【如果没有ldapsearch命令:yum install -y openldap-clients】
ldapsearch -h 172.16.128.22 -p 389 -D "cn=administrator,cn=users,dc=www,dc=example,dc=com" -w "password" -b "dc=www,dc=example,dc=com"
 
1. 编辑 gitlab.rb
 1 [[email protected] src]# vim /etc/gitlab/gitlab.rb
 2 gitlab_rails[ldap_enabled] = true
 3 gitlab_rails[ldap_servers] = YAML.load <<-EOS
 4 main:
 5 label: LDAP
 6 host: 172.16.128.22
 7 port: 389
 8 uid: sAMAccountName
 9 bind_dn: cn=administrator,cn=users,dc=www,dc=example,dc=com
10 password: password
11 active_directory: true
12 allow_username_or_email_login: false
13 block_auto_created_users: false
14 base: dc=www,dc=example,dc=com
15 encryption: plain
16 EOS

 

2. 重新加载配置
 1 [[email protected] src]# gitlab-ctl reconfigure
 
3. 检查用户列表列出200行(正常连接的情况下执行之后能看到用户的列表)
1 [[email protected] src]# gitlab-rake gitlab:ldap:check[200]
--------------
四、git基本命令
 1 Git 全局设置
 2 git config --global user.name "guoyunzong"
 3 git config --global user.email "[email protected]"
 4  
 5 创建新版本库
 6 git clone http://192.168.32.12/dev/test.git
 7 cd test
 8 touch README.md
 9 git add README.md
10 git commit -m "add README"
11 git push -u origin master
12  
13 已存在的文件夹
14 cd existing_folder
15 git init
16 git remote add origin http://192.168.32.12/dev/test.git
17 git add .
18 git commit -m "Initial commit"
19 git push -u origin master
20  
21 已存在的 Git 版本库
22 cd existing_repo
23 git remote rename origin old-origin
24 git remote add origin http://192.168.32.12/dev/test.git
25 git push -u origin --all
26 git push -u origin --tags

 

以上是关于gitlab部署的主要内容,如果未能解决你的问题,请参考以下文章

Gitlab代码管理仓库安装部署

Gitlab部署及汉化操作

Gitlab+jenkins持续集成+自动化部署

centos 7部署并汉化Gitlab及基础操作

centos 7安装gitlab及使用

gitlab 权限说明