Linux安装(十九)之jenkins的安装


持续集成环境-Jenkins的安装

jenkins的官网

https://www.jenkins.io/zh/

中国镜像

 https://mirrors.tuna.tsinghua.edu.cn/jenkins/redhat/

把安装包上传到服务器,进行安装

rpm -ivh jenkins-2.277.4-1.1.noarch.rpm
修改Jenkins配置
vim /etc/sysconfig/jenkins
修改内容如下:注意:如果用户使用默认,则需要在系统上创建jenkins用户
JENKINS_USER="root"
JENKINS_PORT="8888"
启动Jenkins
systemctl start jenkins

打开浏览器访问

地址:8888

注意:需要打开防火墙哦

使用 sudo systemctl start jenkins 命令启动Jenkins服务提示如下错误:

Job for jenkins.service failed because the control process exited with error code. See "systemctl status jenkins.service" and "journalctl -xe" for details.

按照提示使用 systemctl status jenkins.service 命令查看Jenkins服务的状态:

 注意红框处标注的位置,/usr/bin/java 是Jenkins配置文件中的默认java路径,而主机上安装的java路径不是这个,首先使用 java -version 命令查看已安装的java版本,如果版本低于1.8,需要将java版本升级到1.8或更新的版本,确认java版本符合要求后使用以下命令查看本机安装的java路径

which java

然后修改Jenkins配置文件中的java路径

vi /etc/init.d/jenkins
执行 systemctl daemon-reload 命令重新加载配置文件
执行 sudo systemctl start jenkins 命令启动Jenkins
执行 systemctl status jenkins.service 命令查看Jenkins服务的状态

 这时已经可以看到Jenkins服务成功启动了

 获取并输入admin账户密码

cat /var/lib/jenkins/secrets/initialAdminPassword

跳过插件安装 因为Jenkins插件需要连接默认官网下载,速度非常慢,而且经过会失败,所以我们暂时先跳过插件安 装 添加一个管理员账户,并进入Jenkins后台   保存并完成 开始使用Jenkins   Jenkins密码遗忘处理 //修改配置文件安全功能禁用
vim /var/lib/jenkins/config.xml
false   
//重启jenkins服务
systemctl restart jenkins
可以直接登录修改账号密码 修改jenkins中已有的用户名和ID
vim /var/lib/jenkins/users/users.xml

持续集成环境-Jenkins插件管理

Jenkins本身不提供很多功能,我们可以通过使用插件来满足我们的使用。例如从Gitlab拉取代码,使用Maven构建项目等功能需要依靠插件完成。接下来演示如何下载插件。 修改Jenkins插件下载地址(选做) 可以先什级国内插件地址: Jenkins->Manage Jenkins jenkins升级 返回工作台,发现可以回滚,这就是jenkins的一个人性化的地方,发现新版本不稳定,不行就回滚 注:每次更新一定要重启。点击等待重启就行 之后重复以上操作,升级到2.333(2.333版本升级完有很多bug,可以持续关注) 更新完成,更新最新版本重启之后时间有点长不要担心。 Jenkins国外官方插件地址下载速度非常慢,所以可以修改为国内插件地址: Jenkins->Manage Jenkins->Manage Plugins,点击Available

 这样做是为了把Jenkins官方的插件列表下载到本地,接着修改地址文件,替换为国内插件地址

cd /var/lib/jenkins/updates
sed -i 's/http:\/\/updates.jenkins- ci.org\/download/https:\/\/mirrors.tuna.tsinghua.edu.cn\/jenkins/g' default.json && sed -i 's/http:\/\/www.google.com/https:\/\/www.baidu.com/g' default.json
最后,Manage Plugins点击Advanced,把Update Site改为国内插件下载地址https://mirrors.tuna.tsinghua.edu.cn/jenkins/updates/update-center.json   Sumbit后,在浏览器输入: http://192.168.153.20:8888/restart ,重启Jenkins。下载中文汉化插件 Jenkins->Manage Jenkins->Manage Plugins,点击Available,搜索"Chinese" 完成后如下图: 重启Jenkins后,就看到Jenkins汉化了!(PS:但可能部分菜单汉化会失败)  

 持续集成环境-Jenkins用户权限管理

