Jenkins和Gitlab搭建及配置管理

一、环境配置

操作系统:CentOS-7.3 1611 x86_64

    系统组件:服务器全安装版

    所需安装包

  1. Jenkins安装包:jenkins-2.150.3-1.1.noarch.rpm
  2. GitLab安装包:gitlab-ce-11.11.7-ce.0.el7.x86_64.rpm
  3. Jenkins插件安装包s
  4. CentOS-7.3 1611 x86_64安装ISO镜像文件: CentOS-7.3-x86_64-DVD-1611.iso

注:CentOS服务器版组件已部署了Java环境

二、Jenkins环境搭建及部署

2.1、安装jenkins

    直接使用rpm安装包安装,命令:rpm -ivh jenkins-2.150.3-1.1.noarch.rpm

 

                                                                               图2.1.1  安装jenkins

2.2、Jenkins配置

    配置Jenkins主要有两个部分:Jenkins的工作空间路径、Jenkins端口号及Jenkins权限。

    打开配置文件:vim /etc/sysconfig/jenkins

       修改内容如下:

           a)修改工作空间

     

Jenkins和Gitlab搭建及配置管理_第1张图片

     

                                                                 图2.2.1  配置Jenkins工作空间路径

 

注:Jenkins的工作空间修改后,需要将原来目录下的文件全部拷贝到新的目录下,命令:

cp /var/lib/Jenkins/* /home/Jenkins-Home/ -rfa

           b)修改Jenkins运行权限

Jenkins和Gitlab搭建及配置管理_第2张图片

                                                                            图2.2.2  配置Jenkins运行权限

 

           c)修改Jenkins绑定的端口号

Jenkins和Gitlab搭建及配置管理_第3张图片

                                                                     图2.2.3  配置Jenkins绑定的网络端口号

 

    修改完以上所有内容后,重启Jenkins服务使配置生效,命令:systemctl restart jenkins

2.3、Jenkins初始化配置

    在浏览器上输入服务器的IP+port,如:192.168.110.110:8089

    浏览器自动进入如下界面:

Jenkins和Gitlab搭建及配置管理_第4张图片

:此时需要将文件/var/lib/jenkins/secrets/initialAdminPassword的内容填写到网页上,以解锁Jenkins,

       命令:cat /var/lib/jenkins/secrets/initialAdminPassword

如果当前服务器联网,则可以选择网络安装推荐插件,当前演示以无网络为主。

Jenkins和Gitlab搭建及配置管理_第5张图片

                                                                            图2.3.2  Jenkins插件安装询问界面

        无网络情况下,如果上述界面没有“跳过这一步”的选项,则点击选择插件安装选项,进入界面后将所有插件均不选,然后点击继续即可,跳过自动配置插件的步骤。

       之后会弹出创建初始管理员用户的对话框,如下:

Jenkins和Gitlab搭建及配置管理_第6张图片

                                                                                 图2.3.3   创建管理员用户

            如上步骤后,Jenkins基本环境搭建完成,可以在浏览器上直接输入IP地址+端口号实现Jenkins的访问。

2.4、插件安装

Jenkins要实现和SVN或者GitLab的联合使用,还需要安装一些插件,这里演示Jenkins和GitLab的联合使用配置。

Jenkins插件安装源在开源网站上有镜像,地址:http://ftp-nyc.osuosl.org/pub/jenkins/plugins/,该地址需要浏览器访问。

其中要安装的插件列表如下:

Jenkins和Gitlab搭建及配置管理_第7张图片

                                                               图2.4.1   Jenkins和Gitlab联合所需插件

依次按照顺序安装上述的hpi文件,即可完成Jenkins与GitLab联合基础插件安装。

       Jenkins同时还支持权限管理,以实现不同的用户组不同的权限,如管理员组可以配置工程,开发人员组只需要编译权限即可。实现上述功能需要安装Jenkins的插件如下列表:

                                                                       图2.4.2  Jenkins权限管理所需插件

Jenkins支持依据GitLab的Branch自动构建功能需要安装以下插件:

                                                                       图2.4.3  Jenkins支持GitLab基于分支构建

2.5、插件安装示例

插件安装时需要以管理员权限登录,如果有安装源,则需要将安装链接指向安装源,参照如下修改:

Jenkins和Gitlab搭建及配置管理_第8张图片

                                                                                         图2.5.1  进入插件管理

Jenkins和Gitlab搭建及配置管理_第9张图片

                                                                                  图2.5.2  配置下载源网站

            如果选择插件源安装,则需要在URL一栏输入:http://**Jenkins安装源服务器IP**/jenkins/updates/update-center.json,

            直接check now,检查更新,然后进入插件管理的如下界面选择要安装的插件进行安装:

Jenkins和Gitlab搭建及配置管理_第10张图片

                                                                         图2.5.3  Jenkins从插件源安装所需插件   

          如果没有安装源,则需要依照2.4节进入插件管理的高级选项使用Upload Plugin手动安装。手动安装时需要注意安装顺序必须严格按照数字顺序进行,否则插件会安装失败。(插件有相互依赖关系)

         安装时参见图2.5.2,点击upload按钮,依次选择本地的安装包进行上传并自动安装,如下图:

Jenkins和Gitlab搭建及配置管理_第11张图片

                                                                          图2.5.4  Jenkins手动安装插件

           安装完成后,重启Jenkins,在网页上选中按钮或者在服务器上使用命令: systemctl restart Jenkins

           至此Jenkins的安装全部完成,后续和GitLab配置将在第四章详细描述。

