前言
本篇文章主要是讲怎么在Linux环境下下载Jenkins应用、常见的配置以及可能会遇到的小坑,话不多说,看正文。
想要了解更多Jenkins系列的文章,可以参考如下链接:
Jenkins系列(二)——触发点和构建环境的介绍
Jenkins系列(三)——关于通用配置(General模块)的介绍
一、Jenkins使用前提
需要本地有JDK1.8以上的java版本,测试服务器上是否已经安装了Java,可以用下面这条命令
java -version
需要注意的是,如果你下载的jenkins
版本是1.612以下的,那么JDK1.7版本的应该也是可以的。
二、Jenkins的安装
(1)下载Jenkins
Jenkins的安装其实可以直接去官方网站就可以看到官方推荐的安装方式了:
https://pkg.jenkins.io/redhat-stable/
也可以根据我下面的命令来进行安装:
sudo wget -O /etc/yum.repos.d/jenkins.repo https://pkg.jenkins.io/redhat-stable/jenkins.reposudo
rpm --import https://pkg.jenkins.io/redhat-stable/jenkins.io.key
yum install
当然了,除了命令行操作下载外,直接在官网上手动下载对应操作系统的软件包也是推荐的选择 官网下载地址
(2)修改Jenkins端口
跟着上面的步骤安装成功后我们再来修改一下jenkins的启动端口,由于jenkins的默认端口是8080,可能会跟其他应用冲突,而且暴露在8080端口上也不太安全,所以这里我们还是选择修改一下:
vim /etc/sysconfig/jenkins
(3)启动Jenkins
输入如下命令,即可启动Jenkins
service jenkins restart
注意,如果你的JDK的存放路径和Jenkins默认配置的jdk路径不符的话,上面的命令是会执行失败的:
遇到这种情况,我们需要修改一下Jenkins的配置文件,加入我们本地的jdk路径
vim /etc/init.d/jenkins
修改完成后,执行下面两条命令即可启动Jenkins了
# 刷新配置
systemctl daemon-reload
# 重启jenkins
service jenkins restart
启动成功后,我们就可以登录上面我们的Jenkins了。需要注意的是,初次登录的话,需要验证密码和初始化账户,这里的话根据页面提示来就行。然后按照插件的话,建议根据Jenkins推荐的插件来安装就行。
三、在控制台进行jenkins服务的重启、关停、重新加载配置
## exit to shutdown jenkins
http://ip:jenkins_port/exit
## restart to restart jenkins
http://ip:jenkins_port/restart
## reload to reload the configuration
http://ip:jenkins_port/reload
四、常见配置项
(一)系统通用配置
对于jenkins的通用配置(不含凭证配置),我们基本上可以在Manage Jenkins
-> System Configuration
-> Configure System
/Global Tool Configuration
这两个入口中进行配置。这里有2个需要注意的点:
- 不同版本的jenkins对于此处的布局会有不一致的地方,但是基本上配置的地方都是在
Manage Jenkins
->System Configuration
里面的 -
Configure System
主要用来配置系统级别的配置,比如jenkins的主目录、邮件配置、通用的环境变量以及其他公共的通用配置等,而Global Tool Configuration
主要用来配置常用依赖项,比JDK、Maven、Git等工具,对不同的任务来说,我们有时候会需要用不同版本的工具来进行构建,因此多版本的依赖项我们需要在Global Tool Configuration
页面中进行配置,这样后续在定义任务的时候才可以选择。
相对来说,我们使用Configure System
的频次会更高一些,毕竟Global Tool Configuration
(二)系统凭证配置
jenkins的凭证配置相对来说是比较复杂的,让我们来从凭证类型开始说起,Jenkins可以存储以下类型的credentials:
- Secret text - API token之类的token (如GitHub个人访问token)
- Username and password - 可以为独立的字段,也可以为冒号分隔的字符串:username:password(更多信息请参照 处理 credentials)
- Secret file - 保存在文件中的加密内容
- SSH Username with private key - SSH 公钥/私钥对
- Certificate - a PKCS#12 证书文件 和可选密码
- Docker Host Certificate Authentication credentials.
一般来说,我们用的比较多的就是用户名密码
和SSH 公钥/私钥对
,前者用于各种场景的账号验证,后者用于ssh执行shell脚本。
下面我们来说一下如何配置和使用一个凭据,首先我们先进入到凭据的配置入口,一般来说是位于左侧菜单的“凭据”入口,不过高版本jenkins的凭证入口有所改动,要在Manage Jenkins
-> Security
-> Credentials
/Credentials Providers
(相当于是把原先的入口更加细致化的拆分为2个模块出来),前者的用于配置具体的凭证内容,后者用于配置jenkins支持的凭证类型。一般来说,我们最常用的就是前者了,后者一般是用的默认配置。
接着我们进入系统域下配置一个全局的凭证,
- 关于范围
范围是指这个凭证可以在哪些场景下使用,如果选择的是global的话,那么基本上所有用到用户密码类型的凭证时,都会把我们新建的凭证作为选项之一,而如果选择System的话,那么只有jenkins配置通用系统配置的时候,凭证才是可见的,这样就可以在一定程度上保证凭证的安全性。(为什么说可以保证凭证的安全性呢?因为pipeline脚本以及其他插件其实是有可能导致我们任务在执行的过程中把凭证信息暴露的,而如果本身你已经确定凭证就是只有系统级别的配置才会用到,那么可以考虑在一开始的时候就配置正确的生效范围) - 关于ID
这里建议是按规范起一个ID名称,方便后续管理的凭证的时候知道我们这个凭证的作用,如果不填的话默认会生成一个UUID
(ID不填的话,那么描述就不能再偷懒了,不然后续时间一长管理起来就会比较头痛) - 关于是否加密用户名
如果勾选了这个选项的话,那么在查看下拉框选项时,就对用户名/密码不可见了,下拉框选项中只会展示描述,如果描述没填的话就会展示ID,所以如果本身描述没有填,ID又不按规范自定义的话,自己在选择凭证的时候也会比较混乱。
小结
个人感觉jenkins工具十分全面,业内的支持度和使用也很广,是一个值得学习的集成工具,但大而全也就意味着相对比较复杂,初次接触jenkins
可以尝试配置里面的一些功能,了解常用的配置项都在那里,以及不同模块配置的位置,会对熟悉这个工具有很大的帮助。
然后总的来说,凭证是jenkins中一个比较重要的模块,通用性很强,所以jenkins把凭证进行统一管理,方便不同的可配置项可以复用,其实也是一种复用思想的体现。
参考文章
Jenkins官方文档:https://www.jenkins.io/zh//doc/book/using/using-credentials/