今日天气
  1. 博客/

Centos 7 Yum 安装 Jenkins 及常用配置的说明

·1419 字·3 分钟· ·
devops jenkins ci-cd install
Johny
作者
Johny
熟练的 云原生搬砖师
Table of Contents

环境说明
#

  • 操作系统: CentOS Linux release 7.9.2009 (Core)
  • jdk 使用说明: openjdk 1.8.0_282
  • jenkins 版本: 最新 长期支持版本

Jenkins 安装
#

这里 Jenkins 的安装方式为使用 yum 包管理进行安装,文档参考

安装 jdk
#

yum install -y java-1.8.0-openjdk

[root@jira ~]# java -version
openjdk version "1.8.0_282"
OpenJDK Runtime Environment (build 1.8.0_282-b08)
OpenJDK 64-Bit Server VM (build 25.282-b08, mixed mode)

配置 Jenkins yum 源
#

sudo wget -O /etc/yum.repos.d/jenkins.repo https://pkg.jenkins.io/redhat-stable/jenkins.repo
sudo rpm --import https://pkg.jenkins.io/redhat-stable/jenkins.io.key

Yum 安装
#

yum install jenkins -y

systemctl start jenkins \
&& systemctl enable jenkins   # 设置服务开机自启

安装完成后更具引导进行初始即可,选填为 安装推荐的插件

Jenkins 可选优化配置
#

修改端口号
#

Jenkins 服务默认监听在机器上的 8080 端口上如机器中出现端口号冲突,此时我们就需要相应的修改一下对应的端口号了。

首先找到对应的配置文件

image-20210302194914456

sed -i "s#8080#18080#g" /etc/sysconfig/jenkins  # 执行将端口替换为 18080端口

service jenkins restart # 重启服务

image-20210302195118303

配置代理使用域名形式访问
#

安装 nginx

yum install -y nginx

nginx 添加虚拟主机

vi /etc/nginx/nginx.conf  # 添加下面配置
http {
...
  server {
        listen 80;
        server_name jenkins.treesir.pub;
        charset    utf-8;
        location / {
              proxy_pass       http://127.0.0.1:18080;
              proxy_redirect    off;
              proxy_set_header  Host $http_host;
              proxy_set_header  X-Real-IP  $remote_addr;
              proxy_set_header  X-Forwarded-For  $proxy_add_x_forwarded_for;
           }
  }
}

nginx -t
nginx: the configuration file /etc/nginx/nginx.conf syntax is ok
nginx: configuration file /etc/nginx/nginx.conf test is successful

启动 nginx 并设置 开机自启

systemctl start nginx \
&& systemctl enable nginx 

测试访问

如果没有域名,可在 hosts 文件中添加记录

image-20210302203954015

此时应该页面会提示,反向代理 错误提示,解决方法如下:

manage jenkins => configure system => 修改 Jenkins URL 为此时 nginx 代理的地址,即演示中的 http://jenkins.treesir.pub => 保存后错误提示就会 消失

修改插件更新站点为国内镜像站点
#

进入Jenkisn工作目录, 一般为 /var/lib/jenkins/var/jenkins_home, 使用 Yum 安装时工作目录为 /var/lib/jenkins

# 进入Jenkisn工作目录, 一般为 /var/lib/jenkins 或 /var/jenkins_home
jenkins_home=/var/lib/jenkins

sed -i.bak 's#https://updates.jenkins.io#https://mirrors.tuna.tsinghua.edu.cn/jenkins/updates#g' "${jenkins_home}"/hudson.model.UpdateCenter.xml
sed -i.bak 's/http:\/\/updates.jenkins-ci.org\/download/https:\/\/mirrors.tuna.tsinghua.edu.cn\/jenkins/g' "${jenkins_home}"/updates/default.json 
sed -i.bak 's/http:\/\/www.google.com/https:\/\/www.baidu.com/g' "${jenkins_home}"/updates/default.json

Jenkins => 插件管理 => 高级 => 升级站点 url 替换为清华源: https://mirrors.tuna.tsinghua.edu.cn/jenkins/updates/update-center.json

image-20210302201455084

使用 容器化部署 时,添加下面的环境变量即可

JENKINS_UC=https://mirrors.tuna.tsinghua.edu.cn
JENKINS_UC_DOWNLOAD=https://mirrors.tuna.tsinghua.edu.cn/jenkins
JENKINS_OPTS="-Djava.awt.headless=true -Duser.timezone=Asia/Shanghai -Dhudson.model.UpdateCenter.updateCenterUrl=https://mirrors.tuna.tsinghua.edu.cn/jenkins/updates/update-center.json"