我们可以利用Role-based Authorization Strategy 插件来管理Jenkins用户权限 安装Role-based Authorization Strategy插件 开启权限全局安全配置 授权策略切换为"Role-Based Strategy",保存   创建角色 在系统管理页面进入 Manage and Assign Roles 点击"Manage Roles"
Global roles(全局角色):管理员等高级用户可以创建基于全局的角色 Project roles(项目角色): 针对某个或者某些项目的角色 Slave roles(奴隶角色):节点相关的权限   我们添加以下三个角色: baseRole:该角色为全局角色。这个角色需要绑定Overall下面的Read权限,是为了给所有用户绑  定最基本的Jenkins访问权限。注意:如果不给后续用户绑定这个角色,会报错误:用户名 is missing the Overall/Read permission role1:该角色为项目角色。使用正则表达式绑定"apple.*",意思是只能操作apple开头的项目。role2:该角色也为项目角色。绑定"orange.*",意思是只能操作orange开头的项目。    保存。   创建用户 在系统管理页面进入 Manage Users  

 分别创建两个用户:jack和kill

  给用户分配角色 系统管理页面进入Manage and Assign Roles,点击Assign Roles 绑定规则如下: jack用户分别绑定baseRole和role1角色 kill用户分别绑定baseRole和role2角色   保存。   创建项目测试权限 以ww管理员账户创建两个项目,分别为apple01和orange01

 结果为:

lingmeng用户登录,只能看到ihen01项目 zhouqianling用户登录,只能看到itenima01项目  

 持续集成环境-Jenkins凭证管理

凭据可以用来存储需要密文保护的数据库密码、Gitlab密码信息、Docker私有仓库密码等,以便 Jenkins可以和这些第三方的应用进行交互。  安装Credentials Binding插件 要在Jenkins使用凭证管理功能,需要安装Credentials Binding插件     安装插件后,左边多了"凭证"菜单,在这里管理所有凭证   可以添加的凭证有5种:   Username with password:用户名和密码 SSH Username with private key: 使用SSH用户和密钥 Secret  ?le:需要保密的文本文件,使用时Jenkins会将文件复制到一个临时目录中,再将文件路径设置到一个变量中,等构建结束后,所复制的Secret ?le就会被删除。 Secret text:需要保存的一个加密的文本串,如钉钉机器人或Github的api token Certi?cate:通过上传证书文件的方式 常用的凭证类型有:Username with password(用户密码)和SSH Username with private key(SSH 密钥) 接下来以使用Git工具到Gitlab拉取项目源码为例,演示Jenkins的如何管理Gitlab的凭证。  安装Git插件和Git工具 为了让Jenkins支持从Gitlab拉取源码,需要安装Git插件以及在CentOS7上安装Git工具。   Git插件安装:   CentOS7上安装Git工具: yum install git -y 安 装 git --version 安装后查看版本   用户密码类型 1) 创建凭证 Jenkins->凭证->系统->全局凭证->添加凭证   选择"Username with password",输入Gitlab的用户名pyw和密码,点击"确定"。         2) 测试凭证是否可用 创建一个FreeStyle项目:新建Item->FreeStyle Project->确定   找到"源码管理"->"Git",在Repository URL复制Gitlab中的项目URL     这时会报错说无法连接仓库!在Credentials选择刚刚添加的凭证就不报错啦   保存配置后,点击构建”Build Now“ 开始构建项目   查看/var/lib/jenkins/workspace/目录,发现已经从Gitlab成功拉取了代码到Jenkins中。   SSH密钥类型 SSH免密登录示意图   1)  使用root用户生成公钥和私钥 ssh-keygen -t rsa 在/root/.ssh/目录保存了公钥和使用   id_rsa:私钥文件id_rsa.pub:公钥文件   2) 把生成的公钥放在Gitlab中 以pyw账户登录gitlab->点击头像->Settings->SSH Keys 复制刚才id_rsa.pub文件的内容到这里,点击"Add Key"   3) 在Jenkins中添加凭证,配置私钥 在Jenkins添加一个新的凭证,类型为"SSH Username with private key",把刚才生成私有文件内容复制过来   4) 测试凭证是否可用 新建"test02"项目->源码管理->Git,这次要使用Gitlab的SSH连接,并且选择SSH凭证  

同样尝试构建项目,如果代码可以正常拉取,代表凭证配置成功!