前言

本文旨在配置凭据使用Git仓库中的Jenkinsfile使用声明式流水线拉取Git代码

使用SVN等其他版本控制工具,请参考使用Pipeline-Syntax生成对应代码块

凭据(credentials)是什么

凭据(credentials)是访问其他系统的认证信息,可以是账号/密码、SSH密钥、加密文件等,Jenkins可以通过设置的凭据与其它第三方应用进行认证,在可信与可控的范围内,完成第三方交互。

Jenkins可以存储以下类型的credentials:

  • Secret text - API token之类的token (如GitHub个人访问token),
  • Username and password - 可以为独立的字段,也可以为冒号分隔的字符串:username:password
  • Secret file - 保存在文件中的加密内容
  • SSH Username with private key - SSH 公钥/私钥对,
  • Certificate - a PKCS#12 证书文件 和可选密码
  • Docker Host Certificate Authentication - Docker 仓库认证信息

为什么添加凭据

为了最大限度地提高安全性,在Jenins中配置的 credentials 以加密形式存储在Jenkins 主节点上(用Jenkins ID加密),并且只能通过 credentials ID在Pipeline项目中获取

这最大限度地减少了向Jenkins用户公开credentials真实内容的可能性,并且阻止了将credentials复制到另一台Jenkins实例

企业的代码一般会存在自己公司的版本控制私服,一般都会输入账号密码,在脚本中直接暴露账号密码是非安全的

如何添加凭据

添加凭据在Jenkins中只能添加全局凭据

  • 首先需要确保当前的登录的用户拥有创建凭据权限的能力

能看到以下的凭据,可以点,基本上是会有权限的,不排除使用更精细的权限控制只读的情况

一般而言,管理员用户拥有此权限

  • 点击凭据->系统->全局凭据

  • 点击左上角添加凭据,添加用户名与密码,确定,完成创建凭据

    类型(kind)参考上小节中类型的介绍,这里以Username with password演示

    注意:描述不要写!描述不要写!描述不要写!这是Jenkins的bug,第一次创建时如果写描述会卡住,无法登录!ID会自动生成,不要管

确定,如下图所示添加凭据成功

使用保存在版本控制的Jenkinsfile

这里使用Github上的代码进行演示,虽然没有使用私服或私有仓库,只为演示效果

为了演示下Jenkinsfile放在Git上是如何使用的,这里新创建了一个Git的仓库用来保存以后的Jenkinsfile内容

https://github.com/hellxz/JenkinsfileTutorials

创建个新的流水线工程

工程描述可以不写,这里就不表述了,这里直接说说如何使用版本控制中的流水线脚本

使用流水线语法生成器

我准备的Jenkinsfile仓库中的Jenkinsfile,这里只拉取一个简单的Springboot的demo

pipeline {
agent any
stages{
stage('Pull Git Demo') {
steps{
//拉取代码,这里也是可以使用凭据的,为了方便没贴出来
git 'https://github.com/hellxz/springboot-demo1.git'
}
}
}
}

git 'https://github.com/hellxz/springboot-demo1.git'这行代码是由Pipeline-Syntax生成的

入口在上边配置工程的最下边,如图 流水线语法

流水线语法使用示意

最后我们把生成好的代码,整合到我们的Jenkinsfile中,提交到Git仓库中

启动构建工程 查看代码拉取结果

回到Classic UI -> Build Now 开始构建,构建完成,提示没有错误,点开最新的构建#1

-> Console Output

后记

文章内写的顺序比较乱,流程我重新顺一下

  1. 编写Jenkinsfile上传Github(或其它SCM)
  2. 创建凭据(Jenkinsfile项目或待拉取有密码的项目)
  3. 创建Jenkins工程,使用Jenkinsfile的SCM(可使用凭据),自定义工程注释与参数
  4. 启动工程,查看Console Output输出

下篇打算写下使用现在拉下来的Java项目,用Maven进行构建打包,安装BlueOcean插件部分

引文

Jenkins官方文档 使用 credentials

本文系Hellxz学习与实践文章,禁止布布扣、码迷、爱码网等第三方爬虫网站爬取,转载请在醒目位置注明出处:https://www.cnblogs.com/hellxz/p/pipeline_pull_project.html

