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

持续集成环境(1)-Jenkins安装

持续集成环境(2)-Jenkins插件管理

持续集成环境(3)-Jenkins用户权限管理

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

持续集成环境(1)-Jenkins安装

1)安装JDK:Jenkins需要依赖JDK,所以先安装JDK1.8

yum install java-1.8.0-openjdk* -y 

2)安装目录为:/usr/lib/jvm 2)

获取jenkins安装包:

下载页面:https://jenkins.io/zh/download/安装文件:jenkins-2.277.4-1.1.noarch.rpm

3)把安装包上传到20.0.0.30服务器,进行安装

rpm -ivh jenkins-2.277.4-1.1.noarch.rpm

4)修改Jenkins配置

vim /etc/sysconfig/jenkins

打开配置后esc+:  然后输入/+关键字可以搜索你要改的配置

修改内容如:

注意:如果用户使用默认,则需要在系统上创建jenkins用户

JENKINS_USER="root"   #修改成root
JENKINS_PORT="8888"  #修改成四个8

5)启动Jenkins

systemctl restart jenkins

6)打开浏览器个人建议谷歌!访问!

http://20.0.0.30:8888

注意:本服务器把防火墙关闭了,如果开启防火墙,需要在防火墙添加端口

7)获取密码登录

cat /var/lib/jenkins/secrets/initialAdminPassword

跳过插件安装

因为Jenkins插件需要连接默认官网下载,速度非常慢,而且经过会失败,所以我们暂时先跳过插件安装

8)添加一个管理员账户并进入jenkins后台

保存并完成

开始使用Jenkins

补充知识点:

Jenkins密码遗忘处理
//修改配置文件安全功能禁用
vim /var/lib/jenkins/config.xml
<useSecurity>false</useSecurity>
//重启jenkins服务
systemctl restart jenkins
可以直接登录修改账号密码 修改jenkins中已有的用户名和ID
vim /var/lib/jenkins/users/users.xml

  

持续集成环境(2)-Jenkins插件管理

Jenkins本身不提供很多功能,我们可以通过使用插件来满足我们的使用。例如从Gitlab拉取代码,使用Maven构建项目等功能需要依靠插件完成。接下来演示如何下载插件。

修改Jenkins插件下载地址(选做)

Jenkins国外官方插件地址下载速度非常慢,

所以可以修改为国内插件地址: Jenkins->Manage Jenkins->Manage Plugins,点击Available

这样做是为了把Jenkins官方的插件列表下载到本地,接着修改地址文件,替换为国内插件地址

cd /var/lib/jenkins/updates
sed -i 's/http:\/\/updates.jenkins- ci.org\/download/https:\/\/mirrors.tuna.tsinghua.
edu.cn\/jenkins/g' default.json && sed -i 's/http:\/\/www.google.com/https:\/\/www.baidu.com/g' default.json

最后,Manage Plugins点击Advanced,拉到最底下把Update Site改为国内插件下载地址

https://mirrors.tuna.tsinghua.edu.cn/jenkins/updates/update-center.json

Sumbit后,在浏览器输入: http://20.0.0.30:8888/restart ,重启Jenkins。

下载中文汉化插件

Jenkins->Manage Jenkins->Manage Plugins,点击Available,搜索"Chinese"

完成后如图:

重启Jenkins后,就看到Jenkins汉化了!但也不是很全的汉化

(PS:但可能部分菜单汉化会失败)重启时间会有点长没反应刷新一下

持续集成环境(3)-Jenkins用户权限管理

我们可以利用Role-based Authorization Strategy 插件来管理Jenkins用户权

安装Role-based Authorization Strategy插件

开启权限全局安全配置

授权策略切换为“Role-Based Strategy”,保存

创建角色

在系统管理页面进入 Manage and Assign Roles

点击"Manage Roles"

Global roles(全局角色):管理员等高级用户可以创建基于全局的角色 Project roles(项目角色): 针对某个或者某些项目的角色 Slave roles(奴隶角色):节点相关的权限

