基于最新版本:jenkins-2.222和gitlab-ce-13.9.4 搭建以下服务
1 持续集成概述和搭建Gitlab平台
1.1持续集成概述
持续集成概述:持续集成(Continuous integration)持续集成是指开发者在代码的开发过程中,可以频繁的将代码部署集成到主干,并进程自动化测试。开发-》代码编译-》测试-》
持续交付:持续交付指的是在持续集成的环境基础之上,将代码部署到预生产环境。
持续部署:在持续交付的基础上,把部署到生产环境的过程自动化。
1.2jenkins和Gitlab概述
Jenkins概述:是一个开源软件项目,是基于Java开发的一种持续集成工具,用于监控持续重复的工作,旨在提供一个开放易用的软件平台,使软件的持续集成变成可能。
网方网站:https://jenkins.io/
GitLab概述:
是一个利用 Ruby on Rails 开发的开源应用程序,实现一个自托管的Git项目仓库,可通过Web界面进行访问公开的或者私人项目。Ruby on Rails 是一个可以使你开发、部署、维护 web 应用程序变得简单的框架。
GitLab拥有与Github类似的功能,能够浏览源代码,管理缺陷和注释。可以管理团队对仓库的访问,它非常易于浏览提交过的版本并提供一个文件历史库。它还提供一个代码片段收集功能可以轻松实现代码复用,便于日后有需要的时候进行查找。
GitLab中文网:https://www.gitlab.cc/installation/#centos-7
1.3GitLab和GitHub的区别
GitHub和GitLab的区别:
相同点: 二者都是基于web的Git仓库,在很大程度上GitLab是仿照GitHub来做的,它们都提供了分享开源项目的平台,为开发团队提供了存储、分享、发布和合作开发项目的中心化云存储的场所。
不同点:
-
GitHub免费版本只有500MB的代码存储空间。
更多免费用户的限制条件详见:https://github.com/pricing -
GitLab让开发团队对他们的代码仓库拥有更多的控制,相比于GitHub,它有不少的特色:允许免费设置仓库权限;允许用户选择分享一个project的部分代码;允许用户设置project的获取权限,进一步的提升安全性。最重要的是,代码在自已的服务器上,别人拿不到。
-
总结:从代码私有性方面来看,有时公司并不希望员工获取到全部的代码,这个时候GitLab无疑是更好的选择。但对于开源项目而言,GitHub依然是代码托管的首选。
git相关概念:
git | 是一种版本控制系统,是一个命令,是一种工具 |
---|---|
gitlib | 是用于实现git功能的开发库 |
github | 是一个基于git实现的在线代码托管仓库,包含一个网站界面,向互联网开放 |
gitlab | 是一个基于git实现的在线代码仓库托管软件,一般用于在企业内部网络搭建git私服 |
注: gitlab-ce 社区版 ; gitlab-ee是企业版,收费 |
1.4 搭建GitLab平台
实验环境: centos7 虚拟机最少需要6G内存,不然后期运行时,内存不够用,直接报错。 我这里给8G
1.安装Gitlab需要的组件:
[root@xuegod63 ~]# yum install curl policycoreutils-python openssh-server openssh-clients postfix -y
默认,使用 Postfix 发送邮件
[root@xuegod63 ~]# systemctl enable postfix && systemctl start postfix
[root@xuegod63 ~]# iptables -F #清空规则
[root@xuegod63 ~]# systemctl stop firewalld && systemctl disable firewalld
禁止防火墙,就不用执行下面两条命令:
[root@xuegod63 ~]#firewall-cmd --permanent --add-service=http
[root@xuegod63 ~]#systemctl reload firewalld
2 安装gitlab
下载gitlab的两种方法:
方法1:使用yum下载太慢。直接使用迅雷下载以下链接:
https://mirrors.tuna.tsinghua.edu.cn/gitlab-ce/yum/el7/gitlab-ce-13.9.3-ce.0.el7.x86_64.rpm
上传到gitlab-ce-13.9.3-ce.0.el7.x86_64.rpm到linux系统上
[root@xuegod63 ~]# rpm -ivh gitlab-ce-13.9.3-ce.0.el7.x86_64.rpm #安装
方法2:配置yum源,使用yum安装:
[root@xuegod63 ~]# yum install gitlab-ce -y #安装太慢。下面使用清华的源:
[root@xuegod63 ~]# cd /etc/yum.repos.d/
[root@xuegod63 yum.repos.d]# vim 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
[root@xuegod63 ~]# yum install gitlab-ce -y
3 配置gitlab访问地址:
[root@xuegod63 ~]# vim /etc/gitlab/gitlab.rb #修改gitlab外部访问地址
改:32 external_url ‘http://gitlab.example.com’
为:32 external_url ‘http://192.168.1.63’
注:这里必须修改,不然后后期访问时,用户到地址是:http://gitlab.example.com/xxxx ,根本不能访问。 修改后获得是: http://192.168.1.63/xxxx
4 应用新配好的配置并重启GitLab
[root@xuegod63 ~]# gitlab-ctl reconfigure #重新配置应用程序。修改了gitlab服务配置文件后,都需要执行一下这个命令。
让各个服务的配置文件,重新加载一下配置文件。这里等个2分钟左右。
。。。
Running handlers:
Running handlers complete
Chef Client finished, 2/501 resources updated in 37 seconds
gitlab Reconfigured!
[root@xuegod63 ~]# gitlab-ctl status #可以使用gitlab-ctl管理gitlab,例如查看gitlab状态:
run: gitlab-workhorse: (pid 3275) 169s; run: log: (pid 3151) 280s
run: logrotate: (pid 3169) 273s; run: log: (pid 3168) 273s
run: nginx: (pid 3157) 279s; run: log: (pid 3156) 279s
run: postgresql: (pid 3009) 349s; run: log: (pid 3008) 349s
run: redis: (pid 2926) 360s; run: log: (pid 2925) 360s
run: sidekiq: (pid 3142) 287s; run: log: (pid 3141) 287s
run: unicorn: (pid 3110) 293s; run: log: