当前位置:   article > 正文

04-jenkins的任务及参数化构建拉取gitlab代码_jenkins配置gitlab拉取代码

jenkins配置gitlab拉取代码

一、任务初体验

1,创建任务

【点击logo】-【新建任务】

【自定义任务名称】-【选择任务类型】-【确定】

2,配置任务信息

【丢弃旧的构建】

说明:设置保留构建的历史记录,7天或者10次的构建记录;

由于是初体验任务管理,本次使用配置任务,咱们不拉取代码,只是测试任务的基本历程;

构建步骤,选择【执行shell

编辑构建步骤的执行shell

##########################

echo "我们当前所在的目录是:"
pwd
echo "我们jenkins执行时使用的用户是:"
whoami

保存任务

3,构建(执行)任务

点击【立即构建】

点击【立即构建】之后,下方产生一个小“绿色小对号”并显示“1”;

代表构建成功了,构建了1次;

通过构建的结果,我们可以看到;

1,创建的任务,在linux下都在/var/lib/jenkins/workspace/下创建一个与“任务名称”相同的目录;

2,jenkins默认的执行用户是:jenkins

至此,我们jenkins的任务创建与执行构建,就初体验完毕了;

引发问题,如何修改jenkins的默认执行用户呐?

二、修改jenkins默认执行用户

1,查询启动文件的路径

[root@jenkins ~]# systemctl cat jenkins.service 
# /usr/lib/systemd/system/jenkins.service
........................

2,修改启动文件

[root@jenkins ~]# vim /usr/lib/systemd/system/jenkins.service

..............................

User=jenkins
Group=jenkins

..............................

3,重新加载systemctl

systemctl daemon-reload

4,重启jenkins

[root@jenkins ~]# systemctl restart jenkins

5,刷新页面重新构建刚刚的任务

【立即构建】

查看执行结果,发现,执行jenkins的用户已经修改为root了;

至此,修改默认的执行用户就学习完毕了;

三、jenkins拉取gitlab的代码

1,jenkins服务器hosts解析gitlab假域名

[root@jenkins ~]# vim /etc/hosts

2,创建编辑jenkins任务

· 创建任务

【logo】-【新建任务】-【编辑自定义任务名称和自由风格的任务】-【确定】

· 丢弃旧的构建

【丢弃旧的构建】

保留7天内的或者前10次的构建数据

· 源码管理

就是拉取gitlab的代码的配置

选择【Git】-【填写gitlab的项目的克隆地址】

gitlab的克隆地址获取位置

此时,会报错,因为你还没有配置jenkins免秘钥登录gitlab

· jenkins配置免秘钥链接gitlab

        随便一台linux机器生成密钥对(公钥和私钥);

[root@jenkins ~]# ssh-keygen

#一路回车

查看生成的密钥对

[root@jenkins ~]# ll /root/.ssh/
-rw------- 1 root root 1679 Mar 10 13:53 id_rsa
-rw-r--r-- 1 root root  394 Mar 10 13:53 id_rsa.pub

· 将私钥添加到jenkins

将/root/.ssh/id_rsa(私钥)复制好

· jenkins服务器手段链接一次gitlab服务器

由于第一次连接需要输入“yes”确认,所以,咱们需要手段连接一次;

[root@jenkins ~]# ssh gitlab.xinjizhiwa.com

· 将公钥添加到gitlab

将/root/.ssh/id_rsa.pub(公钥)复制好

· 再次查看jenkins任务,就不报错了

我们本次学习,拉取master分支的代码

· 编辑执行shell

echo "xinjizhiwa-web"
pwd
tar zcf /tmp/xinjizhiwa.tar.gz .
#后续操作
#后续操作。。。。。

· 立即构建

· 验证

验证本地是否拉取过来gitlab的代码

[root@jenkins ~]# cat /var/lib/jenkins/workspace/xinjizhiwa-web-01/xinjizhwa.txt 
xinjizhiwa-v1.0
xinjizhiwa-v3.0

验证shell是否将代码压缩到/tmp/目录下

[root@jenkins ~]# ll /tmp/

至此,jenkins拉取gitlab代码到jenkins本地就成功了,同时,jenkins使用shell对本地代码进行操作,也成功;

四、参数化构建

        参数化构建,就是指定gitlab上的代码的版本,进行拉取到jenkins;

        参数化构建有三种类型,选项参数、文本参数、git参数;

1,选项参数

        已知我们在gitlab上有xinjizhiwa-web这个项目,项目中目前有4个版本的代码;

· 创建jenkins任务

1,选项参数设置

        类似于设置变量

2,设置分支构建变量

· 编辑执行shell

echo "xinjizhiwa-web-${var_version}部署成功"

if [$var_version = "main"];then
    echo "部署到生产环境"
fi
if [$var_version = "master"];then
    echo "部署到测试环境"
fi
if [$var_version = "xinjizhiwa"];then
    echo "部署到k8s集群"
fi

· 根据选项构建任务

· 验证是否构建成功

我们的拉取代码的分支,设置的是选项参数变量,所以,我们拉取哪个分支的代码,就会根据我们构建时选择的参数进行拉取;

我们可以查看jenkins代码目录下的代码文件进行验证;

[root@jenkins ~]# ll /var/lib/jenkins/workspace/xinjizhiwa-web-02/

2,文本参数

· 参数化构建选择文本参数

        设置个名称即可

· 拉取代码的分支,依旧设置为参数变量

· 执行shell依旧使用这个变量

· 文本参数构建任务

        与选项参数不同之处就在于一个是选择,一个是文本输入;

· 验证

        是否根据我们输入的变量值,拉取的对应的分支代码;

3,git参数构建

· 安装git插件

· 重启jenkins

[root@jenkins ~]# systemctl restart jenkins.service

· 创建任务参数化构建

· 拉取代码分支配置

· 执行shell编辑

echo "xinjizhiwa-web-${git_tag}部署成功"

if [$git_tag = "main"];then
    echo "部署到生产环境"
fi
if [$git_tag = "master"];then
    echo "部署到测试环境"
fi
if [$git_tag = "xinjizhiwa"];then
    echo "部署到k8s集群"
fi

· 参数化构建选择一个标签

· 验证

至此,参数化构建学习完毕;

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/Li_阴宅/article/detail/960828
推荐阅读
相关标签
  

闽ICP备14008679号