02-自动化CICD-Jenkins¶
Jenkins服务部署¶
Jenkins 介绍¶
Jenkins
只是一个平台,真正运作的都是插件。这就是jenkins流行的原因,因为jenkins什么插件都有
Hudson
是Jenkins的前身,是基于Java开发的一种持续集成工具,用于监控程序重复的工作,Hudson后来被收购,成为商业版。后来创始人又写了一个jenkins
,jenkins在功能上远远超过hudson
Jenkins官网:https://jenkins.io/
安装部署¶
安装
安装JDK
Jenkins是Java编写的,所以需要先安装JDK,这里采用yum安装,如果对版本有需求,可以直接在Oracle官网下载JDK。
[root@linux-node1 ~]# yum install -y java-1.8.0
安装jenkins
[root@linux-node1 ~]# cd /etc/yum.repos.d/
[root@linux-node1 yum.repos.d]# wget http://pkg.jenkins.io/redhat/jenkins.repo
[root@linux-node1 ~]# rpm --import http://pkg.jenkins.io/redhat/jenkins.io.key
[root@linux-node1 ~]# yum install -y jenkins
#本文使用yum进行安装,大家也可以使用编译安装。
配置启动¶
[root@linux-node1 ~]# systemctl start jenkins
界面配置¶
新版本的jenkins为了保证安全,在安装之后有一个锁,需要设置密码之后才可以解锁
Jenkins Web
访问地址:192.168.56.11:8080
友情提示:jenkins如果跟gitlab在一台服务器需要将jenkins的端口进行修改,需要将jenkins的**8080**
修改为**8081**
[root@linux-node1 ~]# cat /var/lib/jenkins/secrets/initialAdminPassword
490a2f35a2df49b6b8787ecb27122a3a
复制这个文件下面的ID,否则不可以进行安装。
我们选择推荐安装即可
它会给我们安装一些基础的插件
设置用户名密码:
点击保存并退出
早期jenkins
默认是不需要登陆的
新建项目¶
我们先来介绍一下jenkins基础功能
我们点击新建
这里就是构建一个项目
用户界面¶
**用户界面:**主要是一些用户的管理
可以看到当前登陆用户及用户权限等
任务历史¶
**任务历史:**可以查看到所有构建过的项目的历史
#之所以叫构建,是因为都是java,因为如果不是java程序就没有构建这个词。但是我们也可以把一些工作称之为构建
系统管理¶
**系统管理:**存放jenkins所有的配置
视图功能¶
**My Views:**视图功能,我们可以自己创建一个自己的视图
构建队列¶
**构建队列:**如果当前有视图任务都会显示在这里
系统管理:-系统设置
设置Jenkins全局设置&路径
插件管理¶
Jenkins系统管理比较重要的就是插件管理
了
#因为jenkins所有的东西都需要靠插件来完成,
在线插件¶
点击已安装可以查看我们的安装
我们想安装什么插件,我们可以选择可选插件
1 |
|
离线插件¶
查看还可以去jenkins官网下载,然后上传插件
因为很多插件需要翻墙才可以继续下载,jenkins还提供了代理的设置
还是在服务器目录下进行上传插件
目录路径= /var/lib/jenkins/plugins/
这个目录下是我们安装所有的插件
输入日志设置颜色¶
创建任务如何设置颜色¶
Jenkins
Jenkins默认输出日志不带任何字体颜色,除了问题不容易排错影响我们看log的时间
1.Jenkins安装
2.安装输出变色插件AnsiColor(在系统管理--->插件管理---->可选插件 搜索AnsiColor下载安装即可)
3.Jenkins开启插件
4.颜色取值范围
颜色 前景色 背景色 黑色 [Black] 30 40 红色 [Red] 31 41 绿色 [Green] 32 42 黄色 [Yellow] 33 43 蓝色 [Blue] 34 44 紫红色 [Magenta] 35 45 青色 [Cyan] 36 46 白色 [White] 37 47 表中的数值对 xterm 有效,其它的终端模拟器可能显示结果有些出入。
使用 echo 示例如下:
echo -e "\033[颜色值m
文本"这句代码中\033[ 作为转义序列的开始,你也可以使用 "\e[" 颜色值处设定前景色值。m 终止转义序列,后面紧跟着就是生效的文本。echo 需要 -e 来开启转义序列。可以用 printf 代替 echo。
具体实现:
echo -e "\033[41;30m红底黑字\033[0m"
echo -e "\033[30m 黑色字 \033[0m"
echo -e "\033[31m 红色字 \033[0m"
echo -e "\033[32m 绿色字 \033[0m"
echo -e "\033[33m 黄色字 \033[0m"
echo -e "\033[46;30m 天蓝底黑字 \033[0m"
echo -e "\033[4;31m 下划线红字 \033[0m"
echo -e "\033[5;34m 红字在闪烁 \033[0m"
#需要注意的是闪烁文本在任何一个终端模拟器上都不显示,只在控制台显示
效果图
pipeline语法如何设置颜色¶
需要安装
ansible插件
AnsiColor插件
stage('执行剧本'){
steps{
ansiColor('xterm') {
sh """sh 1.sh"""
}
ansiColor('xterm') {
ansiblePlaybook colorized: true, extras: '-e "nodes=nodes"', playbook: 'ping.yml'
}
ansiColor('xterm') {
ansiblePlaybook colorized: true, extras: '-e "nodes=nodes"', playbook: 'ping.yml'
}
}
}
生成定制主题css¶
效果图¶
Jenkins默认界面比较丑,视觉容易疲劳,这时候就需要我们更换一个主题。让我们的Jenkins美观一些
首先需要我们打开生成css主题的地址:http://afonsof.com/jenkins-material-theme/
Select your color
选择一个你喜欢的主题颜色。
Choose your company logo
上传你自定义的公司logo。
点击“↓DOWNLOAD TOUR THEME!”
上传logo完成之后,按钮会变更为下载按钮,点击下载到本地。
选择主题颜色¶
1.选择主题颜色
选择公司logo¶
2.选择公司logo,然后我们点击下载css
Jenkins 配置¶
3.Jenkins 配置
安装simple theme插件
在主菜单中选择系统管理->管理插件
安装完插件我们点击 系统管理
→系统设置
找到配置Theme的地方
Theme获取css文件有2种方式,第一种我们上传到nginx站点访问,第二种上传到Jenkins目录
第一种可以直接写http://down.i4t.com/jenkins-material-theme.css进行测试
第二种
将之前下载的css文件放置到${Jenkins_HOME}/userContent/material/
下
没有material文件夹的可以自己创建,其他名字也是可以的。
${Jenkins_HOME}这里是Jenkins默认目录,不修改家目录的情况下在/root/.jenkins
预览演示¶
我们配置好css地址之后,点击保存
Git+jenkins实现持续集成¶
创建任务¶
开始构建
General
源码管理¶
我们安装的是git
插件,还可以安装svn
插件
我们将git
路径存在这里还需要权限认证,否则会出现error
我们添加一个认证
选择一下认证方式(我们可以在系统管理-->Configure Credentials
)里面进行设置
#提示:gitlab有一个key,是我们用来做仓库的key。拥有的权限是read-only
公钥我们需要在服务器上查看。
[root@linux-node1 ~]# ssh-keygen -t rsa
Generating public/private rsa key pair.
Enter file in which to save the key (/root/.ssh/id_rsa):
Created directory '/root/.ssh'.
Enter passphrase (empty for no passphrase):
Enter same passphrase again:
Your identification has been saved in /root/.ssh/id_rsa.
Your public key has been saved in /root/.ssh/id_rsa.pub.
The key fingerprint is:
5c:55:51:4e:a0:ad:1f:87:e0:96:9b:24:a3:09:68:62 root@linux-node2
The key's randomart image is:
+--[ RSA 2048]----+
| ..++o|
| . o o |
| . o . .|
| . . . . + . |
| E o . S o * o .|
| . o . o = + o |
| o o . |
| |
| |
+-----------------+
#在192.168.56.11 部署的节点上,生成key
[root@linux-node1 ~]# cat .ssh/id_rsa.pub
ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQDWEDIIatngRx5NaqU6t+f6FvY2RqYp3V3u5CNJS6xAamGokQ3MnbsTv/V8yKy2TpvNcXsaXmqwQtOVSAO4BzltidMPxBJUQCqKdMRbPqpzo7ZqGCuLcCfHC8M6tSbr1AaHkLbow29YbCMyzCCkjDfRcOez8yHuLj5BSFpKYCjx2wpJxoZ/Z6J8Fslsyu7MaRMvUhBMAF6mqQaC1qZ6K4BMt0IpAuJvoL4dNu9P6KcnG3Wy2zrzoKzkFUi0xpKCmpYo2bq4zRXgAFAndp44j5iMKEavWPeRH0RHTGsfE5vU5/0CI9LCRjtp/3vTaYlBryq5vNXb2abCrJXWws0jwp6L root@linux-node2
测试拉取¶
[root@linux-node2 ~]# yum install git -y
#如果没有git命令就安装一个git客户端
[root@linux-node1 ~]# git clone git@www.abcdocker.com:web/web-demo.git
Cloning into 'web-demo'...
The authenticity of host 'www.abcdocker.com (192.168.56.11)' can't be established.
ECDSA key fingerprint is b5:74:8f:f1:03:2d:cb:7d:01:28:30:12:34:9c:35:8c.
Are you sure you want to continue connecting (yes/no)? yes
Warning: Permanently added 'www.abcdocker.com,192.168.56.11' (ECDSA) to the list of known hosts.
remote: Counting objects: 10, done.
remote: Compressing objects: 100% (8/8), done.
remote: Total 10 (delta 0), reused 0 (delta 0)
Receiving objects: 100% (10/10), 70.00 KiB | 0 bytes/s, done.
私钥:
[root@linux-node1 ~]# cat .ssh/
id_rsa id_rsa.pub known_hosts
[root@linux-node1 ~]# cat .ssh/id_rsa
-----BEGIN RSA PRIVATE KEY-----
MIIEpQIBAAKCAQEAoVULn6xsKj+XZMyFOGcFwo0bkrzFRjeZSXby/0BXJJpVaYVj
LEMNOlbD4YHCNTQ4xmyjoeaW468pciVAooOWCCdcbjDmdmACt9knHjMZ1YRG/xuM
DW/VTLBkP1bOAsa1NR3QE5LR/cwwFeEM/NcdjzmCVuQeSwL8GeKMKpyKWe6N8mus
QcRLwiDElbQ9e6CqzagKYbIPnuvCr0XsYjQhGwm0Rhqt2ynr4Ig7FqUhpwmLCQtP
nEq1MbsxDtxugKhiP6kd5znoPdazrKAD9xaRYwSoG/7F4IJMMI5hiKhVya1Bvl5n
M3heJBv61KzW3cvOHuUch6CEt1ypybkY08R8gwIDAQABAoIBAQCXVnTZ6t9oXlDB
EI1jlFi14LJd2tBfhuY3IOrfgFZ+knvOyX53VcrB0ARdtOAeEoezstNomysuF/EU
D1frWu5RZcLx5tM5deT22zAzxxHT1grXYdrl++Ml1k2jkOUde5MeaYH36oErx+/P
hlYtlAk5gmP+6Gx2Ry1/hqGfk0rBAmY/eazqpT5hc1ANuW5dCmdQ5pqHog8CwH+K
YnhKNUaW0VMqzWg9y3cQc8tlQItWUAsjl4+l/rSdOxsC9lTtuJZfMPIlrtLPi6tg
tfjpX+N4zRbSwVblrD6mXOcKmAPbnuvLhyIBnBmDXeAHKCEnOYJ8eEJ6rT+GRjc8
aDvzsLmhAoGBAM0qj6lqdY4ZpHjCd7hJzGIitLBqsqRmHWgs9ymLIFQ+Z8LYI2HQ
1xja/oUfMkAnArcjz+q+gpDinC+oOVAnr4FQWB+lUdlMzzuE6OtYyWYYzjHpdTbO
j4tHgqkOraiuRy1TanjgAJJSwR6oTwnBIC8PjEHa3o8xslVuexOobh1TAoGBAMlO
JUHMMVmgxDaZq0c50Bn/r/k57QGj87E9mEbJeqBs+8fcxZoOFLEEd+Sb8Q1riqV9
12L2BAc6EoypoPUydbt0Q5/1G2VvCN1a6G43Ip7QM1cUTPrp17fvHWVSAMdq7lIr
ntabqmtZVGqcxedmG1N7BVNXBd4Jy5HjOZ8Qfg4RAoGBAMyX5s9hNH1SIOuzscN7
BG/QgDN1E1RR6H1cadVpwgGAgeSRuSbwJa/JowqJg4jp3hFXix1igb2N3YbA0PaX
vLLNtjNInwh9SiLmdYdL8Pr5PZYUYykWb5rK4wdHdfHCaYRPrNuBNdC06ZRy7u6h
QkDr1khNxKczPc1n8SA3VCe1AoGAYdWb39WIaoHquoqGppAfZnNQp/SSDkkLR6mi
10xWT5+H4oOWeZ+8SKfeSPnM9nO8p194jXz5SjXcDAbo1iIW++qubxAlp2+GRGZJ
Lj+XkM2pFfoky5FYqOkKRVLMVB7RAph2kuCGu7NnhoT43dRPFYxlczKJBHeIOzfO
qlLOoLECgYEAkexlwKGeXyJj481SfqCYhjiTjCiibx/s6yS2cmamgEKOZCB2osmq
3m9PvOAp26Sm1ISiuINNbpLY3Gi5fEvNUSyRx8HzRXP2fydvdgpltDxJUPaUVxvn
X46F8ewsMJ7/FDLSyjdzwvoDRvKCk99OBmGmofqh5zW0GrjcQjthmbk=
-----END RSA PRIVATE KEY-----
[root@linux-node1 ~]#
刚刚返回刚刚的区域,继续配置
现在我们复制git的url 就不会出现验证提示
我们选择gitlab,url如下图
查看gitlab版本
[root@linux-node1 ~]# rpm -qa|grep gitlab
gitlab-ce-8.14.5-ce.0.el7.x86_64
我们现在就添加了一个git仓库,现在保存就可以了!
立即构建¶
点击Console Output
可以显示控制台的输出
现在基本就算是构建成功了