Devops-day3-Jenkins配置用户+策略+凭据

1.添加用户

image-20210414165658868

image-20210414165753032

2.管理用户

  • 可配置信息、删除用户

image-20210414165854761

image-20210414165936132

3.配置全局策略

  • 开启权限全局安全配置

image-20210414170102480

image-20210414170206538

4.查看用户角色

image-20210414170308020

image-20210414170630321

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

1618468863(1)

4.新建三个用户

  • Base
  • Alvin
  • Oldboy

image-20210414172153984

image-20210414172127104

image-20210414172220211

image-20210414172253176

5.设置角色类型

  • Base:设置成所有的用户都有查看的权限
  • Alvin:设置以 alvin 开头的项目有超管权限,注意是开头
  • Oldboy:设置以 oldboy 开头的项目有超管权限,注意是开头
分配角色:
*		# 匹配所有
.*		# 匹配所有
xxx.*	# 匹配以xxx开头的所有
*xxx	# 匹配以xxx结尾的所有

image-20210414173551113

image-20210414173722164

6.关联创建的用户

  • 给用户分配角色

image-20210414173948488

image-20210415154937282

7.创建项目

  • 创建项目,切换用户查看,测试权限是否生效
主面板 --> 新建任务 --> 如下

在item rules 项目角色栏内:用户可相互共享管理对方的项目

image-20210415155446439

image-20210415155637317

image-20210415155758045

7.凭据配置

  • jenkins配置:从gitlab拉取源代码
  • 两种添加方式:ssh、php

image-20210414181839165

  • Username with password:用户名和密码(推荐)
  • SSH Username with private key: 使用 SSH 用户和密钥
  • X.509:证书,一般使用第三方云服务时使用
  • Certificate:docker 私有仓库密码存储类型。
  • Secret text:需要保存的一个加密的文本串,如钉钉机器人或 Github 的 api token
  • Certificate:通过上传证书文件方式。
  • Secret file:需要保密的文本文件,使用时 Jenkins 会将文件复制到一个临时目录中,再将文件路径 设置到一 个变量中,等构建结束后,所复制的 Secret file 就会被删除
系统管理 --->  Manage Credentials ---> 系统凭证 ---> 全局凭证 ---> 添加凭证

image-20210415144956588

1)ssh方式

系统管理 --->  Manage Credentials ---> 系统凭证 ---> 全局凭证 ---> 添加凭证 ---> ssh username with private key

  • 配置项目

image-20210415163315888

image-20210415163111027

  • 将gitlab的项目ssh链接复制到jenkins项目进行配置

  • jenkins服务器必须安装git服务,否则此处添加失败,会报错

    [root@jenkins ~]# yum install -y git
    

image-20210415170345710

image-20210415171105857

  • 进入jenkins服务器查看构建的项目文件
# 查看构建结构
[root@jenkins ~]# tree /var/lib/jenkins/workspace/
/var/lib/jenkins/workspace/
├── test1
│   └── README.md
└── test1@tmp

# 下载下来的软件代码
[root@jenkins workspace]# ll -a test1
total 4
drwxr-xr-x 3 jenkins jenkins  35 Apr 15 17:03 .
drwxr-xr-x 4 jenkins jenkins  36 Apr 15 17:03 ..
drwxr-xr-x 8 jenkins jenkins 162 Apr 15 17:05 .git
-rw-r--r-- 1 jenkins jenkins  11 Apr 15 17:03 README.md

# 软件仓库与在网页端配置的一致,配置成功
[root@jenkins workspace]# cat test1/.git/config 
[core]
	repositoryformatversion = 0
	filemode = true
	bare = false
	logallrefupdates = true
