一、持续集成流程说明
- 首先,开发人员每天进行代码提交,提交到Git仓库
- 然后,Jenkins作为持续集成工具,使用Git工具到仓库拉去代码到集成服务器,再配合JDK,Maven等软件完成代码编译,代码测试和审查,测试,打包等工作,在这个过程中每一步出错,都需要重新再执行一次整个流程。
- 最后,Jenkins把生成的jar和war包分发到测试服务器或者生成服务器,测试人员或用户就可以访问使用。
二、Gitlab代码托管服务器的部署
2.1、安装相关依赖
yum -y install policycoreutils openssh-server openssh-clients postfix
2.2、启动ssh服务&设置为开机启动
systemctl enable sshd && systemctl start sshd
2.3、设置postfix开机启动和开机自启
postfix支持gitlab发信功能
systemctl enable postfix && systemctl start postfix
2.4、防火墙开放ssh以及http服务
firewall-cmd --add-serice=ssh --permanent
firewall-cmd --add-serice=http --permanent
firewall-cmd --reload
2.5、下载gitlab并安装
在线下载安装包,建议到国内的镜像源去下载,这里推荐清华园的:
https://mirrors.tuna.tsinghua.edu.cn/gitlab-ce/yum/el7/
wget https://mirrors.tuna.tsinghua.edu.cn/gitlab-ce/yum/el7/gitlab-ce-11.1.6-ce.0.el7.x86_64.rpm
2.6、安装rpm包
rpm -ivh gitlab-ce-11.1.6-ce.0.el7.x86_64.rpm
2.7、修改配置文件gitlab.rb
## GitLab configuration settings
##! This file is generated during initial installation and **is not** modified
##! during upgrades.
##! Check out the latest version of this file to know about the different
##! settings that can be configured by this file, which may be found at:
##! https://gitlab.com/gitlab-org/omnibus-gitlab/raw/master/files/gitlab-config-template/gitlab.rb.template
## GitLab URL
##! URL on which GitLab will be reachable.
##! For more details on configuring external_url see:
##! https://docs.gitlab.com/omnibus/settings/configuration.html#configuring-the-external-url-for-gitlab
#external_url 'http://gitlab.example.com'
external_url 'http://10.10.30.1' # 修改这个地方
如果你需要更改端口,则需要更改:
10.10.30.1:82
还需要更改配置中的如下:
nginx[ 'listen_port' ]= 82
这个选项默认是注释的,需要放开
2.8、重新加载配置文件
gitlab-ctl reconfigure
gitlab-ctl restart
2.9、查看gitlab版本
head -1 /opt/gitlab/version-manifest.txt
三、Jenkins的安装部署
3.1 安装openjdk
Jenkins需要依赖JDK,所以先安装JDK1.8。在这里有个坑,对于一个初学者来说。老师你给我说JDK1.8我一脸懵逼,我只听过JDK8/9/10…从来就没听说过狗屁1.8,百度找了半天原来是openjdk
如果你想知道更多关于openjdk的信息,请查阅以下地址:
yum -y install java-1.8.0-openjdk*
安装目录为:/usr/lib/jvm
3.2 下载Jenkins并安装
这里我们采用国内清华镜像下载
wget https://mirrors.tuna.tsinghua.edu.cn/jenkins/redhat-stable/jenkins-2.190.3-1.1.noarch.rpm
rpm -ivh jenkins-2.190.3-1.1.noarch.rpm
修改配置文件
vim /etc/sysconfig/jenkins
修改
JENKINS_USER="root"
JENKINS_PORT="8888"
启动Jenkins
systemctl start jenkins
浏览器访问
访问地址:10.10.30.2:8888
注意打开之后这里有个初始化的过程需要等待一会
然后就会出现下面的界面:
查看密码
[root@localhost ~]# cat /var/lib/jenkins/secrets/initialAdminPassword
74d25c29aabc41a38195f197de86d9f2
复制到浏览器的管理员密码框内,点击继续。
在这里出现了一片白的状态
我们可以从浏览器复制一个标签,然后就会出现内容:
在这里我们选择:选择插件来安装
到此就部署成功了。
3.3 Jenkins插件的安装
Jenkins——Manage Jenkins——Manage Piugins ,点击Available
我们先安装中文插件:
Localization: Chinese (Simplified)
完成之后要重启,在下图箭头处勾选会自动重启。
重启后需要重新登录,默认的账户是admin,密码还是上面查看的密码。下面是查看密码:
[root@localhost ~]# cat /var/lib/jenkins/secrets/initialAdminPassword
3.4 Jenkins更改国内插件地址
待写
3.5docker部署jenkins
除了以上的部署方法,还可以利用docker进行部署。daoker的部署比较简单。
- 默认拉取的jenkins是老版本,会产生插件不能用的错误(https://hub.docker.com/_/jenkins)
- 拉取新版的jenkins(https://hub.docker.com/r/jenkins/jenkins)
docker pull jenkins/jenkins
或者
docker run -d -u root --name jenkins --privileged=true \
-p 8080:8080 -p 50000:50000 \
-v /var/run/docker.sock:/var/run/docker.sock \
-v $(which docker):/usr/bin/docker \
-v /etc/sysconfig/docker:/etc/sysconfig/docker \
-v /usr/bin/docker-current:/usr/bin/docker-current \
-v /var/jenkins_home:/var/jenkins_home jenkins/jenkins
- -p 指定暴露的端口,8080用于对外暴露服务,而50000适用于Jenkins slave的注册
- 第一种 -v 指定挂载的jenkins home中的内容到本地
- 第二种 -v 用于将本地的docker挂载到容器中,实现在容器中使用docker命令
- 其中
-u root
获得docker容器里面的root权限,不然后期jenkins容器没有权限使用docker命令
四、Jenkins用户权限的管理
在我们开发过程中,有很多用户需要登录到Jenkins中来。那么我们可能需要针对不同用户授予不同的角色和权限。
Jenkins本身对角色和权限的管理比较单一粗略,我们需要通过安装Role-based Authorization Strategy
插件来实现细致化的权限管理。
重启之后我们来到: