GitLab实战

一、服务器直接部署GitLab

1、下载GitLab

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

image
2、下载GitLab汉化包

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

image
3、安装步骤
#安装邮箱等依赖包
[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'] = "xxxxuser@163.com"       #发送邮箱地址
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'] = "xxxxuser@163.com"        #配置gitlab的配置的发信人
user["git_user_email"] = "xxxxuser@163.com"       
image
image
image
  • 初始GitLab服务,启动GitLab服务
[root@localhost ~]# gitlab-ctl reconfigure
[root@localhost ~]# gitlab-ctl restart
[root@localhost ~]# gitlab-ctl status

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

image
image
  • 访问GitLab服务,以及GitLab邮箱测试
#访问GitLab服务初始密码
初始用户名:root
初始密码:12345678

GitLab邮箱测试

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

irb(main):003:0> Notify.test_email('xieyuanzuo2006@163.com','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
image
  • 停止GitLab服务
[root@localhost ~]# gitlab-ctl stop
  • 先备份,汉化失败后,可以及时恢复;
[root@localhost ~]#cp -r /opt/gitlab/embedded/service/gitlab-rails/* /home/my_gitlab_bak
  • 查看别名alias

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

image

修改后再重新登录。

vi ~/.bashrc
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
  • 访问服务

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

image
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'] = "xxuser@163.com"  
user["git_user_email"] = "xxuser@163.com" 
  • 修改管理员密码
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'] = "xxxx@xx.com"
          # 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'] = 'xxxx@xx.com'
      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
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 215,384评论 6 497
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 91,845评论 3 391
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 161,148评论 0 351
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 57,640评论 1 290
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 66,731评论 6 388
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 50,712评论 1 294
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 39,703评论 3 415
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 38,473评论 0 270
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 44,915评论 1 307
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 37,227评论 2 331
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 39,384评论 1 345
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 35,063评论 5 340
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 40,706评论 3 324
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 31,302评论 0 21
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 32,531评论 1 268
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 47,321评论 2 368
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 44,248评论 2 352

推荐阅读更多精彩内容