看啥

导航

持续集成环境(4)-Jenkins凭证管理

凭据可以用来存储需要密文保护的数据库密码、Gitlab密码信息、Docker私有仓库密码等,以便
Jenkins可以和这些第三方的应用进行交互。

安装Credentials Binding插件

要在Jenkins使用凭证管理功能,需要安装Credentials Binding插件
image

老版本安装插件后,左边多了"凭证"菜单,在这里管理所有凭证

image
image
可以添加的凭证有5种:

  1. Username with password:用户名和密码
  2. SSH Username with private key: 使用SSH用户和密钥
  3. Secret file:需要保密的文本文件,使用时Jenkins会将文件复制到一个临时目录中,再将文件路径设置到一个变量中,等构建结束后,所复制的Secret file就会被删除。
  4. Secret text:需要保存的一个加密的文本串,如钉钉机器人或Github的api token
  5. Certificate:通过上传证书文件的方式
    常用的凭证类型有:Username with password(用户密码)和SSH Username with private key(SSH
    密钥)
    接下来以使用Git工具到Gitlab拉取项目源码为例,演示Jenkins的如何管理Gitlab的凭证。

安装Git插件和Git工具

为了让Jenkins支持从Gitlab拉取源码,需要安装Git插件以及在CentOS7上安装Git工具。
Git插件安装:image

  • CentOS7上安装Git工具:
yum install git -y
git --version

用户密码类型

1)创建凭证
Jenkins->凭证->系统->全局凭证->添加凭证
image
gitlab用户信息
image
image
选择"Username with password",输入Gitlab的用户名和密码,点击"确定"。
image
2)测试凭证是否可用
创建一个FreeStyle项目:新建Item->FreeStyle Project->确定
image
找到"源码管理"->"Git",在Repository URL复制Gitlab中的项目URL
image
image
这时会报错说无法连接仓库!在Credentials选择刚刚添加的凭证就不报错啦
image
保存配置后,点击构建”Build Now“ 开始构建项目
image
image
查看/var/lib/jenkins/workspace/目录,发现已经从Gitlab成功拉取了代码到Jenkins中。

[root@7 ~]# cd /var/lib/jenkins/workspace/
[root@7 workspace]# ls
itcast01  test01  test01@tmp

SSH密钥类型

SSH免密登录示意图
image
1)使用root用户生成公钥和私钥

ssh-keygen -t rsa

在/root/.ssh/目录保存了公钥和使用

[root@ci01 ~]# ls .ssh/
authorized_keys  id_rsa  id_rsa.pub  known_hosts
  • id_rsa:私钥文件
  • id_rsa.pub:公钥文件
    2)把生成的公钥放在Gitlab中
    以root账户登录->点击头像->Settings->SSH Keys
    复制刚才id_rsa.pub文件的内容到这里,点击"Add Key"
    3)在Jenkins中添加凭证,配置私钥
    在Jenkins添加一个新的凭证,类型为"SSH Username with private key",把刚才生成私有文件内容复制过来
    image
    image
    4)测试凭证是否可用
    新建"test02"项目->源码管理->Git,这次要使用Gitlab的SSH连接,并且选择SSH凭证
    同样尝试构建项目,如果代码可以正常拉取,代表凭证配置成功!

posted on 2021-08-22 00:33  看啥  阅读(248)  评论(0编辑  收藏  举报