三、GitLab环境搭建及部署

3.1、安装linux组件

    由于环境不可连外网,因此采用本地镜像安装的方式。将操作系统的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

3.2、安装GitLab

         将已下载好的安装包: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

3.3、配置GitLab

    GitLab配置文件默认是:/etc/gitlab/gitlab.rb,打开对应的文件:vim /etc/gitlab/gitlab.rb编辑以下内容:

     a)配置GitLab的IP地址

Jenkins和Gitlab搭建及配置管理_第12张图片

                                                                             图3.3.1  修改GitLab的默认访问IP

    b)配置GitLab的端口号:(此端口是GitLab的各类服务的出入口,由GitLab管理)

Jenkins和Gitlab搭建及配置管理_第13张图片

                                                                               图3.3.2  配置GitLab的端口号

如果配置了上面那个端口,就不要配置下面这个端口,否则只有下面这个地方生效:

                                                                       图3.3.3  配置GitLab的nginx端口

c)配置GitLab的邮件服务

Jenkins和Gitlab搭建及配置管理_第14张图片

                                                                     图3.3.4  配置GitLab的收发邮箱

Jenkins和Gitlab搭建及配置管理_第15张图片

                                                     图3.3.5  配置收发邮箱的相关参数,此处以smtp为例

        注:如果当前处于局域网,可以考虑在服务器部署smtp邮件服务系统,并建立管理员账户,可以将邮件发送到指定的邮件服务器上,进而实现个人邮件和GitLab的连接。

         smtp邮件系统的配置参见附录描述。

        d)配置GitLab的工作路径:

Jenkins和Gitlab搭建及配置管理_第16张图片

图3.3.6  配置GitLab的工作路径

:配置完成后,如果GitLab在配置前有已建好的代码工程,则可以通过将原默认目录下的文件移动到新建的目录下,刷新网页后GitLab即可识别工程。如没有建工程,则迁移后的路径下会自动生成一个名为“repositories”的文件夹,所有工程将分组放在该目录下。

    以上配置修改完成后,需要重新配置GitLab并使设置生效,在服务器上使用命令:

       gitlab-ctl stop;

       gitlab-ctl reconfig;

       gitlab-ctl start

3.4、GitLab首次使用

    GitLab首次使用会让用户设置管理员和密码,依照需求修改配置即可。

    修改完成后,建立新的工程,如下界面:

Jenkins和Gitlab搭建及配置管理_第17张图片

                                                                            图3.4.1  创建新的GitLab工程

Jenkins和Gitlab搭建及配置管理_第18张图片

                                                                             图3.4.2  GitLab上工程界面概览

:不同版本的GitLab操作界面可能稍有区别,以具体的网页内容为准。

四、GitLab和Jenkins联动配置

4.1、Jenkins工程建立与配置

:以下功能需要安装2.4所述所有插件方能实现。

新建Jenkins编译网页任务

Jenkins和Gitlab搭建及配置管理_第19张图片

                                                                           图4.1.1  新建Jenkins编译网页任务

Jenkins和Gitlab搭建及配置管理_第20张图片

                                                                                 图4.1.2  参数构建选项

Jenkins和Gitlab搭建及配置管理_第21张图片

                                                                                     图4.1.3  参数选择示例

Jenkins和Gitlab搭建及配置管理_第22张图片

                                                                           图4.1.4  选择源码管理工具

Jenkins和Gitlab搭建及配置管理_第23张图片

                                                                          图4.1.5  选择工程的编译方式

    :选择编译脚本时,脚本必须在工程的顶级目录,即和README.md(Gitlab新建工程时默认会生成这个文件)在同一个目录。

 

Jenkins和Gitlab搭建及配置管理_第24张图片

                                                                   图4.1.6  选择工程编译完成后执行的动作

    :归档成品的目录制定必须从当前工程顶级目录开始,即从README.md所在目录开始偏移。

Jenkins和Gitlab搭建及配置管理_第25张图片

                                                                                图4.1.7  配置Jenkins编译及输出示例

4.2、GitLab工程编译脚本编写

        编译脚本以shell脚本形式实现,通过调用顶级编译脚本:apply.sh来实现对当前工程所有子模块编译,shell脚本的编写依据工程不同而不同,此处以GitLab的目录结构为例:

4.3、Jenkins管理权限配置

Jenkins配置权限可以完善用户组权限管理,需要先安装权限管理相关组件:

Jenkins和Gitlab搭建及配置管理_第26张图片

                                                                               图4.4.2  开启用户权限管理

开启用户权限管理后,需要建立用户权限组,然后将现有的用户添加到用户组中,即可完成对用户的权限管理,详情如下:

Jenkins和Gitlab搭建及配置管理_第27张图片

                                                                  图4.4.3  进入角色管理界面

首先要建立权限组,即一个组一种权限,可以建立多种权限组,当前演示只需要管理和开发权限组。

Jenkins和Gitlab搭建及配置管理_第28张图片

配置完权限组后,将当前现有用户加入权限组,详情如下:

在图4.4.3的基础上点击“Assign Roles”进入如下配置界面:

Jenkins和Gitlab搭建及配置管理_第29张图片

                                                          图4.4.5  配置用户到现有的用户权限组

至此Jenkins的权限管理完成。

以上是当前对Jenkins和Gitlab的初步探索,其功能强大和自由编辑风格之丰富是我等无法企及,依需探索使用,欢迎补充添加,谢谢。

附录:

smtp邮件系统配置:待完善补充。

你可能感兴趣的:(Linux学习&开发)