[remote "origin"]
	url = git@192.168.12.82:jishubu/project.git	# 软件仓库链接
	fetch = +refs/heads/*:refs/remotes/origin/*

2)http方式

系统管理 --->  Manage Credentials ---> 系统凭证 ---> 全局凭证 ---> 添加凭证 ---> Username with Password

image-20210415180508473

image-20210415180222428

image-20210415164903752

image-20210415160806914

image-20210415180640747

image-20210415180810033

image-20210415185312435

image-20210415192940383

image-20210415195013618

  • 此时需把jenkins的公钥推送至gitlab端
[root@jenkins .ssh]# ssh-copy-id -i id_rsa.pub root@192.168.12.82

image-20210415195312681

  • 至此配置拉取代码成功
代码拉取过来之后,需要编译(如Java、Go等),但此时我们使用的是PHP(网页前端的方式html),无需编译即可执行
此时我们假设它是需要编译的
回到项目 --> 配置 --> 构建环境

结论:在构建以前所有的操作都是在jenkins服务器上执行,构建以后则是在对应部署服务的服务器上执行。

image-20210415200534063

  • 默认针对整个test1项目下的部署扫描路径:/var/lib/jenkins/workspace/test1/

image-20210415203704418

image-20210415203345385

  • 若构建时失败报错:

image-20210415223043060

  • 解决报错:

image-20210421224130270

image-20210415203901942

# 进入 jenkins 服务器查看内容,成功!
[root@jenkins .ssh]# cat /var/lib/jenkins/workspace/test1/test.html 
假设这是在编译
  • 构建后操作(针对gitlab服务器)
  • 配置完保存,立即构建,查看构建详情,进入服务器查看构建内容
source files:文件源路径,若要传目录内所有文件,则需要在路径后加两个*(root/**)
Remove Prefix:移除文件前缀,我们只是传输目录内的所有文件,目录名并不需要,那么就需要将其移除(root/)
Remote directory 远程服务器上传目录(该目录是相对于刚刚系统设置里ssh servers里设置的路径)
exec command 在传输完成后执行的命令,一般为清理文件、复制文件、重启一些服务等等。

image-20210415233926397

image-20210415232518414

image-20210415215516477

# 进入 gitlab 服务器查看内容,成功!
[root@gitlab ~]# cat 1.html 
gdx
  • 按标签部署

    新建标签流程:
    进入gitlab --> 项目 --> 编辑项目内容保存 --> 新建标签stable1  --> 再编辑项目内容 --> 新建标签2
    

image-20210416001717961

image-20210416000811494

image-20210416002953732

image-20210416003140735

8.常用的两种参数

  • 选择器:分1、2、3级,可以单选、列表样式、多选
  • 隐藏参数:异常部署信息

1)隐藏参数

image-20210416191349779

image-20210416191704074在这里插入图片描述

在这里插入图片描述

2)选择器

  • 先配置

image-20210416165728731

image-20210416170353855

image-20210416174548346

image-20210416172504023

  • 前三个都是单选,只是样式不同

image-20210416173529286

  • 最后一个是多选

image-20210416174122314

  • 使用场景举例

image-20210416175038350

  • 此参数依赖于上一个参数

可以这样理解:
Active Choice Paramter	# 选择器
Active Choice Reactive Parameter	# 选择器参数列表

先定义一个选择器,内有三个参数
再定义选择器参数的列表
  • 先定义选择器

image-20210416180012391

  • 再定义选择列表
Choice
return ["上海","北京","天津"]

Choice_bak
if  (Choice.equals("上海"))
	{ return ["青浦区", "静安区", "普陀区"] } 
else if (Choice.equals("北京")) 
	{ return ["昌平区", "朝阳区", "顺义区"] }
else if (Choice.equals("天津"))
	{ return ["武清区", "红桥区","和平区"] }
else
	{ return ["Unknown project"] }
	
Choice_bak2
if  (Choiceb_bak.equals("武清区"))
	{ return ["小凳子", "小桌子", "小贵子"] }
else
	{ return ["Unknown project"] }

image-20210416181228769

image-20210416181907493

image-20210416182116328

image-20210416182233406

posted @ 2022-06-09 18:18  秋风お亦冷  阅读(246)  评论(0编辑  收藏  举报