GitLab实战

一、服务器直接部署GitLab

1、下载GitLab

下载地址:https://mirror.tuna.tsinghua.edu.cn/

GitLab实战_第1张图片
image
2、下载GitLab汉化包

汉化包地址:https://gitlab.com/xhang/gitlab

GitLab实战_第2张图片
image
3、安装步骤
  • 安装GitLab服务依赖包:https://about.gitlab.com/install/#centos-7
#安装邮箱等依赖包
[root@localhost ~]# sudo yum install -y curl policycoreutils-python openssh-server postfix wget

  • 下载GitLab服务,安装GitLab服务

具体可以参照1步骤,在清华快速下载文件,然后本地安装

#本地安装可方便解决依赖问题
[root@localhost ~]# yum localinstall gitlab-ce-12.3.4-ce.0.el6.x86_64.rpm

GitLab was unable to detect a valid hostname for your instance.
Please configure a URL for your GitLab instance by setting `external_url`
configuration in /etc/gitlab/gitlab.rb file.
Then, you can start your GitLab instance by running the following command:
  sudo gitlab-ctl reconfigure

For a comprehensive list of configuration options please see the Omnibus GitLab readme
https://gitlab.com/gitlab-org/omnibus-gitlab/blob/master/README.md

  • 配置GitLab服务,访问域名及邮箱
[root@localhost ~]# vi /etc/gitlab/gitlab.rb

#这里修改的是gitlab的url地址http://gitlab.xtank.com
external_url 'http://gitlab.xtank.com'

#配置邮箱
gitlab_rails['smtp_enable'] = true                    
gitlab_rails['smtp_address'] = "smtp.163.com"               #发送邮箱的smtp
gitlab_rails['smtp_port'] = 25                                   #目前大部分IDC 都封了25端口,需要配置465加密端口才可以发送邮件,这也是为什么不用postfix的原因,以下为阿里云企业邮配置(和腾讯企业邮相同):
gitlab_rails['smtp_user_name'] = "[email protected]"       #发送邮箱地址
gitlab_rails['smtp_password'] = "xxxxxxxpassword"              #发送邮箱的密码
gitlab_rails['smtp_domain'] = "163.com"                             #发送邮箱的后缀
gitlab_rails['smtp_authentication'] = :login                         #开启日志记录
gitlab_rails['smtp_enable_starttls_auto'] = true                    
gitlab_rails['smtp_tls'] = false

gitlab_rails['gitlab_email_from'] = "[email protected]"        #配置gitlab的配置的发信人
user["git_user_email"] = "[email protected]"       
GitLab实战_第3张图片
image
GitLab实战_第4张图片
image
GitLab实战_第5张图片
image
  • 初始GitLab服务,启动GitLab服务
[root@localhost ~]# gitlab-ctl reconfigure
[root@localhost ~]# gitlab-ctl restart
[root@localhost ~]# gitlab-ctl status

若是windows系统需要配置域名,否则无法解析

GitLab实战_第6张图片
image
GitLab实战_第7张图片
image
  • 访问GitLab服务,以及GitLab邮箱测试
#访问GitLab服务初始密码
初始用户名:root
初始密码:12345678

GitLab邮箱测试

#配置完成,并重新启动服务后执行命令
[root@localhost ~]# gitlab-rails console

irb(main):003:0> Notify.test_email('[email protected]','email title','邮箱测试').deliver_now

4、汉化GitLab
  • 解包
[root@localhost ~]# tar -xvf gitlab-12-3-stable-zh.tar.gz 
  • 比较汉化版本与GitLab是否匹配
[root@localhost ~]# cat gitlab-12-3-stable-zh/VERSION
12.3.5
GitLab实战_第8张图片
image
  • 停止GitLab服务
[root@localhost ~]# gitlab-ctl stop
  • 先备份,汉化失败后,可以及时恢复;
[root@localhost ~]#cp -r /opt/gitlab/embedded/service/gitlab-rails/* /home/my_gitlab_bak
  • 查看别名alias

若出现下图,则执行下一步操作,若不修改别名,那么在复制的时候会不断提示覆盖信息。

GitLab实战_第9张图片
image

修改后再重新登录。

vi ~/.bashrc
GitLab实战_第10张图片
image
  • 拷贝汉化包
[root@localhost ~]# \cp -rf gitlab-12-3-stable-zh/* /opt/gitlab/embedded/service/gitlab-rails/

注意:在cp前加\后就不会用别名。

  • 重新配置gitlab
[root@localhost ~]#gitlab-ctl reconfigure
  • 重启gitlab
[root@localhost ~]#gitlab-ctl restart
  • 访问服务

可以发现已经汉化,但有一部分任然没有汉化,这是因为设置的默认语言是英语,所以需要在这只栏进行设置。