我们添加以下三个角色:

baseRole:该角色为全局角色。这个角色需要绑定Overall下面的Read权限,是为了给所有用户绑  定最基本的Jenkins访问权限。注意:如果不给后续用户绑定这个角色,会报错误:用户名 is missing the Overall/Read permission

role1:该角色为项目角色。使用正则表达式绑定"apple.*",意思是只能操作apple开头的项目。role2:该角色也为项目角色。绑定"orange.*",意思是只能操作orange开头的项目。

保存

创建用户

在系统管理页面进入 Manage Users

分别创建两个用户:大乔和小乔

给用户分配角色

系统管理页面进入Manage and Assign Roles,点击Assign Roles

绑定规则如下:

大乔用户分别绑定baseRole和role1角色小乔用户分别绑定baseRole和role2角色

保存

创建项目测试权限

以lvbu管理员账户创建两个项目,分别为apple01和orange01

结果为:

daqiao用户登录,只能看到apple01项目xiaoqiao用户登录,只能看到orange01项目

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

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

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

安装Credentials Binding插件

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

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

可以添加的凭证有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

密钥)

接下来以使用Git工具到Gitlab拉取项目源码为例,演示Jenkins的如何管理Gitlab的凭证。  安装Git插件和Git工具

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

Git插件安装:

CentOS7上安装Git工具:

yum install git -y 安 装
git --version 安装后查看版本

用户密码类型

1) 创建凭证

Jenkins->凭证->系统->全局凭证->添加凭证  切记是点击全局 添加

 

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

 

1) 测试凭证是否可用

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

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

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

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

SSH密钥类型

SSH免密登录示意图:

1) 使用root用户生成公钥和私钥ssh-keygen -t rsa

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

id_rsa:私钥文件

id_rsa.pub:公钥文件

2) 把生成的公钥放在Gitlab中

root账户登录gitlab->点击头像->Settings->SSH Keys

复制刚才id_rsa.pub文件的内容到这里,点击"Add Key"

3) 在Jenkins中添加凭证,配置私钥

在Jenkins添加一个新的凭证,类型为"SSH Username with private key",把刚才生成私有文件内容复制过来

4) 测试凭证是否可用

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

先复制gitlab ssh 这个地址

接着创建

然后去构建项目 看代码是否正常拉取 正常拉取代表成功

 

有手就行2——持续集成环境—Jenkins安装、插件、用户权限及凭证管理的更多相关文章

  1. 有手就行3——持续集成环境—maven、tomcat、安装和配置

    有手就行3--持续集成环境-maven.tomcat.安装 持续集成环境(5)-Maven安装和配置 持续集成环境(6)-Tomcat安装和配置 持续集成环境(5)-Maven安装和配置 在Jenki ...

  2. 使用Gradle构建构建一个Java Web工程及持续集成环境Jenkins配置

    安装Eclipse插件——Buildship 什么是Buildship? Buildship能方便我们通过Eclipse IDE创建和导入Gradle工程,同时还能执行Gradle任务. Eclips ...

  3. 持续集成环境Jenkins的搭建和使用

    这几天试着搭了个持续集成环境,我使用的是Jenkins,它的前身是Hadson,由于被Oracle收购了,所以换个名字继续开源,这个有点像MySQL. 持续集成总是跟敏捷开发什么的搞在一起,显得非常高 ...

  4. [Jenkins]持续集成环境下fingbug插件的安装使用与配置

    参考:https://wiki.jenkins.io/display/JENKINS/FindBugs+Plugin 突然,天降杂事.我是想安安静静的做个美丽的测试...但是事与愿违,项目经理叫我帮忙 ...

  5. 【持续集成】jenkins安装部署从git获取代码

    一:持续集成的概念: 1.1:总体的概括 持续集成Continuous Integration 持续交付Continuous Delivery 持续部署Continuous Deployment 1. ...

  6. 持续集成工具Jenkins安装、部署、使用

    本文介绍jenkins,利用其做项目发布与持续集成交付工具. 一.Jenkins是什么? Jenkins是基于Java开发的一种持续集成工具,用于监控持续重复的工作,功能包括: 1.持续的软件版本发布 ...

  7. 持续集成之Jenkins安装部署

    1.系统环境和安装java环境 [root@devops ~]# cat /etc/redhat-release CentOS Linux release 7.3.1611 (Core) 安装java ...

  8. Jenkins+MSbuild+SVN实现dotnet持续集成 快速搭建持续集成环境

    Jenkins是一个可扩展的持续集成引擎,Jenkins非常易于安装和配置,简单易用,下面开始搭建dotnet持续集成环境 一.准备工作 1.系统管理-->管理插件-->可选插件中找到MS ...

  9. Jenkins+MSbuild+SVN实现快速搭建.net持续集成环境(构建、编辑、部署到服务器)

    Jenkins是一个可扩展的持续集成引擎,Jenkins非常易于安装和配置,简单易用,下面开始搭建.net持续集成环境 Jenkins和SVN安装这里就不介绍了 一.准备工作 1.Jenkins中系统 ...

