# jenkins 安装与使用
- 我们可以先跳过插件安装,因为 Jenkins 插件需要连接默认官网下载,速度非常慢:
- 然后我们添加一个管理员账号来管理
# Jenkins 使用
# 插件加速
- 首先我们进入 Jenkins -> Manage Jenkins -> Manage Plugins ,点击 install
- 然后我们在安装 Jenkins 的服务器上进入
/var/lib/jenkins/updates目录,可以看到有个default.json文件
**第一步:**我们需要替换里面的部分字段,输入命令如下:
sudo sed -i 's#updates.jenkins.io/download/plugins#mirrors.tuna.tsinghua.edu.cn/jenkins/plugins#g' default.json && sudo sed -i 's#www.google.com#www.baidu.com#g' default.json
**第二步:**我们进入到 /var/lib/jenkins目录,编辑
hudson.model.UpdateCenter.xm,将里面的 https://updates.jenkins.io/update-center.json修改为 http://mirrors.tuna.tsinghua.edu.cn/jenkins/updates/update-center.json
最后一步: 输入以下命令进行重启 Jenkins
systemctl restart jenkins
# 用户管理
在 Jenkins 中我们也可以进行用户权限管理,这个时候我们需要借助插件 Role-based Authorization Strategy
- 首先安装
Role-based Authorization Strategy插件 - 开启全局安全配置,将授权策略切换为
"Role-Based Strategy" - 创建用户
- 更改完授权策略,我们就可以来创建用户了,进入系统管理页面中的Manage Users)
- 创建角色
- 创建好用户,我们就可以来创建角色了,在系统管理页面进入 Manage and Assign Roles
# 凭证管理
什么是凭证呢? 凭证 可以用来存储需要密文保护的数据库密码,GitLab 密码信息,Docker 私有仓库的登录密码。保存了这些信息后,Jenkins 就可以和这些第三方的应用进行交互。当然,这还是得借助 Jenkins 的插件!
- 安装:首先安装
Credentials Binding插件 - 安装好插件后,在系统首要的菜单栏中就会多了个 凭证 菜单
- 点击进去,我们可以看到可以添加的凭证有 5 种:
- Username with password :用户名和密码(我们平时比较常用)
- SSH Username with private key: 使用 SSH 用户和密钥(我们平时比较常用)
- Secret file: 需要保密的文本文件,使用时 Jenkins 会将文件复制到一个临时目录中,再将文件路径设置到一个变量中,等构建结束后,所复制的 Secret file 就会被删除
- Secret text: 需要保存的一个加密的文本串,如钉钉机器人或 GitHub 的 api token
- Certificate: 通过上传证书文件的方式
- Git 凭证管理
- 安装 Git 插件:我们需要在 Jenkins 中安装 Git插件 来拉取项目代码
- 然后我们在服务器上也需要安装 Git 工具
# 安装命令
yum install git -y
# 验证命令
git --version
2
3
4
# 方式1:用户密码类型
然后在进入服务器的/var/lib/jenkins/workspace 目录中看到我们拉取的项目
# 方式2:SSH密钥类型
除了用账号密码方式来验证 Git ,我们还可以用 SSH密钥 来验证,步骤流程如下
- 第一步需要生成 公私钥,我们在 Jenkins服务器 上输入以下指令生成:
ssh-keygen -t rsa输入指令后,一路回车,便可在/root/.ssh/目录下生成公私钥id_rsa:私钥文件id_rsa.pub:公钥文件
- 然后我们把生成的公钥放在 GitLab 中,root账户登录->点击头像->Settings->SSH Keys,复制 id_rsa.pub 中的内容,点击 "Add key"
- 然后我们再回到 Jenkins 系统页面中添加凭证,选择 SSH Username with private key ,把刚刚生成的
私有文件内容复制过来
# 项目管理
# Maven 安装
我们现在开发中的项目大部分都是 Maven 项目,使用 Maven 项目,我们就需要进行 依赖管理,因此我们应当在服务器上安装 Maven 来下载项目依赖。
- 安装 Maven
- 我们可以从 Maven 官网上下载压缩包,然后上传到服务器上进行解压
tar -xzf apache-maven-3.6.0-bin.tar.gz
- 配置环境变量
vim /etc/profile
export JAVA_HOME=/usr/lib/jvm/java-1.8.0-openjdk
export MAVEN_HOME=/home/maven/apache-maven-3.6.2
export PATH=$PATH:$JAVA_HOME/bin:$MAVEN_HOME/bin
2
3
4
5
编辑后使配置文件生效:
source /etc/profile
- 验证
mvn -v
然后设置 Maven 的 settings.xml
# 创建本地仓库目录
mkdir /data/localRepo
vim /home/maven/apache-maven-3.6.2/conf/settings.xml
2
3
将本地仓库改为: /root/repo/
添加阿里云私服地址:alimaven aliyun maven http://maven.aliyun.com/nexus/content/groups/public/central
# Jenkins配置
在 Jenkins 我们也需要配置 JDK 和 Maven 的关联.
- 进入
Jenkins -> Global Tool Configuration -> JDK - 进入
Jenkins -> Global Tool Configuration -> Maven - 添加全局变量,进入
Manage Jenkins->Configure System->Global Properties,添加三个全局变量
JAVA_HOME、M2_HOME、PATH+EXTRA
- 然后我们进入项目中点击 configure
- 然后添加 shell 执行脚本
# jar 包部署
- Repository URL:库地址
- Credentials:凭证
- Branch Specifier (blank for ‘any’):分支
- Run only if build succeeds:在构建成功时执行后续步骤 Add post-build step:添加构建后的步骤 Send files or execute commands over SSH:通过ssh发送文件或执行命令
安装 Publish Over SSH 插件
- 安装好插件后我们需要先配置远程服务器,在 Jenkins 服务器上输入 ssh-copy-id 远程服务器IP 将公钥拷贝到远程服务器上,然后在 Jenkins 系统配置中添加服务器信息
- 完成以上步骤后,我们就可以回到项目的 configure 中添加我们刚刚配置的服务器信息
Name:SSH Servers中配置的服务器
Source files:源文件
Remove prefix:删除前缀
Remote directory:上传到服务器的目录
Exec command:执行的脚本
# 流水线项目
- 自由风格软件项目(FreeStyle Project)
- Maven 项目(Maven Project)
- 流水线项目(Pipeline Project)
创建 Pipeline 项目之前我们需要安装 Pipeline 插件
Pipeline 项目是统一通过 Pipeline 脚本来管理,这样也更好的提高灵活性