凭据可以用来存储需要密文保护的数据库密码、Gitlab
密码信息、Docker
私有仓库密码等,以便
Jenkins
可以和这些第三方的应用进行交互。
1. 安装Credentials Binding
插件
要在Jenkins
使用凭证管理功能,需要安装Credentials Binding
插件
点击Manage Jenkins
选择Manage Plugins
点击可选插件,待加载完毕后,在过滤框中输入Credentials Binding
勾选插件,直接安装
安装插件后,左边多了 "凭证"菜单,在这里管理所有凭证
2. 可以添加的5种凭证
-
Username with password
:用户名和密码 -
SSH Username with private key
: 使用SSH
用户和密钥 -
Secret file
:需要保密的文本文件,使用时Jenkins
会将文件复制到一个临时目录中,再将文件路径设置到一个变量中,等构建结束后,所复制的Secret file
就会被删除。 -
Secret text
:需要保存的一个加密的文本串,如钉钉机器人或Github
的api token
-
Certificate
:通过上传证书文件的方式常用的凭证类型有:
Username with password
(用户密码)和SSH Username with private key
(SSH
密钥)
3. 使用Git
工具到Gitlab
拉取项目源码
演示Jenkins
的如何管理Gitlab
的凭证。
3. 1 安装Git插件和Git工具
安装GIT插件
为了让Jenkins
支持从Gitlab
拉取源码,需要安装Git
插件以及在CentOS7
上安装Git
工具。
点击Manage Jenkins
选择Manage Plugins
勾选,直接安装
安装Git工具
CentOS7
上安装Git
工具:
yum -y install git
# 查看git 版本
git --version
3.2 创建用户密码类型凭证
Jenkins
->凭证->系统->全局凭证->添加凭证
选择 "Username with password"
,输入Gitlab
的用户名和密码,点击"确定"。
3.3 测试用户密码凭证是否可用
创建一个FreeStyle
项目:新建Item
->FreeStyle Project
->确定
找到 “源码管理”->"Git"
,在Repository URL
复制Gitlab
中的项目URL
将地址填入test01
中选择Git
处
这时会报错说无法连接仓库!在 Credentials
选择刚刚添加的凭证就不报错了
保存配置后,点击构建”Build Now“
开始构建项目
查看 /var/lib/jenkins/workspace/
目录可以看到gitlab
中的代码已经成功被拉取到jenkins
中
3.3 创建SSH类型凭证
生成公钥和私钥
- 在
jenkins
服务器上使用root
用户生成公钥和私钥
ssh-keygen -t rsa
在/root/.ssh/
目录保存了公钥和使用
id_rsa
:私钥文件id_rsa.pub
:公钥文件
- 把生成的公钥放在
Gitlab
中
# 读取公钥内容,复制,并填入gitlab
cat ~/.ssh/id_rsa.pub
以root
账户登录->点击头像->Settings
->SSH Keys
复制刚才id_rsa.pub
文件的内容到这里,点击"Add Key"
- 在
Jenkins
中添加凭证,配置私钥
在Jenkins
添加一个新的凭证,类型为"SSH Username with private key"
,把刚才生成私有文件内容复
制过来
点击确定
3.4 测试SSH类型凭证是否可用
新建"test02
"项目->源码管理->Git
,这次要使用Gitlab
的SSH
连接,并且选择SSH
凭证
同样尝试构建项目
至此,使用用户密码凭证和使用SSH凭证从gitlab
拉取代码成功