Jenkins安装部署不详细赘述
5、Linux下安装Jenkins

1、 集成Role-based Authorization Strategy

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

1、 安装Role-based Authorization Strategy插件

image.png

2、安装完用户权限管理 授权策略切换为”Role-Based Strategy”

image.png
image.png

3、创建角色

在系统管理页面进入 Manage and Assign Roles
image.png
image.png
image.png
image.png Global roles(全局角色):管理员等高级用户可以创建基于全局的角色 item roles(项目角色): 针对某个或者某些项目的角色 Slave roles(奴隶角色):节点相关的权限

我们添加以下三个角色:

  • baseRole:该角色为全局角色。这个角色需要绑定Overall下面的Read权限,是为了给所有用户绑 定最基本的Jenkins访问权限。注意:如果不给后续用户绑定这个角色,会报错误:用户名 is missing the Overall/Read permission
  • role1:该角色为项目角色。使用正则表达式绑定”itcast.*”,意思是只能操作itcast开头的项目。
  • role2:该角色也为项目角色。绑定”itheima.*”,意思是只能操作itheima开头的项目。

4、创建用户

在系统管理页面进入 Manage Users
image.png
image.png

5、给用户分配角色

系统管理页面进入Manage and Assign Roles,点击Assign Roles
image.png
image.png
image.png
搜索账号->add->在要分配的对应的角色上选中即可
账号分配项目角色同理

2、 集成Jenkins凭证管理插件

凭据可以用来存储需要密文保护的数据库密码、Gitlab密码信息、Docker私有仓库密码等,以便 Jenkins可以和这些第三方的应用进行交互。
安装Credentials Binding插件 要在Jenkins使用凭证管理功能,需要安装Credentials Binding插件
image.png
image.png
image.pngimage.png
image.png
可以添加的凭证有很多种

  • 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 密钥)

以ssh为例子

image.png

  1. 使用root用户生成公钥和私钥
  2. ssh-keygen -t rsa 在/root/.ssh/目录保存了公钥和使用 id_rsa:私钥文件`` id_rsa.pub:公钥文件
  3. 把生成的公钥放在Gitlab中 以root账户登录->点击头像->Settings->SSH Keys 复制刚才id_rsa.pub文件的内容到这里,点击”Add Key” image.png
  4. 在Jenkins中添加凭证,配置私钥 在Jenkins添加一个新的凭证,类型为”SSH Username with private key”,把刚才生成私有文件内容复 制过来 image.pngimage.png

3、集成Maven、JDK 编译和打包环境

Maven的安装部署如下
6、Linux下安装Maven

1 、全局工具配置关联JDK和Maven

Jenkins->Global Tool Configuration->JDK->新增JDK,配置如下:
image.png
image.png
Jenkins->Global Tool Configuration->Maven->新增Maven,配置如下:
image.png

2、 添加Jenkins全局变量

Manage Jenkins->Configure System->Global Properties ,添加三个全局变量
image.png

4、集成Git Parameter插件动态获取 Git 的分支

1、在Plugin Manager里面搜索Git Parameter安装

image.png

2、在编辑流水线时使用

勾选This project is parameterized

image.png

点击高级,设置git仓库和过滤规则,分支过滤规则填写:origin/(.*)

image.png

此处不写过滤规则会出现选择远程分支前面会带上origin/dev ,导致切换分支失效

  1. stage('拉取代码') {
  2. steps {
  3. git branch: "${branch}", credentialsId: '45449c6a-1cdd-4cca-b4ed-3a849046dada', url: 'https://gitee.com/lshady/jenkins-demo.git'
  4. }
  5. }

3、动态切换git分支-流水线语法模板

  1. stage('拉取代码') {
  2. steps {
  3. //此处取值 使用 双引号${branch}
  4. git branch: "${branch}", credentialsId: '45449c6a-1cdd-4cca-b4ed-3a849046dada', url: 'https://gitee.com/lshady/jenkins-demo.git'
  5. }
  6. }

5、集成Hidden Parameter隐藏关键参数

隐藏参数插件
这个插件增加了对参数的支持。插件安装完成后,在作业配置页面,可以看到隐藏参数。

特征
1.再次参数,感觉用户体验不好。这个插件可以解决问题。
2. 一些关键参数,一旦修改,可能会导致风险。这些参数,只有管理员可以修改,以降低风险。
3. 隐藏参数,只在构建执行时隐藏,在作业配置页面可以修改。
4.构建完成后,参数列表可以显示隐藏参数。

6、集成nodeJS环境打包前端项目

Plugin Manager搜索NodeJS Plugin安装
安装成功去到Global Tool Configuration找到NodeJS选项
image.png
image.png
服务器已经安装好就填服务器的安装的目录
没有安装过就选择版本安装

  1. stage('2.Compile') {
  2. steps {
  3. echo "Compile Code Stage"
  4. nodejs("node"){// 括号里面的名字在jenkins》系统管理》全局工具配置中设定的NodeJS的别名
  5. sh("npm config set registry http://registry.npm.taobao.org/")
  6. sh("npm install --unsafe-perm")
  7. sh("npm run build")
  8. }
  9. }
  10. }