操作系统:CentOS-7.3 1611 x86_64
系统组件:服务器全安装版
所需安装包:
注:CentOS服务器版组件已部署了Java环境
直接使用rpm安装包安装,命令:rpm -ivh jenkins-2.150.3-1.1.noarch.rpm
图2.1.1 安装jenkins
配置Jenkins主要有两个部分:Jenkins的工作空间路径、Jenkins端口号及Jenkins权限。
打开配置文件:vim /etc/sysconfig/jenkins
修改内容如下:
a)修改工作空间
图2.2.1 配置Jenkins工作空间路径
注:Jenkins的工作空间修改后,需要将原来目录下的文件全部拷贝到新的目录下,命令:
cp /var/lib/Jenkins/* /home/Jenkins-Home/ -rfa
b)修改Jenkins运行权限
图2.2.2 配置Jenkins运行权限
c)修改Jenkins绑定的端口号
图2.2.3 配置Jenkins绑定的网络端口号
修改完以上所有内容后,重启Jenkins服务使配置生效,命令:systemctl restart jenkins
在浏览器上输入服务器的IP+port,如:192.168.110.110:8089
浏览器自动进入如下界面:
注:此时需要将文件/var/lib/jenkins/secrets/initialAdminPassword的内容填写到网页上,以解锁Jenkins,
命令:cat /var/lib/jenkins/secrets/initialAdminPassword
如果当前服务器联网,则可以选择网络安装推荐插件,当前演示以无网络为主。
图2.3.2 Jenkins插件安装询问界面
无网络情况下,如果上述界面没有“跳过这一步”的选项,则点击选择插件安装选项,进入界面后将所有插件均不选,然后点击继续即可,跳过自动配置插件的步骤。
之后会弹出创建初始管理员用户的对话框,如下:
图2.3.3 创建管理员用户
如上步骤后,Jenkins基本环境搭建完成,可以在浏览器上直接输入IP地址+端口号实现Jenkins的访问。
Jenkins要实现和SVN或者GitLab的联合使用,还需要安装一些插件,这里演示Jenkins和GitLab的联合使用配置。
Jenkins插件安装源在开源网站上有镜像,地址:http://ftp-nyc.osuosl.org/pub/jenkins/plugins/,该地址需要浏览器访问。
其中要安装的插件列表如下:
图2.4.1 Jenkins和Gitlab联合所需插件
依次按照顺序安装上述的hpi文件,即可完成Jenkins与GitLab联合基础插件安装。
Jenkins同时还支持权限管理,以实现不同的用户组不同的权限,如管理员组可以配置工程,开发人员组只需要编译权限即可。实现上述功能需要安装Jenkins的插件如下列表:
图2.4.2 Jenkins权限管理所需插件
Jenkins支持依据GitLab的Branch自动构建功能需要安装以下插件:
图2.4.3 Jenkins支持GitLab基于分支构建
插件安装时需要以管理员权限登录,如果有安装源,则需要将安装链接指向安装源,参照如下修改:
图2.5.1 进入插件管理
图2.5.2 配置下载源网站
如果选择插件源安装,则需要在URL一栏输入:http://**Jenkins安装源服务器IP**/jenkins/updates/update-center.json,
直接check now,检查更新,然后进入插件管理的如下界面选择要安装的插件进行安装:
图2.5.3 Jenkins从插件源安装所需插件
如果没有安装源,则需要依照2.4节进入插件管理的高级选项使用Upload Plugin手动安装。手动安装时需要注意安装顺序必须严格按照数字顺序进行,否则插件会安装失败。(插件有相互依赖关系)
安装时参见图2.5.2,点击upload按钮,依次选择本地的安装包进行上传并自动安装,如下图:
图2.5.4 Jenkins手动安装插件
安装完成后,重启Jenkins,在网页上选中按钮或者在服务器上使用命令: systemctl restart Jenkins
至此Jenkins的安装全部完成,后续和GitLab配置将在第四章详细描述。
由于环境不可连外网,因此采用本地镜像安装的方式。将操作系统的ISO镜像上传到服务器上,并挂载到虚拟文件系统下,命令:mount CentOS-7.3-x86_64-DVD-1611.iso /mnt;
进入mnt目录安装所需要的操作系统组件:
命令:cd /mnt/Packages/
安装所需要的插件,命令:
yum install curl-devel expat-devel gettext-devel openssl-devel zlib-devel gcc perl-ExtUtils-MakeMaker
将已下载好的安装包:gitlab-ce-11.11.7-ce.0.el7.x86_64.rpm 上传到服务器,直接安装rpm即可,命令:
rpm -ivh gitlab-ce-11.11.7-ce.0.el7.x86_64.rpm
图3.2.1 安装GitLab
GitLab配置文件默认是:/etc/gitlab/gitlab.rb,打开对应的文件:vim /etc/gitlab/gitlab.rb编辑以下内容:
a)配置GitLab的IP地址
图3.3.1 修改GitLab的默认访问IP
b)配置GitLab的端口号:(此端口是GitLab的各类服务的出入口,由GitLab管理)
图3.3.2 配置GitLab的端口号
如果配置了上面那个端口,就不要配置下面这个端口,否则只有下面这个地方生效:
图3.3.3 配置GitLab的nginx端口
c)配置GitLab的邮件服务
图3.3.4 配置GitLab的收发邮箱
图3.3.5 配置收发邮箱的相关参数,此处以smtp为例
注:如果当前处于局域网,可以考虑在服务器部署smtp邮件服务系统,并建立管理员账户,可以将邮件发送到指定的邮件服务器上,进而实现个人邮件和GitLab的连接。
smtp邮件系统的配置参见附录描述。
d)配置GitLab的工作路径:
图3.3.6 配置GitLab的工作路径
注:配置完成后,如果GitLab在配置前有已建好的代码工程,则可以通过将原默认目录下的文件移动到新建的目录下,刷新网页后GitLab即可识别工程。如没有建工程,则迁移后的路径下会自动生成一个名为“repositories”的文件夹,所有工程将分组放在该目录下。
以上配置修改完成后,需要重新配置GitLab并使设置生效,在服务器上使用命令:
gitlab-ctl stop;
gitlab-ctl reconfig;
gitlab-ctl start
GitLab首次使用会让用户设置管理员和密码,依照需求修改配置即可。
修改完成后,建立新的工程,如下界面:
图3.4.1 创建新的GitLab工程
图3.4.2 GitLab上工程界面概览
注:不同版本的GitLab操作界面可能稍有区别,以具体的网页内容为准。
注:以下功能需要安装2.4所述所有插件方能实现。
新建Jenkins编译网页任务
图4.1.1 新建Jenkins编译网页任务
图4.1.2 参数构建选项
图4.1.3 参数选择示例
图4.1.4 选择源码管理工具
图4.1.5 选择工程的编译方式
注:选择编译脚本时,脚本必须在工程的顶级目录,即和README.md(Gitlab新建工程时默认会生成这个文件)在同一个目录。
图4.1.6 选择工程编译完成后执行的动作
注:归档成品的目录制定必须从当前工程顶级目录开始,即从README.md所在目录开始偏移。
图4.1.7 配置Jenkins编译及输出示例
编译脚本以shell脚本形式实现,通过调用顶级编译脚本:apply.sh来实现对当前工程所有子模块编译,shell脚本的编写依据工程不同而不同,此处以GitLab的目录结构为例:
Jenkins配置权限可以完善用户组权限管理,需要先安装权限管理相关组件:
图4.4.2 开启用户权限管理
开启用户权限管理后,需要建立用户权限组,然后将现有的用户添加到用户组中,即可完成对用户的权限管理,详情如下:
图4.4.3 进入角色管理界面
首先要建立权限组,即一个组一种权限,可以建立多种权限组,当前演示只需要管理和开发权限组。
配置完权限组后,将当前现有用户加入权限组,详情如下:
在图4.4.3的基础上点击“Assign Roles”进入如下配置界面:
图4.4.5 配置用户到现有的用户权限组
至此Jenkins的权限管理完成。
以上是当前对Jenkins和Gitlab的初步探索,其功能强大和自由编辑风格之丰富是我等无法企及,依需探索使用,欢迎补充添加,谢谢。
附录:
smtp邮件系统配置:待完善补充。