Jenkins安装部署
一、Jenkins安装说明:
官网:https://www.jenkins.io/zh/download/
清华大学开源镜像站:https://mirrors.tuna.tsinghua.edu.cn/jenkins/redhat/
Jenkins是开源CI&CD软件领导者, 提供超过1000个插件来支持构建、部署、自动化, 满足任何项目的需要。
Jenkins是用Java开发的,安装Jenkins之前首先需要安装JDK
二、安装Jenkins
2-1、首先安装JDK
yum install java-1.8.0-openjdk* -y
2-2、加载jenkins 8080端口到firewall防火墙规则中或关闭禁止firewall防火墙
- 加载jenkins 8080端口firewall防火墙方法
firewall-cmd --permanent --add-port=8080/tcp #重新加载防火墙配置 firewall-cmd --reload
- 关闭,禁止防火墙方法
systemctl disable firewalld systemctl stop firewalld
2-3、安装Jenkins
#安装Jenkins cd /usr/local/src/ wget https://mirrors.tuna.tsinghua.edu.cn/jenkins/redhat/jenkins-2.356-1.1.noarch.rpm yum install jenkins-2.356-1.1.noarch.rpm -y
- 因jenkins安装/var/lib/jenkins存储目录空间小需要删除,在创建一个软连接指定/var/lib/jenkins目录
创建目录为/data/jenkins 在对/data/jenkins更改权限操作步骤如下
#没有启动jenkins这个目录是空的,不需要做备份 rm -fr /var/lib/jenkins/ 创建其它目录,建立软连接 mkdir -p /data/jenkins chown -R jenkins:jenkins /data/jenkins/ ln -s /data/jenkins/ /var/lib/jenkins
- 启动jenkins
systemctl enable --now jenkins
2-4、配置Jenkins
- 访问自己宿主机IP地址
注:/var/lib/jenkins/secrets/initialAdminPassword 里面的密码只会保存24小时,24小时候这个文件会删除
- 出现以下图点击选择插件来安装操作
注:如果有推荐安装插件的界面,不要安装任何插件,因为默认是连接国外下载插件。安装很慢或者不能安装。
插件地址修改为国内地址后在下载插件
- 进入下面图后点击无把推荐的安装进行取消
注: 后面根据安装步骤提示操作即可
- 安装完成后的界面
持续集成环境(2)-Jenkins插件管理
Jenkins本身不提供很多功能,我们可以通过使用插件来满足我们的使用。例如从Gitlab拉取代码,使用 Maven构建项目等功能需要依靠插件完成。
接下来演示如何下载插件。
修改 Jenkins 插件下载地址
Jenkins国外官方插件地址下载速度非常慢,所以可以修改为国内插件地址。
- 第一步:修改升级站点URL
Jenkins->Manage Jenkins->Manage Plugins,点击Advanced
https://mirrors.tuna.tsinghua.edu.cn/jenkins/updates/update-center.json
- 第二步:修改下载URL
cd /var/lib/jenkins/updates/ sed -i 's/https:\/\/updates.jenkins.io\/download/https:\/\/mirrors.tuna.tsinghua.edu.cn\/jenkins/g' default.json sed -i 's/https:\/\/www.google.com/https:\/\/www.baidu.com/g' default.json #重启jenkins systemctl restart jenkins
汉化 Jenkins
默认情况下,Jenkins是英文的,可以使用插件汉化 Jenkins。
Jenkins->Manage Jenkins->Manage Plugins,点击 Available
持续集成环境(3)-Jenkins用户权限管理
我们可以利用 Role-based Authorization Strategy
插件来管理Jenkins用户权限。
安装 Role-based Authorization Strategy 插件
Jenkins->Manage Jenkins->Manage Plugins,点击 Available
开启权限全局安全配置
Jenkins -> 全局安全配置
创建角色
Jenkisn -> Manage and Assign Roles
- Global roles(全局角色):管理员等高级用户可以创建基于全局的角色
- Project roles(项目角色): 针对某个或者某些项目的角色
- Slave roles(奴隶角色):节点相关的权限(用的地方不多,暂且不予以深究)
我们姑且可以创建三个角色,分别是一个全局角色,两个项目角色。
- base:该角色为全局角色。这个角色需要绑定Overall下面的Read权限,是为了给所有用户绑 定最基本的Jenkins访问权限
注意:如果不给后续用户绑定这个角色,会报错误:用户名 is missing the Overall/Read permission
- role1:该角色为项目角色。使用正则表达式绑定”Python.*”,意思是只能操作Python开头的项目。
- role2:该角色也为项目角色。绑定”Java.*”,意思是只能操作Java开头的项目。
创建用户
在系统管理页面进入管理用户
给用户分配角色
系统管理页面进入Manage and Assign Roles,点击Assign Roles
绑定规则如下:
- user1用户分别绑定base和role1角色
- user2用户分别绑定base和role2角色
创建项目测试权限
以admin管理员账户创建两个项目,分别为Python和Java。
登录user1
用户只看到`Python
。登录user2用户亦然
持续集成环境(4)-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:通过上传证书文件的方式
安装Git插件和Git工具
为了让Jenkins支持从Gitlab拉取源码,需要安装Git插件以及在CentOS7上安装Git工具。
注意:Jenkins 操作系统中必须安装 git,不然会报错。
Git插件安装
- 首先在Jenkins服务器上面创建ssh 秘钥
ssh-keygen -t rsa
注:秘钥创建后保存在/root/.ssh 目录下面
-
添加 SSH 类型的密钥
Jenkins –> 系统管理 –> Manage Credentials –> 全局 –> 添加凭证
- 将公钥添加至 Gitlab 中
打开GitLab所需下载的项目,找到下面SSH克隆地址
出现如下图问题:
解决方法:https://www.cnblogs.com/albert919/p/16972324.html