CentOS 7 部署 Jenkins 持续集成环境(教学环境)
詹金斯是一种流行的开源 CI(持续集成)工具,广泛用于项目开发,部署和自动化。
本文将引导你完成在 CentOS 7 服务器实例上安装 Jenkins 的过程。
1. 先决条件
在继续之前,你必须具备:
- 从零开始部署了 CentOS 7 服务器实例。
- root 权限
2. 部署本地 yum 源
rm -rf /etc/yum.repos.d/*
curl -o /etc/yum.repos.d/CentOS7.repo http://10.0.0.11/Centos/CentOS7.repo
yum clean all
yum makecache
3. 安装 Java
在安装 Jenkins 之前,需要在系统上安装一个 Java 虚拟机。在这里,让我们使用 yum 安装最新的 JDK:
yum install -y java
安装完成后,可以通过运行以下命令进行确认:
java -version
4. 安装 Jenkins
使用 yum
安装 Jenkins:
yum install -y jenkins
启动 Jenkins 服务并将其设置为在启动时运行:
systemctl start jenkins.service
systemctl enable jenkins.service
为了允许访问者访问 Jenkins,你需要允许端口 8080 上的入站流量:
firewall-cmd --zone=public --permanent --add-port=8080/tcp
firewall-cmd --reload
until [ `systemctl status jenkins | grep Active | awk '{print $3}' | cut -d "(" -f2 | cut -d ")" -f1` == "running" ]
do
sleep 1;
echo 等待 Jenkins 服务启动
done
until [ -d "/var/cache/jenkins/war/WEB-INF/update-center-rootCAs/" ]
do
sleep 1;
echo 等待 Jenkins 证书目录生成
done
curl -o /var/cache/jenkins/war/WEB-INF/update-center-rootCAs/update-center.der http://10.0.0.11/Centos/jenkins/update-center.der
until [ -f "/var/lib/jenkins/hudson.model.UpdateCenter.xml" ]
do
sleep 1;
echo 等待 Jenkins UpdateCenter 生成
done
sed -i 's/https:\/\/updates.jenkins.io\/update-center.json/http:\/\/10.0.0.11\/Centos\/jenkins\/update-center.json/' /var/lib/jenkins/hudson.model.UpdateCenter.xml
systemctl restart jenkins.service
现在,通过从浏览器访问以下地址来访问 Jenkins:
http://服务器IP:8080
4.1. 基本配置
-
解锁 jenkins
根据提示使用
cat
命令查看密码cat /var/lib/jenkins/secrets/initialAdminPassword
-
自定义 Jenkins
Jenkins 插件自动从网络下载安装,由于插件服务器在国外,会产生网络延迟问题导致安装失败。
因此选择
选择插件来安装
。本次我们将不选择任何插件以快速安装,后期将通过插件管理器
安装所需插件。 -
创建第一个管理员用户
-
实例配置
可修改 地址与端口,不建议修改。保持默认。
-
插件安装
系统管理
Manage Jenkins
-> 管理插件Manage Plugins
-> 可选插件Available
-> 过滤filter
如果无法上网,可将手动下载相关插件,上传至
/var/lib/jenkins/plugins
,重启 Jenkins 自动安装HTML Publisher
Workspace Cleanup
Subversion
Startup Trigger
Groovy
Email Extension
5. 部署 Python 3
部署编译环境
yum -y groupinstall 'Development Tools'
yum -y install zlib zlib-devel libffi-devel openssl-devel sqlite-devel
Python 官网下载最新版 Python 源代码。
本文以 Python-3.8.10 为例
cd /tmp
curl -O http://10.0.0.11/tools/Python/Python-3.8.10.tgz
tar -xf Python-3.8.10.tgz
Python 配置
./Python-3.8.10/configure
构建并安装 Python 3
make -j install Python-3.8.10
确认 Python 3 部署成功
python3 --version
安装自动化依赖 Python 相关库
pip3 install selenium htmlreport -i https://mirrors.aliyun.com/pypi/simple/
pip3 list
6. Jenkins 相关
- 配置文件
/etc/sysconfig/jenkins
- 默认启用
8080
- 日志
/var/log/jenkins/jenkins.log
- 服务状态
systemctl status jenkins
- 启动服务
systemctl start jenkins
- 停止服务
systemctl stop jenkins
- 重启服务
systemctl restart jenkins
7. sh
rm -rf /etc/yum.repos.d/* &&
curl -o /etc/yum.repos.d/CentOS7.repo http://10.0.0.11/Centos/CentOS7.repo &&
yum clean all &&
yum makecache &&
yum install -y java &&
java -version &&
yum install -y jenkins &&
systemctl start jenkins.service &&
systemctl enable jenkins.service &&
yum -y groupinstall 'Development Tools' &&
yum -y install zlib zlib-devel libffi-devel openssl-devel sqlite-devel &&
firewall-cmd --zone=public --permanent --add-port=8080/tcp &&
firewall-cmd --reload &&
until [ `systemctl status jenkins | grep Active | awk '{print $3}' | cut -d "(" -f2 | cut -d ")" -f1` == "running" ]
do
sleep 1;
echo 等待 Jenkins 服务启动
done &&
until [ -d "/var/cache/jenkins/war/WEB-INF/update-center-rootCAs/" ]
do
sleep 1;
echo 等待 Jenkins 证书目录生成
done &&
curl -o /var/cache/jenkins/war/WEB-INF/update-center-rootCAs/update-center.der http://10.0.0.11/Centos/jenkins/update-center.der &&
until [ -f "/var/lib/jenkins/hudson.model.UpdateCenter.xml" ]
do
sleep 1;
echo 等待 Jenkins UpdateCenter 生成
done &&
sed -i 's/https:\/\/updates.jenkins.io\/update-center.json/http:\/\/10.0.0.11\/Centos\/jenkins\/update-center.json/' /var/lib/jenkins/hudson.model.UpdateCenter.xml &&
systemctl restart jenkins.service &&
cd /tmp &&
curl -O http://10.0.0.11/tools/Python/Python-3.8.10.tgz &&
tar -xf Python-3.8.10.tgz &&
./Python-3.8.10/configure &&
make -j install Python-3.8.10 &&
python3 --version &&
pip3 install selenium htmlreport -i https://mirrors.aliyun.com/pypi/simple/ &&
pip3 list