3--Jenkins详解 、用户权限、构建maven、参数化构建
目录
一、Jenkins
Jenkins是一个自动化部署的工具。依赖于Java开发的,由各种组件组成的一个自动化部署工具
1.安装Jenkins
#1.安装Java
[root@jenkins jenkins]# yum install java-1.8.0-openjdk* -y
#2.安装Jenkins
方式一
# 安装Jenkins(推荐,因为yum默认为新版本,不建议安装太新的版本)
[root@jenkins jenkins]]# mkdir packages && cd packages
[root@jenkins jenkins]# wget https://mirrors.tuna.tsinghua.edu.cn/jenkins/redhat-stable/jenkins-2.249.1-1.1.noarch.rpm
[root@jenkins jenkins]# yum localinstall -y jenkins-2.249.1-1.1.noarch.rpm
[root@jenkins jenkins]# systemctl restart jenkins
方式二
# yum方式安装需要安装认证 Key
[root@jenkins jenkins]# rpm --import https://pkg.jenkins.io/redhat-stable/jenkins.io.key
# 安装Jenkins
[root@jenkins jenkins]# yum install jenkins
[root@jenkins jenkins]# systemctl restart jenkins
2.登录
[root@jenkins jenkins]# cat /var/lib/jenkins/secrets/initialAdminPassword
e59b14429016454f8ec2e5e7a34f6449
3.安装插件
#1.安装插件
#添加插件
[root@gitlab jenkins]# tar -xf /opt/plugins.tar.gz -C /var/lib/jenkins
# 授权jenkins用户
[root@gitlab ~]# chown -R jenkins.jenkins /var/lib/jenkins/
#重启
[root@gitlab jenkins]# systemctl restart jenkins.service
4.Jenkins中的凭证和远程连接机器
# 系统管理 -> Manage Credentials -> 全局 -> 添加凭据
# Jenkins通过SSH下载代码
1、将Jenkins服务器中的公钥放到GitLab上SSH秘钥
#测试。可以下载
[root@k8s-m-03 ~]# git clone git@192.168.15.14:root/xiangmu1.git
2、将Jenkins服务器私钥放到Jenkins凭证(Manage Credentials)之中
# Jenkins连接远程机器
1、系统管理 -> 系统配置 -> SSH remote hosts
或者
2、系统管理 -> 系统配置 -> Publish over SSH
[root@jenkins ~]# cat /root/.ssh/id_rsa 私钥
配置凭证
配置凭证
Jenkins连接远程机器
5.项目所存在的目录
[root@jenkins ~]# cd /var/lib/jenkins/jobs/ #项目目录
[root@jenkins jobs]# ll
total 0
drwxr-xr-x 3 jenkins jenkins 61 Aug 16 15:35 test-dep-01
drwxr-xr-x 3 jenkins jenkins 61 Aug 16 15:13 test-dep-1
[root@jenkins workspace]# pwd
/var/lib/jenkins/workspace #工程目录,下载代码的目录
6.优化
[root@gitlab updates]# cd /var/lib/jenkins/updates/
[root@gitlab updates]# sed -i 's/https:\/\/updates.jenkins.io\/download/https:\/\/mirrors.tuna.tsinghua.edu.cn\/jenkins/g' default.json
[root@gitlab updates]# sed -i 's/http:\/\/www.google.com/https:\/\/www.baidu.com/g' default.json
#最后,系统管理 --> 插件管理 --> 高级,把站点升级改为国内插件下载地址
https://mirrors.tuna.tsinghua.edu.cn/jenkins/updates/update-center.json
二、解决jenkins忘记用户密码问题
#1.找到存密码的文件
[root@jenkins ~]# cd /var/lib/jenkins/users/
[root@jenkins /var/lib/jenkins/users]# ll
total 4
drwx------ 2 jenkins jenkins 24 Aug 13 11:56 mm_7745824900363635554
-rw-r--r-- 1 jenkins jenkins 294 Aug 13 11:55 users.xml
[root@jenkins elainafang_4555949760451263805]# vim mm_7745824900363635554/config.xml
#2.将密码内容替换成123456的密码内容 #在网上查看jenkins密码
<passwordHash>#jbcrypt:$2a$10$2LvNPMgFiYAyT/CeE5FwnOUkQz4SbTd9Myq/pWf5qAQtz0MWe6K86</passwordHash>
替换成 <passwordHash>#jbcrypt:$2a$10$MiIVR0rr/UhQBqT.bBq0QehTiQVqgNpUGyWW2nJObaVAM/2xSQdSq</passwordHash>
#3.重新加载内面用123456密码登录后在修改密码
三、用户权限 (RBAC权限)
1.授权策略
2.创建用户和修改密码
3.创建及管理权限组
系统管理 —> Manage and Assign Roles —> Manage Roles —> 各个角色(权限组)
Global roles(全局角色): # 管理员等高级用户可以创建基于全局的角色
Item roles(项目角色): # 针对某个或者某些项目的角色 ,添加成组
Node roles(节点角色): # 节点相关的权限
Base: # 设置成所有的用户都有查看的权限
Alvin: # 设置以alvin开头的项目有超管权限
Oldboy: # 设置以oldboy开头的项目有超管权限
4.分配角色组权限
系统管理 —> Manage and Assign Roles —> Assign Roles
5.使用通配符分配权限
.* : 匹配以什么开头的项目
四、Jenkins构建maven
1.配置maven环境
# 下载
[root@jenkins ~]# wget https://mirrors.aliyun.com/apache/maven/maven-3/3.6.3/binaries/apache-maven-3.6.3-bin.tar.gz
#2.解压
[root@jenkins ~]# tar xf apache-maven-3.6.3-bin.tar.gz -C /usr/local/
[root@jenkins ~]# cd /usr/local/
[root@jenkins local]# ll
total 0
drwxr-xr-x 6 root root 99 Aug 17 06:43 apache-maven-3.6.3
#3.添加环境变量
[root@jenkins local]# ln -s /usr/local/apache-maven-3.6.3 /usr/local/maven #建软连接
[root@jenkins maven]# vim /etc/profile #添加环境变量
... ...
xport MAVEN_HOME=/usr/local/maven
export PATH=$PATH:$MAVEN_HOME/bin
[root@jenkins maven]# source /etc/profile #重载环境变量
[root@jenkins ~]# mvn --version #测试
Apache Maven 3.6.3 (cecedd343002696d0abb50b32b541b8a6ba2883f)
Maven home: /usr/local/maven
Java version: 1.8.0_302, vendor: Red Hat, Inc., runtime: /usr/lib/jvm/java-1.8.0-openjdk-1.8.0.302.b08-0.el7_9.x86_64/jre
Default locale: en_US, platform encoding: UTF-8
OS name: "linux", version: "5.4.138-1.el7.elrepo.x86_64", arch: "amd64", family: "unix"
2.配置maven
#配置JDK
[root@jenkins java-1.8.0-openjdk]# pwd #jdk目录的位置
/usr/lib/jvm/java-1.8.0-openjdk
[root@jenkins ~]# cd /usr/local/maven/ #maven路径
[root@jenkins maven]# pwd
/usr/local/maven
3.安装maven插件
3. 创建maven仓库
使用jenkins用户在/data/software目录下新建一个repository文件夹,用来作为maven的仓库
[root@jenkins ~]# mkdir -pv /data/software/repository
mkdir: created directory ‘/data’
mkdir: created directory ‘/data/software’
mkdir: created directory ‘/data/software/repository’
[root@jenkins ~]# chown jenkins.jenkins /data/software/repository/
使用root账户修改Maven的settings.xml文件(指定仓库目录和阿里云镜像)
[root@jenkins ~]# vim /usr/local/maven/conf/settings.xml
添加
<!--本地仓库-->
<localRepository>/data/software/repository</localRepository>
<mirrors> #里面有这一行,不必再写
<!--阿里云镜像-->
<mirror>
<id>aliyun-maven</id>
<mirrorOf>central</mirrorOf>
<name>aliyun maven mirror</name>
<url>http://maven.aliyun.com/nexus/content/groups/public/</url>
</mirror>
</mirrors>