一、任务初体验
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
· 参数化构建选择一个标签
· 验证
至此,参数化构建学习完毕;
精彩内容
发表评论