GitLab实战_第11张图片
image
GitLab实战_第12张图片
image
5、存在问题
  • Connection refused - connect(2) for "smtp.163.com" port 456
 端口一开始填写为:456,这是不对的。163邮箱的端口是25.
  • User has no permission
登陆163邮箱,开启SMTP服务。
  • 535 Error: authentication failed
# 用户名或密码不正确,注意这里的是163邮箱的“客户端授权密码 ”
[root@localhost ~]# vi /etc/gitlab/gitlab.rb
gitlab_rails['smtp_password'] = "xxpassword"  
  • 553 Mail from must equal authorized use
# 网易服务器smtp机器要求身份验证帐号和发信帐号必须一致
#修改gitlab配置
[root@localhost ~]# vi /etc/gitlab/gitlab.rb
gitlab_rails['gitlab_email_from'] = "[email protected]"  
user["git_user_email"] = "[email protected]" 
  • 修改管理员密码
a、切换目录:cd /opt/gitlab/bin

b、执行 :sudo gitlab-rails console production 命令 开始初始化密码

c、在irb(main):001:0> 后面通过 u=User.where(id:1).first 来查找与切换账号(User.all 可以查看所有用户)

d、通过u.password='12345678'设置密码为12345678(这里的密码看自己喜欢):

e、通过u.password_confirmation='12345678' 再次确认密码

f、通过 u.save!进行保存(切记切记 后面的 !)

g、如果看到上面截图中的true ,恭喜你已经成功了,执行 exit 退出当前设置流程即可。

h、回到gitlab ,可以通过 root/12345678 这一超级管理员账号登录了

二、docker部署GitLab

https://www.jianshu.com/p/c99a40e5255d

1、使用Docker Compose安装
version: '2'
services:
    gitlab:
      image: 'twang2218/gitlab-ce-zh:11.1.4'
      restart: unless-stopped
      hostname: 'gitlab.example.com'
      environment:
        TZ: 'Asia/Shanghai'
        GITLAB_OMNIBUS_CONFIG: |
          external_url 'http://gitlab.example.com'
          gitlab_rails['time_zone'] = 'Asia/Shanghai'
          # 需要配置到 gitlab.rb 中的配置可以在这里配置,每个配置一行,注意缩进。
          # 比如下面的电子邮件的配置:
          # gitlab_rails['smtp_enable'] = true
          # gitlab_rails['smtp_address'] = "smtp.exmail.qq.com"
          # gitlab_rails['smtp_port'] = 465
          # gitlab_rails['smtp_user_name'] = "[email protected]"
          # gitlab_rails['smtp_password'] = "password"
          # gitlab_rails['smtp_authentication'] = "login"
          # gitlab_rails['smtp_enable_starttls_auto'] = true
          # gitlab_rails['smtp_tls'] = true
          # gitlab_rails['gitlab_email_from'] = '[email protected]'
      ports:
        - '80:80'
        - '443:443'
        - '22:22'
      volumes:
        - config:/etc/gitlab
        - data:/var/opt/gitlab
        - logs:/var/log/gitlab
volumes:
    config:
    data:
    logs:
2、使用Docker命令启动

直接使用 docker 命令要比使用 docker-compose 繁琐一些,但是可以达到一样的效果。
首先,Docker 容器数据应该存储于卷中,在这里我们使用最简单的本地命名卷:

  • gitlab-config 存储 GitLab 配置信息
  • gitlab-data 存储数据库
  • gitlab-logs 存储日志
    然后,我们需要创建自定义网络,从而让容器运行于独立的网络中,区别于默认网桥。
docker network create gitlab-net

准备好后,开始运行 Gitlab 容器:

docker run -d \
    --hostname gitlab.example.com \
    -p 80:80 \
    -p 443:443 \
    -p 22:22 \
    --name gitlab \
    --restart unless-stopped \
    -v gitlab-config:/etc/gitlab \
    -v gitlab-logs:/var/log/gitlab \
    -v gitlab-data:/var/opt/gitlab \
    --network gitlab-net \
    twang2218/gitlab-ce-zh:11.1.4

如果需要进入容器修改配置文件,可以用 docker exec 命令进入容器:

$ docker exec -it gitlab bash
root@09f6e32c528c:/# vi /etc/gitlab/gitlab.rb
root@09f6e32c528c:/# gitlab-ctl reconfigure
Starting Chef Client, version 12.12.15
resolving cookbooks for run list: ["gitlab"]

三、删除GitLab

1、停止gitlab
gitlab-ctl stop
2、卸载gitlab
rpm -e gitlab-ce
3、查看gitlab进程
ps aux | grep gitlab
4、杀掉第一个进程
kill -9 18777

杀掉后,在ps aux | grep gitlab确认一遍,还有没有gitlab的进程

5、删除所有包含gitlab文件
find / -name gitlab | xargs rm -rf

你可能感兴趣的:(GitLab实战)