随机推荐

  1. Kylin开启Kerberos安全认证

    Kylin开启Kerberos安全认证, 由于Kylin是依赖Hbase启动的, Kylin启动脚本kylin.sh中就是调用的Hbase的启动脚本, 所以当Hbase开启了Keberos之后就等于K ...

  2. JZOJ5966. [NOIP2018TGD2T3] 保卫王国 (动态DP做法)

    题目大意 这还不是人尽皆知? 有一棵树, 每个节点放军队的代价是\(a_i\), 一条边连接的两个点至少有一个要放军队, 还有\(q\)次询问, 每次规定其中的两个一定需要/不可放置军队, 问这样修改 ...

  3. 关于java的Excel导入导出之easypoi

    导入easypoi相关jar包,这里的easypoi-base的包也可以不倒入,因为easypoi-web中有依赖easypoi-base会自动导入的 <!-- https://mvnrepos ...

  4. 初识python: while循环 猜年龄小游戏

    知识点: 1.python注释方法: 单行注释: # 多行注释: '''注释内容 '''  (单引号或双引号都可以),亦可打印多行 例: #此处是单行注释信息 print('这里是打印内容') #这里 ...

  5. [ bootstrap ] 实现卡片里面包含图片、内容、操作按钮,形成左中右的布局

    描述: 如图 实现: <div class="card border-0 mb-3 mt-3"> <!-- 列表头部 --> <div class=& ...

  6. SYCOJ1717负二进制

    题目-负二进制 (shiyancang.cn) 进制的实质在于对于进制数的选择,选择不满足的填入当前的位置,然后除掉,继续开始选择.但是对于本题,是负数,但是进制上的数字为正数,所以就要调整,借位,因 ...

  7. SYCOJ2100摆动序列

    题目-摆动序列 (shiyancang.cn) 直接分成两部分,插入即可.只有一个地方不对,那就是符号.两个大的放一个小的,两个小的放一个大的.那么每次的大的放最大的,每次的小的放其次小的,用完就不用 ...

  8. SYCOJ#111、吉祥物

    题目-吉祥物 (shiyancang.cn) 1 #include<bits/stdc++.h> 2 using namespace std; 3 int n,x; 4 int pos(i ...

  9. linux下玩转磁盘管理与挂载硬盘

    前言 本文将带来linux下的磁盘管理中的硬盘挂载,Linux操作系统挂载硬盘需要了解的一些知识.这可能是迄今为止介绍的最最最实用的linux硬盘挂载的文章了,比较详细.由于工作原因,平时使用的比较多 ...

  10. JDK8 一文搞定👍

    ! https://zhuanlan.zhihu.com/p/442182870 Java8 新特性 学习来源于 B站 尚硅谷yyds Java学习源码 2021/11/22 距离,过年还有 57 天 ...