# jenkins 安装与使用

返回: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
1

**第二步:**我们进入到 /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
1

# 用户管理

在 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
1
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
1
2
3
4
5

编辑后使配置文件生效:

source /etc/profile
1
  • 验证
mvn -v
1

然后设置 Maven 的 settings.xml

# 创建本地仓库目录
mkdir /data/localRepo
vim /home/maven/apache-maven-3.6.2/conf/settings.xml
1
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 脚本来管理,这样也更好的提高灵活性