持续集成与自动化部署 - gitlab部署

Posted

tags:

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

1 gitlab部署

部署gitlab参考链接

GitLab是一个利用 Ruby on Rails 开发的开源应用程序,实现一个自托管的Git项目仓库,可通过Web界面进行访问公开的或者私人项目。
GitLab拥有与Github类似的功能,能够浏览源代码,管理缺陷和注释。可以管理团队对仓库的访问,它非常易于浏览提交过的版本并提供一个文件历史库。它还提供一个代码片段收集功能可以轻松实现代码复用,便于日后有需要的时候进行查找。

1.基础环境准备

[[email protected] ~]# yum -y install curl policycoreutils openssh-server openssh-clients postfix
[[email protected] ~]# systemctl start postfix

2.安装gitlab-ce

注:由于网络问题,国内用户,建议使用清华大学的镜像源进行安装:

[[email protected] ~]# vim /etc/yum.repos.d/gitlab-ce.repo
[gitlab-ce]
name=gitlab-ce
baseurl=http://mirrors.tuna.tsinghua.edu.cn/gitlab-ce/yum/el7/
repo_gpgcheck=0
gpgcheck=0
enabled=1
gpgkey=https://packages.gitlab.com/gpg.key
[[email protected] ~]# yum makecache
[[email protected] ~]# yum install gitlab-ce

3.配置并启动gitlab-ce

[[email protected] ~]# gitlab-ctl reconfigure

可以使用gitlab-ctl管理gitlab,例如查看gitlab状态:

[[email protected] ~]# gitlab-ctl status
run: gitlab-workhorse: (pid 12171) 231s; run: log: (pid 7817) 555s
run: logrotate: (pid 12175) 230s; run: log: (pid 7832) 548s
run: nginx: (pid 12181) 230s; run: log: (pid 7823) 549s
run: postgresql: (pid 12186) 229s; run: log: (pid 7683) 587s
run: redis: (pid 12194) 229s; run: log: (pid 7600) 592s
run: sidekiq: (pid 12198) 229s; run: log: (pid 7806) 558s
run: unicorn: (pid 14967) 6s; run: log: (pid 7774) 560s

关闭gitlab:

[[email protected] ~]#   gitlab-ctl stop

启动gitlab:

[[email protected] ~]#  gitlab-ctl start

重启gitlab:

[[email protected] ~]#  gitlab-ctl restart

4.修改gitlab密码

默认用户名密码都是root ,登录过后会提示你修改密码。

5.gitlab关闭注册

Admin Area > 右上角齿轮  > settings > sign up 关闭即可

6.创建一个组

技术分享图片

7.创建一个项目

项目建立前必须有组

技术分享图片

技术分享图片

8. 添加gitlab客户端的ssh公钥到服务器里

步骤 settings > SSH Keys

技术分享图片

9. 客户端 git pull 拉取代码

客户端模拟上传代码

[[email protected] ~]$ git clone [email protected]:web/web_demo.git   # 选择ssh方式的。
Cloning into ‘web_demo‘...
remote: Counting objects: 6, done.
remote: Compressing objects: 100% (2/2), done.
remote: Total 6 (delta 0), reused 0 (delta 0)
Receiving objects: 100% (6/6), done.

[[email protected] ~]$ cd web_demo/
[[email protected] web_demo]$ touch index.html
[[email protected] web_demo]$ echo wangfei >index.html 
[[email protected] web_demo]$ git add index.html
[[email protected] web_demo]$ git commit -m "add index.html"
[master 933b21a] add index.html
 1 file changed, 1 insertion(+)
 create mode 100644 index.html

[[email protected] web_demo]$ git push
Counting objects: 4, done.
Delta compression using up to 4 threads.
Compressing objects: 100% (2/2), done.
Writing objects: 100% (3/3), 280 bytes | 0 bytes/s, done.
Total 3 (delta 0), reused 0 (delta 0)
To [email protected]:web/web_demo.git
   8699ef8..933b21a  master -> master

客户端拉代码

[[email protected] code]$ git config --global user.name "wangfei"      
[[email protected] code]$ git config --global user.email "[email protected]" 
[[email protected] code]$ git clone [email protected]:web/web_demo.git

10. 修改gitlab path路径里的主机名为ip地址

[[email protected] web_demo]# vim /etc/gitlab/gitlab.rb
...
13 external_url ‘http://10.0.0.204‘
...

重启gitlab服务

[[email protected] web_demo]#  gitlab-ctl reconfigure

测试

技术分享图片

以上是关于持续集成与自动化部署 - gitlab部署 的主要内容,如果未能解决你的问题,请参考以下文章

gitlab,gitlab runner自动化部署docker容器

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

持续集成+自动化部署[代码流水线管理及Jenkins和gitlab集成]

gitlab+jenkins自动化上线部署持续集成

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

Gitlab+Gitlab-CI+Docker实现持续集成(CI)与持续部署(CD)