凭据可以用来存储需要密文保护的数据库密码、Gitlab密码信息、Docker私有仓库密码等,以便

Jenkins可以和这些第三方的应用进行交互。

安装Credentials Binding插件

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

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





可以添加的凭证有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插件安装:

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

用户密码类型

1)创建凭证

Jenkins->凭证->系统->全局凭证->添加凭证



gitlab用户信息





选择"Username with password",输入Gitlab的用户名和密码,点击"确定"。



2)测试凭证是否可用

创建一个FreeStyle项目:新建Item->FreeStyle Project->确定



找到"源码管理"->"Git",在Repository URL复制Gitlab中的项目URL





这时会报错说无法连接仓库!在Credentials选择刚刚添加的凭证就不报错啦



保存配置后,点击构建”Build Now“ 开始构建项目





查看/var/lib/jenkins/workspace/目录,发现已经从Gitlab成功拉取了代码到Jenkins中。

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

SSH密钥类型

SSH免密登录示意图



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",把刚才生成私有文件内容复制过来





    4)测试凭证是否可用

    新建"test02"项目->源码管理->Git,这次要使用Gitlab的SSH连接,并且选择SSH凭证

    同样尝试构建项目,如果代码可以正常拉取,代表凭证配置成功!

持续集成环境(4)-Jenkins凭证管理的更多相关文章

  1. 项目持续集成环境(jenkins + SVN + maven + tomcat)

    整体流程 每次SVN上代码有变动,触发自动构建动作,并部署到服务器的tomcat上,具体流程: 1.SVN上提交代码修改 2.maven执行Goals 3.将web工程打成war包 4.关闭服务器的t ...

  2. centos下搭建Jenkins持续集成环境(安装jenkins)

    1.安装JDK yum install -y java 2.安装jenkins 添加Jenkins库到yum库,Jenkins将从这里下载安装. 1 wget -O /etc/yum.repos.d/ ...

  3. 有手就行2——持续集成环境—Jenkins安装、插件、用户权限及凭证管理

    有手就行2--持续集成环境-Jenkins安装.插件.权限及凭证管理 持续集成环境(1)-Jenkins安装 持续集成环境(2)-Jenkins插件管理 持续集成环境(3)-Jenkins用户权限管理 ...

  4. Docker+Jenkins持续集成环境(5): android构建与apk发布

    项目组除了常规的java项目,还有不少android项目,如何使用jenkins来实现自动构建呢?本文会介绍安卓项目通过jenkins构建的方法,并设计开发一个类似蒲公英的app托管平台. andro ...

  5. Docker+Jenkins持续集成环境(4):使用etcd+confd实现容器服务注册与发现

    前面我们已经通过jenkins+docker搭建了基本的持续集成环境,实现了服务的自动构建和部署,但是,我们遇到一个问题,jenkins构建出来的镜像部署后,需要通过ip:port去访问,有什么更好的 ...

  6. 在Redhat上为.Net 项目构建基于Jenkins + Github + Mono 的持续集成环境

    在Redhat enterprise 6.5 的服务器上,为在gutub 上的 .net 项目构建一个持续集成环境,用到了Jenkins和mono.因公司的服务器在内网,访问外网时要通过代理,所以在很 ...

  7. 使用Maven+Nexus+Jenkins+Svn+Tomcat+Sonar搭建持续集成环境(二)

    前言     上一篇随笔Maven+Nexus+Jenkins+Svn+Tomcat+Sonar搭建持续集成环境(一)介绍maven和nexus的环境搭建,以及如何使用maven和nexus统一管理库 ...

  8. 使用Maven+Nexus+Jenkins+Svn+Tomcat+Sonar搭建持续集成环境(一)

    前言     但凡一个略有规模的项目都需要一个持续集成环境的支撑,为什么需要持续集成环境,我们来看一个例子.假如一个项目,由A.B两位程序员来协作开发,A负责前端模块,B负责后端模块,前端依赖后端.A ...

  9. Jenkins+ANT+SVN快速搭建持续集成环境

    伟大的语言都从helloworld开始,这里我们用Jenkins+ANT+SVN来搭建这一套持续集成环境. 环境准备: 一台已经配置好Jenkins和Ant的机器. 项目准备: 用Ecplise建立一 ...

  10. jenkins + Git 搭建持续集成环境

    持续集成通过自动化构建.自动化测试以及自动化部署加上较高的集成频率保证了开发系统中的问题能迅速被发现和修复,降低了集成失败的风险,使得系统在开发中始终保持在一个稳定健康的集成状态.jenkins是目前 ...

随机推荐

  1. 吴恩达老师机器学习课程chapter05——评估模型

    吴恩达老师机器学习课程chapter05--评估模型 本文是非计算机专业新手的自学笔记,高手勿喷. 本文仅作速查备忘之用,对应吴恩达(AndrewNg)老师的机器学期课程第十章.第十一章. 目录 吴恩 ...

  2. 不安全的权限 0644,建议使用 0600 虚拟机无法分配内存 virtual memory exhausted: Cannot allocate memory

    我都不知道我写了啥,自己都很混乱 aoteman@aoteman-virtual-machine:/tmp$ sudo -s #进入root用户模式 [sudo] aoteman 的密码: 12对不起 ...

  3. SAP生产订单没有目标成本的原因解释

    首先,OKV6察看一下目标成本的配置,默认是当期成本估算,见下图: 其次,没有目标成本的原因还可能是下列原因导致: 1.该物料没有成本估算和发布2.工艺路线维护日期晚于这个物料估算日期3.没有做CO1 ...

  4. js实现光标移入和移出元素事件

    js实现光标移入和移出元素事件 效果实现: 代码: i标签添加事件 var onmouse = 'onmouseover = "overshow(this)" onmouseout ...

  5. EF Core如何到回滚上一次迁移

    update-database 上上次迁移记录 让数据库回滚 remove-migration 删除本次有误的迁移文件 修改完毕后 add-migration updata-database 完成

  6. 理解cpu过高的逻辑思维与分析方法

    工作经常碰到负载过高,cpu占有太高,系统变慢,运维通常做的第一件事就是通过top或者uptime命令来了解系统负载的情况 通常uptime后会出现三个小数,就是平均负载值,那真正的了解这个平均负载值 ...

  7. lg9035题解

    考虑枚举\(a_{n-1}=l\),根据题意\(l\leq a_n\leq k+1-l\),这说明\(a_n\)有\(k+1-2l\)种取值. 令\(b_i=a_i-a_{i-1}\),则\(b_1\ ...

  8. Word10 个人简历office真题

    1.新键Microsoft Word 文档,命名为Word,再打开Word文档,选择[布局],打开[页面设置]右下角的箭头,弹出[页面设置]的窗口,根据题目要求调整[页边距].   2.根据案例题目二 ...

  9. ABAP 范围表 range table

    范围表定义: DATA gr_test TYPE RANGE OF char6. 做选择屏幕的时候 范围选择框 默认就是一个范围表 范围表内容: 通过断点调试可以看到,范围表有4列 sign opti ...

  10. golang 解决 socket: too many open files, 以及 too many open files

    同事写的一段代,码业务场景:需要多次GET请求一个三方服务的http 接口,获取数据后写入文件.发现有部分文件没有写入.查看日志出现了报错"socket: too many open fil ...