欢迎您, 来到 宁时修博客.^_^

Jenkins自动化 持续集成03--Jenkins参数化构建

2018/11/09 林木立 Jenkins 1987
Jenkins自动化 持续集成

一、参数化构建

    jenkins默认的插件只能做简单的构建,想要在构建过程中有更多功能,如:选择性构建、传参、项目指定变量等其他功能,需要借助参数化构建来实现交互。

    借助以下插件来进行实现:

    1、Extended Choice Parameter(更丰富的参数化构建插件)

    2、Git Parameter



二、Extended Choice Parameter插件使用

    1、安装插件

     系统管理--插件管理--搜索插件直接安装:

554.png

   

    2、实战演练

        1、点击项目,选择配置

        01.png

        2、选择参数化构建过程--添加参数--选择Extended Choice Parameter    

         02.png

        3、配置

        03.png

        这个branch就相当于将其当做一个变量,然后来为它进行传参。

        04.png

        4、以shell进行测试

        05.png

        06.png

        5、保存回首页,再次选择项目构建

        07.png

            08.png

        6、选择构建test3分支,查看控制台输出

        09.png

            显示构建成功。

        7、Value来源可以选择文件

        在jenkins服务器上新建个文件:

[root@jenkins ~]# vim /opt/test.property

branch=test01,test02,test03,test04,test05

        在jenkins WEB界面配置,还是刚才那个项目:

        10.png

        构建测试:

        11.png

        12.png

        也是成功的。


三、Git Parameter

    使用git时,用Git Parameter插件非常方便。

    

    1、安装Git Parameter插件

        系统管理--插件管理--可选插件--搜索该插件安装


    2、配置

    01.png02.png

    

    配置git仓库地址:

    03.png

    在配置git中写了远端地址后,报错如上。

    原因:因为jenkins是yum安装装的,运行用户是jenkins,此处是jenkins用户去git仓库进行拉取,而jenkins用户的话默认是/bin/false的,不但不能登录,也没有git命令权限,所以肯定是失败的。

    解决此问题两种办法:

    1)更改jenkins用户为root用户:修改/etc/sysconfig/jenkins文件,然后再重启jenkins;

    2)更改jenkins用户为正常的普通用户/bin/bash,将其的公钥加入到gitlab的git用户的SSH Keys中。


    我用第二种,在jenkins服务器上操作:

$ usermod -s /bin/bash jenkins  # 更改jenkins的登录shell,使其能够登录
$ su - jenkins            # 切换到jenkins用户
$ ssh-keygen -t rsa       # 创建密钥
$ cat .ssh/id_rsa.pub     # 将此公钥复制到gitlab的deploy用户SSH Keys中
ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQDQ/CCi+YyvMVwnxK5+VWk3xSuFJQwYdrMcHVHXscTmu1XQTNUm8nlLZyKv13JdkxdNQMpNEwvFyqnqdhTqcGmVmjVosAOsU5Hx9tiIEV7z2d0jLhhA7OMyOXUNJndkFDFu3nOU5qoi0BFTpSFRyLwAdCCDJfeMtotJs8m15vW5xz2CvTeAROTiPdJfVEzaZq1eAMVNI/l8slspUkQFBjN2xNq2h5D84ukZC9sz0+p72grbypNHckkS1YXWABzyWwH8kVNQdhZNDnkG1VKQfS03sv96bnesnCZd78NfZUtS1zdiNfjgh8guaGYZJVjJSBSMZYEpaW0euX1YMT+hF/g9 jenkins@jenkins

$ mkdir code
$ cd code
$ git clone git@192.168.184.123:root/test01.git  # 测试拉取


    

    Credentials(凭据)这里有两种方式:

    第一种:选择无,其实就是基于免秘钥的。

    第二种:用户(其实就是从gitlab拉取代码的gitlab用户)


    上一步在gitlab做了SSH key,Credentials写不写无所谓。

    0011.png

    ${branch}变量:当我们构建时有一个选择列表,这个变量是代表分支。有哪些分支传递给这个变量。


    3、实践

    点击项目构建,有如下${branch}变量的分支选项:

    07.png

    开始构建,控制台输出:

    08.png


    在gitlab上再创建分支,会有如下显示:

    09.png

    选一个分支,开始构建,控制台输出:

    11.png

    注意:“Building on master in workspace /var/lib/jenkins/workspace/test-admin”,从gitlab拉取的代码放在这里 /var/lib/jenkins/workspace/test-admin,这是jenkins服务器上jenkins用户拉取的,而我的jenkins是yum安装的,它的家目录就是 /var/lib/jenkins,还是程序文件放置路径,所以默认拉取代码放置于此。如果你的jenkins是其它方式安装的,jenkins用户是自己创的,自己注意拉取代码放置在哪。



点赞
说说你的看法

所有评论: (0)

# 加入组织

1、用手机QQ扫左侧二维码

2、搜Q群:1058582137

3、点击 宁时修博客交流群