Jenkins安装部署不详细赘述
5、Linux下安装Jenkins
1、 集成Role-based Authorization Strategy
我们可以利用Role-based Authorization Strategy 插件来管理Jenkins用户权限
1、 安装Role-based Authorization Strategy插件
2、安装完用户权限管理 授权策略切换为”Role-Based Strategy”
3、创建角色
在系统管理页面进入 Manage and Assign Roles 


Global roles(全局角色):管理员等高级用户可以创建基于全局的角色 item roles(项目角色): 针对某个或者某些项目的角色 Slave roles(奴隶角色):节点相关的权限
我们添加以下三个角色:
- baseRole:该角色为全局角色。这个角色需要绑定Overall下面的Read权限,是为了给所有用户绑 定最基本的Jenkins访问权限。注意:如果不给后续用户绑定这个角色,会报错误:用户名 is missing the Overall/Read permission
- role1:该角色为项目角色。使用正则表达式绑定”itcast.*”,意思是只能操作itcast开头的项目。
- role2:该角色也为项目角色。绑定”itheima.*”,意思是只能操作itheima开头的项目。
4、创建用户
5、给用户分配角色
系统管理页面进入Manage and Assign Roles,点击Assign Roles 


搜索账号->add->在要分配的对应的角色上选中即可
账号分配项目角色同理
2、 集成Jenkins凭证管理插件
凭据可以用来存储需要密文保护的数据库密码、Gitlab密码信息、Docker私有仓库密码等,以便 Jenkins可以和这些第三方的应用进行交互。
安装Credentials Binding插件 要在Jenkins使用凭证管理功能,需要安装Credentials Binding插件 




可以添加的凭证有很多种
- 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为例子

- 使用root用户生成公钥和私钥
ssh-keygen -t rsa在/root/.ssh/目录保存了公钥和使用id_rsa:私钥文件`` id_rsa.pub:公钥文件- 把生成的公钥放在Gitlab中 以root账户登录->点击头像->Settings->SSH Keys 复制刚才id_rsa.pub文件的内容到这里,点击”Add Key”

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


3、集成Maven、JDK 编译和打包环境
Maven的安装部署如下
6、Linux下安装Maven
1 、全局工具配置关联JDK和Maven
Jenkins->Global Tool Configuration->JDK->新增JDK,配置如下: 

Jenkins->Global Tool Configuration->Maven->新增Maven,配置如下: 
2、 添加Jenkins全局变量
Manage Jenkins->Configure System->Global Properties ,添加三个全局变量 
4、集成Git Parameter插件动态获取 Git 的分支
1、在Plugin Manager里面搜索Git Parameter安装
2、在编辑流水线时使用
勾选This project is parameterized
点击高级,设置git仓库和过滤规则,分支过滤规则填写:origin/(.*)

此处不写过滤规则会出现选择远程分支前面会带上origin/dev ,导致切换分支失效
stage('拉取代码') {steps {git branch: "${branch}", credentialsId: '45449c6a-1cdd-4cca-b4ed-3a849046dada', url: 'https://gitee.com/lshady/jenkins-demo.git'}}
3、动态切换git分支-流水线语法模板
stage('拉取代码') {steps {//此处取值 使用 双引号${branch}git branch: "${branch}", credentialsId: '45449c6a-1cdd-4cca-b4ed-3a849046dada', url: 'https://gitee.com/lshady/jenkins-demo.git'}}
5、集成Hidden Parameter隐藏关键参数
隐藏参数插件
这个插件增加了对参数的支持。插件安装完成后,在作业配置页面,可以看到隐藏参数。
特征
1.再次参数,感觉用户体验不好。这个插件可以解决问题。
2. 一些关键参数,一旦修改,可能会导致风险。这些参数,只有管理员可以修改,以降低风险。
3. 隐藏参数,只在构建执行时隐藏,在作业配置页面可以修改。
4.构建完成后,参数列表可以显示隐藏参数。
6、集成nodeJS环境打包前端项目
Plugin Manager搜索NodeJS Plugin安装
安装成功去到Global Tool Configuration找到NodeJS选项

服务器已经安装好就填服务器的安装的目录
没有安装过就选择版本安装
stage('2.Compile') {steps {echo "Compile Code Stage"nodejs("node"){// 括号里面的名字在jenkins》系统管理》全局工具配置中设定的NodeJS的别名sh("npm config set registry http://registry.npm.taobao.org/")sh("npm install --unsafe-perm")sh("npm run build")}}}


