etgsd 发表于 2016-8-19 09:07:02

从gitlab上拉取代码并一键部署

一、gitlab安装
GitLab是一个利用 Ruby on Rails 开发的开源应用程序,实现一个自托管的Git项目仓库,可通过Web界面进行访问公开的或者私人项目。
GitLab拥有与Github类似的功能,能够浏览源代码,管理缺陷和注释。可以管理团队对仓库的访问,它非常易于浏览提交过的版本并提供一个文件历史库。它还提供一个代码片段收集功能可以轻松实现代码复用,便于日后有需要的时候进行查找。
1、基础环境准备
# yum install curl policycoreutils openssh-server openssh-clients postfix
# systemctl start postfix
2、安装gitlab-ce
首先配置yum源,使用国内的镜像

vi /etc/yum.repos.d/gitlab-ce.repo


name=gitlab-ce
baseurl=https://mirrors.tuna.tsinghua.edu.cn/gitlab-ce/yum/el7/
repo_gpgcheck=0
gpgcheck=0
enabled=1
gpgkey=https://packages.gitlab.com/gpg.key
通过yum安装gitlab-ce

# yum makecache
# yum install gitlab-ce
3、配置并启动gitlab-ce
使用gitlab-ctl配置gitlab
# gitlab-ctl reconfigure
查看gitlab状态
# gitlab-ctl status
run: gitlab-workhorse: (pid 4824) 795s; run: log: (pid 4800) 804s
run: logrotate: (pid 4812) 796s; down: log: 0s, normally up, want up
run: nginx: (pid 4806) 798s; run: log: (pid 4805) 798s
run: postgresql: (pid 4679) 854s; run: log: (pid 4678) 854s
run: redis: (pid 4659) 860s; run: log: (pid 4658) 860s
run: sidekiq: (pid 4796) 806s; run: log: (pid 4795) 806s
run: unicorn: (pid 4770) 808s; run: log: (pid 4769) 808s
#
二、gitlab管理与使用

第一次登录gitlab,需要为root用户修改密码,root用户也是gitlab的超级管理员。
http://note.youdao.com/yws/res/499/A85735E5E9C34A1991F027AC99E52767
使用root用户和刚才创建的密码登录后,你就可以探索gitlab的奥秘了,可以点击图中红框的按钮进入管理区域。
http://note.youdao.com/yws/res/508/4D8332B1B5B44DAC9624BA61B8120C9E

http://note.youdao.com/yws/res/512/BA1A838BFECD4CA188AAA6762B2BDBF1
在内网搭建服务器,运维人员自己根据需求创建用户,而不是用户自己注册;因此需要将注册的功能取消掉。如图,点击Admin Area---》settings
http://note.youdao.com/yws/res/509/0BD98D6309534B368660FC44810E0665

http://note.youdao.com/yws/res/507/B7E363725A0A4845B12DBC6155F6E06D
将Sign-up enabled功能取消掉
http://note.youdao.com/yws/res/510/4EA2F788037C4FBAB4D2FB09EB43838B
在页面左下角点击save。
在gitlab中有项目和组的概念;一个组里面可以包含不同的人,因此可以先创建组。
http://note.youdao.com/yws/res/511/6A02175BA0064726814A1CE5387AE16B

http://note.youdao.com/yws/res/500/F6897C4EA1FA4A5FA299198682DD65A4
搭建私有的代码仓库,因此需要选择Private
http://note.youdao.com/yws/res/505/F47B7DC6AB0240D4A22D29D3506BEA8C
页面右下角,点击create group
接下来在组里创建项目
http://note.youdao.com/yws/res/497/9725993AC4E649F087FF6CF2CCE80095
http://note.youdao.com/yws/res/494/E6F1D62932864A3AAB4F03428CD7FA40
创建项目后,需要添加认证,以便于拉取代码
http://note.youdao.com/yws/res/495/9C9E9ED3066C452EAC74814417E93A3C

http://note.youdao.com/yws/res/501/7A48318C341F4BA5BE5BD1BADEFB5C51
在README.md中随便添加一些内容,便于测试。
http://note.youdao.com/yws/res/513/D01B020007F6444AAB03EE48DAB52F98

http://note.youdao.com/yws/res/503/E0B82920880240DB902CE8FC29DA9BEB
将linux-node1节点的www用户的公钥复制到SSHKeys内
http://note.youdao.com/yws/res/498/6C45B735360F489D9C16A5C0542A35C1
注意,添加title时,命名最好规范一些,比如linux-node1-www表示linux-node1下www用户的公钥
http://note.youdao.com/yws/res/496/453B38059F294AB9A9BDCA612977395C
拉取代码的方式可以是通过http和SSH,这里我们选择SSH方式
http://note.youdao.com/yws/res/504/934598EC794D439C9ED285C332819E6D
登陆到linux-node1,切换到www用户,执行git clone,拉取代码,如下
http://note.youdao.com/yws/res/514/4F677DB9B4064E93B5F52D6265D4CBBC
可以看到在gitlab页面上编辑的README.md里面的内容
http://note.youdao.com/yws/res/515/BC0C6F1AD4764282A631405EA01B332A
http://note.youdao.com/yws/res/519/008E8BC992534577B2827353CC36F9C3
添加一个测试文件,里面随意写一些内容,进行测试。先git add *,将文件添加到索引库中。接下来使用git commit命令将依据索引库中的内容来进行文件的提交。第一次使用git commit –m “add index.html”时,会提示添加邮箱和姓名之类的提示,按照自己的情况添加即可。
http://note.youdao.com/yws/res/521/B57E19D352FD4CEBB6A66F1DF3B6CEDB
使用git show 查看commit后的版本号
http://note.youdao.com/yws/res/502/E5FCE2571AE3424D9952F0E922CA1AAF

http://note.youdao.com/yws/res/516/3F1FDAA4503A4DB7824379DB0AEF0AD3
截取前六位,这样我们就可以使用短的版本号,进行代码的拉取
http://note.youdao.com/yws/res/518/E7D5DE11AB9542008996A98174AF24D9
将上一个博客中shell脚本进行改造,代码版本获取如图所示:
http://note.youdao.com/yws/res/520/5434063BBCAF45C88D730891BDD2913B
最后通过在gitlab上拉取代码,使用deploy1.sh脚本进行自动化部署,如图所示:
http://note.youdao.com/yws/res/506/AFE9825902D04FA390D3EA89959C5E0E
部署成功后,在浏览器中进行验证。Index.html中的内容确实为刚才所填写的内容。
至此,在gitlab上拉取代码后,自动化部署完毕。
http://note.youdao.com/yws/res/517/C2D32523E4304951B935767C2390DA25



页: [1]
查看完整版本: 从gitlab上拉取代码并一键部署