Jenkins教程(三)添加凭据与流水线拉取Git代码的更多相关文章

  1. Jenkins - SSH认证方式拉取Git代码

    1.本地生成密钥 [root@root ~] ssh-keygen -t rsa Generating public/private rsa key pair. Enter file in which ...

  2. 【jenkins】04.SSH认证方式拉取Git代码

    首先需要会git ssh 我们一般用http的形式拉取代码. ssh的好处就是不用每次输入密码,而且貌似会快丢丢,不知道是不是错觉. 大概需要三个步骤: 一.本地生成密钥对: 二.设置github上的 ...

  3. webstorm拉取git代码

    在webstorm中VCS → git → clone → url就是你的git代码地址,parent Directory(你要放到的目录),Directiory Name(起一个项目名称)

  4. Docker:pipeline编写基本技巧- jenkins配置通过免交互方式拉取git源码管理仓库的代码

    工作中,从git仓库拉取代码有2种方式:交互式和非交互式 什么是交互式?就是拉取需要权限才能访问的代码时,需要输入密码 免交互式呢? 是通过密钥,私钥的方式,让服务端信任客户端,产生信任后,任何一次客 ...

  5. 【Copy攻城狮日志】docker搭建jenkins拉取svn代码打包vue项目部署到nginx

    ↑开局一张图,故事全靠编↑ 前言 打开搜索引擎输入『Copy攻城狮』,发现最新的一条记录已经是去年的4月,意味着我又有一年时间没有再总结成长了.习惯了“温水煮青蛙”的日子,无论是经验水平还是薪资收入, ...

  6. Jenkins拉取Git远程仓库中指定目录至本地指定目录

    Jenkins拉取源码是非常实用的操作,比如每天在跑自动化测试前,拉取Git远程仓库中最新的脚本至本地.那么,Jenkins如何拉取Git远程仓库中指定目录至本地指定目录呢?下面来看看具体的设置方法. ...

  7. git 拉取远程代码

    git 拉取远程代码 || 利用vscode编辑器自带了git,可在ctrl+~打开控制台拉取代码,非常好用哦~在实际项目开发过程中,往往是已经存在远程项目了,我们定义的需求是只需要简单的操作git, ...

  8. 【Git】4、创建代码仓库,HTTP、SSH拉取远端代码

    拉取远端代码:使用Git命令下载远程仓库到本地 文章目录 拉取远端代码:使用Git命令下载远程仓库到本地 1.创建远程代码仓库 2.创建仓库 3.进入仓库 4.HTTP(S)获取远程仓库 首次拉取 更 ...

  9. Python 一键拉取Git分支源码自动解析并执行SQL语句

    基于Python实现自动拉取Git分支源码自动解析并执行SQL语句 by:授客 QQ:1033553122 1.代码用途 开发过程中,研发人员会提交SQL更新脚本到Git源码库,然后测试负责去拉取这些 ...

随机推荐

  1. jsp的简介(1)

    一.什么是Java Server Pages? JSP全称Java Server Pages,是一种动态网页开发技术.它使用JSP标签在HTML网页中插入Java代码.标签通常以<%开头以%&g ...

  2. GGPLOT2-plotly |让你的火山图“活”过来

    火山图(Volcano Plot)常用于展示基因表达差异的分布,横坐标常为Fold change(倍数),越偏离中心差异倍数越大;纵坐标为P值(P值),值越大差异越显着.原因得名也许的英文因为查询查询 ...

  3. Linux系统管理----磁盘管理与文件系统

    1.为主机新增两块30GB的SCSI硬盘 找到要添加的虚拟机,单击鼠标右键,点击设置 点击添加 选择硬件类型,然后点击下一步 选择要创建的磁盘类型,然后点击下一步 指定要创建磁盘的容量,然后点击下一步 ...

  4. apache安装zip包安装(非exe)

    安装步骤如下: (1) 下载apache安装程序 进入官网:选择一个版本的apache 选择红色区域的内容,在之后进入的页面中: 选择红色区域的内容,进入页面: 现则VC9的进行下载. (2) 安装 ...

  5. 【有容云】PPT | 容器落地之二三事儿

    编者注: 本文为10月29日有容云联合创始人兼研发副总裁江松在 Docker Live时代线下系列-广州站中演讲的PPT,本次线下沙龙为有容云倾力打造Docker Live时代系列主题线下沙龙,每月一 ...

  6. Kalman Filter、Extended Kalman Filter以及Unscented Kalman Filter介绍

    模型定义 如上图所示,卡尔曼滤波(Kalman Filter)的基本模型和隐马尔可夫模型类似,不同的是隐马尔科夫模型考虑离散的状态空间,而卡尔曼滤波的状态空间以及观测空间都是连续的,并且都属于高斯分布 ...

  7. 初识代理——Proxy

    无处不在的模式——Proxy 最近在看<设计模式之禅>,看到代理模式这一章的时候,发现自己在写spring项目的时候其实很多时候都用到了代理,无论是依赖注入.AOP还是其他,可以说是无处不 ...

  8. c#实现深拷贝的几种方法

    为什么要用到深拷贝呢?比如我们建了某个类Person,并且实例化出一个对象,然后,突然需要把这个对象复制一遍,并且复制出来的对象要跟之前的一模一样,来看下我们一般会怎么做,看代码 public cla ...

  9. Educational Codeforces Round 70 (Rated for Div. 2)

    这次真的好难...... 我这个绿名蒟蒻真的要崩溃了555... 我第二题就不会写...... 暴力搜索MLE得飞起. 好像用到最短路?然而我并没有学过,看来这个知识点又要学. 后面的题目赛中都没看, ...

  10. Liunx查看后1000行的命令以及查看中间部分

    linux 如何显示一个文件的某几行(中间几行) [一]从第3000行开始,显示1000行.即显示3000~3999行 cat filename | tail -n +3000 | head -n 1 ...