更新 Jenkins 的版本
#

右击,选择复制链接即获取到:https://updates.jenkins.io/download/war/2.281/jenkins.war

image-20210302201751849

cd /usr/lib/jenkins/ 

\mv jenkins.war{,.bak} # 执行备份,如更新后版本存在问题时,可以进行回滚。

wget https://updates.jenkins.io/download/war/2.281/jenkins.war # 粘贴刚才复制到的链接, 如果速度很慢的话可以修改为 国内的阿里云地址

# wget https://mirrors.aliyun.com/jenkins/war/2.281/jenkins.war

service jenkins restart  # war 包下载完成后,执行一下重启。

常用的插件整理
#

下面的插件列表为我自己在 生产实践 中,使用到的一些插件整理,不一定适用于你们的环境,请更具情况选择。。

插件名称插件说明
Kubernetes pluginkubernetes 容器云插件,可以使用动态 agent 功能
LDAP Plugin使用与 ldap 服务,进行认证的插件
Green BallsPipeline 构建成功状态默认为灰蓝色,使用此插件后可将插件替换为绿色
Rebuilder流水线重构插件,同时会使用 上一次的构建参数
Gitlab Authentication与 Gitlab 认证进行集成,使用Gitlab中的用户进行登录
SonarQube Scanner与 Sonarqube 代码质检集成插件
Build Monitor View构建状态视图
Blue Ocean重构版的主题插件
Periodic Backup版本备份插件
Generic Webhook Trigger Plugin通用 webhook 触发器 (功能强大)
Simple Theme Plugin主题添加自定义的 css & js
DingTalk消息通知与钉钉机器人集成插件
HTTP Request Pluginhttp 请求插件,与其他应用的 api 集成时 常用
Locale plugin控制 Jenkins 的地区语言
Localization: Chinese (Simplified)简体中文语言包
Pipeline Utility StepsJenkins 扩展工具
Role-based Authorization Strategy基于角色的权限管理
AnsiColor字体输出带颜色
build user vars plugin获取此次触发构建的用户及邮件地址信息
Git ParameterGit 自选 分支 & tag 参数化构建插件
Timestamper使步骤输出 带有时间戳

进阶配置
#

关联 openLdap
#

此操作需安装 LDAP Plugin 插件 及事先准备好 openLdap,ldap 结构及管理步骤如下所示:

image-20210303100044191

Manage Jenkins => Configure Global Security => LDAP

Server: ldap://192.168.8.112:54453

root DN: dc=ldap,dc=devops

User search filter: uid={0}

Search for LDAP groups containing user (选择) : ou=users,dc=ldap,dc=devops

Manager DN: cn=admin,dc=ldap,dc=devops

Manager Password: pass

Display Name LDAP attribute: displayname

Email Address LDAP attribute: mail

注销后使用 LDAP 用户测试登录
#

image-20210303100342139

基于角色的权限管理
#

此操作需安装 Role-based Authorization Strategy 插件

步骤一

Manage Jenkins => Configure Global Security => Authorization => Role-Based Strategy

如开启参数后提示警告,选择忽略即可。

image-20210303102611821

步骤二

权限管理

创建只读用户

Manage Jenkins => Manage and Assign Roles => Manage Roles => Role to add

添加后保存

image-20210303103022143

优化默认主题
#

此处优化主题实现方式为使用 jenkins-material-theme 为默认的主题添加 css 样式文件

安装 Simple Theme Plugin 插件后, 并在jenkins-material-theme 控制台中生成了自定义的 css

Manage Jenkins => Configure System => Theme elements add => Extra CSS => 粘贴生成的 css

image-20210303104809646

image-20210303105432114

相关文章

Jira & confluence 安装 并 配置 破解激活
·1146 字·3 分钟·
devops jira install confluence
使用 Docker 部署 Nexus3 私服的详细记录总结
·2798 字·6 分钟·
docker devops nexus3 install
在 Kubernetes 中部署 nfs storageClass
·1026 字·3 分钟·
devops k8s storage-class nfs
初探 Traefik ingress gateway
·1594 字·4 分钟·
k8s devops traefik
部署 Devops 必备利器 OpenLdap
·953 字·2 分钟·
devops openldap centos7
Kubeadm 部署 kubernetes-v1.19.x 集群
·2153 字·5 分钟·
k8s kubeadm v1.19.x install