Jenkins凭证及任务演示-pipeline
Jenkins前言
在上一篇博客《Jenkins持续集成介绍及插件安装版本更新演示(一)–技术流ken》中已经详细介绍了jenkins的插件安装以版本更新等,本篇博客将再深入探究jenkins的更多功能,以便能够熟练使用jenkins完成工作中的内容。
本篇博客将详细讲解有关jenkins的凭证以及新建任务的演示,有关jenkins系列会一直更新到jenkins与gitlab和ansible完成动态和静态网站持续集成自动化部署为止,敬请期待。
Jenkins凭证介绍
有许多第三方网站和应用程序可以与 Jenkins 进行交互,例如程序代码仓库,云存储系统和服务等。
此类应用程序的系统管理员可以在应用程序中配置凭证以专供 Jenkins 使用。通常通过将访问控制应用于这些凭证来完成这项工作,以“锁定”Jenkins可用的应用程序功能区域。一旦 Jenkins 管理员(即管理 Jenkins 站点的 Jenkins 用户)在 Jenkins 中添加/配置这些凭证,Pipeline 项目就可以使用凭证与这些第三方应用程序进行交互。
Jenkins 中保存的凭证可以用于:
- 任何适用于 Jenkins 的任何地方(即全局证书)
- 特定的 Pipeline 项目
- 特定的 Jenkins 用户
Jenkins凭证的创建
可以给gitlab创建一个凭证,用户是gitlab用户名,密码是gitlab密码,这样在调用git做持续集成的时候就可以直接使用该凭证了
第一步:创建凭证
进入你的jenkins的首页,点击左边栏的凭证


第二步:点击全局凭据


第三步:点击 添加一些凭据


第四步:输入信息
在如下的对话框中输入你的信息点击确定即可


第五步:首页查看
即可看到我们已经添加的凭据


项目需求
为了增加项目的难度,特地要求使用role,以及templates来完成该项目。
1. 在gitlab中创建一个项目 nginxinstall
2. 编写playbook,实现一键部署nginx、部署一个静态测试页、测试部署结果
要求:
部署nginx
端口:83
运行身份:root
设置并发连接数:2048
根目录:/vaw/www/html
其他要求:
部署两个以上节点
用role
用templates
3. 将写好的playbook保存到gitlab仓库中
新建任务演示
如果你想使用jenkins完成日常的工作,那么你必须要学会如何使用任务。
所谓的任务你可以这样理解就是你需要执行的一系列动作。
第一步:点击新建任务


第二步:输入你要创建的任务名称
输入完成点击下方的确定即可
注意:名称不能有空格
这个名称就是一个目录,接下来我们会演示git,git拉取到的内容就是保存了这个同名目录下面


第三步:填写你需要看到的信息
在参数构建过程中参数有几个你必须知道的是文本参数和选项参数
这里我选择选项参数进行演示



第四步:git获取项目
URL输入你的项目地址
凭证哪里添加可以获取到你的项目的用户和用户名
branch哪里添加分支


第五步:构建
这里就是把 你的命令添加在这里即可


在shell中添加如下内容并保存即可


第六步:构建参数
如果你选择了选项参数,在这个任务界面就可以看到这个选项


点开这个,就会看到我们刚才输入的tyep以及auto了(忘记了请往上翻一下哦)


第七步:返回结果
如果执行成功了左下角的圆圈就是蓝色的
执行失败了就是红色
鼠标放上去也会看到提示信息的


第八步:查看执行过程
下图中的红色框都是我刚才执行的命令
第一列:的/var/lib/jenkins/workspace/test_for_block 是echo 的结果,表示jenkins现在工作目录是在你的任务名称下的
第二列:显示当前所在的目录,其实可以发现我们现在就处在自己的新建任务的同名目录中
第三列:进入到工作目录,即当下
第四列:给我们展示了当前目录下的所有文件,可以看到我们远程仓库中的文件已经被拉取到了当前文件夹下


pipeline结构介绍
层级结构
第一层:pipline,这是最外层
第二层:stages,这层是用来完成一个特定的工作,其中有一个或者多个子层,每个子层是一个stage
第三册:stage,这是stages的子层
第四层:steps,这层是定义具体要执行的操作

pipline {
agent any;
environment {
user='deploy'
host='1.2.3.4'
PATH='/bin:/sbin:/usr/bin:/usr/sbin:/usr/local/bin:/usr/local/sbin'
}
stages {
stage('bulid job') {
environment {
NEWPATH='/bin:/sbin'
}
steps {
sh '/home/a.sh'
echo "hi boys"
script{
xxxx
xxxx
}
}
}
}
}

区域:
- agent:定义当前的job运行在哪个jenkins节点上
any:
none:
node:
agent {node {label ‘ser1’}}
agent any
2. environment:定义环境变量
格式:变量名=变量值
3. script:可选的
4. steps:借助于特定的jenkis模块来完成特定的工作
echo
sh
git
pipeline演示
第一步:新建任务
选择流水线


第二步: 编写pipeline
可以发现这里面的界面比我们之前选择的freestyle界面简洁的多


在这里填写你的pipeline保存即可


第三步:构建
点击立即构建即可


第四步:查看执行结果
可以发现执行成功
pipeline的功能很多,在接下来的博客当中会使用pipeline完成动态网站的持续集成部署。


上面例子中的pipeline代码

pipeline{
agent {node {label 'master'}}
environment {
PATH="/bin:/sbin:/usr/bin:/usr/sbin:/usr/local/bin:/usr/local/sbin"
}
parameters{
choice(
name: "deploy_env",
choices: "dev\nprod",
description: "this is for liang lei xi tong"
)
string(name: 'version',defaultValue: '1.0.0', description: '版本号')
}
stages {
stage("test for pipline job"){
steps{
sh "git config --global http.sslVerify false"
dir ("${env.WORKSPACE}"){
git branch:'master',
url:'http://10.220.5.232/gp1/wordpress.git',
credentialsId:'119a7e29-4c6c-4f75-bfdb-56fa0edcafaa'
}
}
}
stage("print bianlian"){
steps{
sh """
set +x
echo "===============start job=============="
echo "你选的类型是 $deploy_env"
echo "your version is $version"
echo "===============stop job =============="
set -x
"""
}
}
}
}