在CentOS上稳定运行Jenkins需要经过一系列的步骤,包括安装必要的软件包、配置Jenkins、设置开机启动、配置防火墙以及安装和配置插件等。以下是详细的步骤:
1. 安装必要的软件包
首先,确保系统是最新的,并安装必要的依赖包:
sudo yum update -y sudo yum install -y wget java-1.8.0-openjdk-devel
2. 下载并安装Jenkins
从Jenkins官方网站下载最新版本的Jenkins RPM包,并使用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 sudo yum install -y jenkins
3. 配置Jenkins
3.1 创建Jenkins用户和目录
sudo useradd -M jenkins sudo chown -R jenkins:jenkins /var/lib/jenkins sudo chmod -R 755 /var/lib/jenkins
3.2 配置Jenkins启动文件
编辑Jenkins的systemd服务文件:
sudo vi /usr/lib/systemd/system/jenkins.service
确保以下内容正确:
[Unit] Description=Jenkins Continuous Integration Server Requires=network.target After=network.target [Service] Type=simple User=jenkins WorkingDirectory=/var/lib/jenkins ExecStart=/usr/bin/jenkins Restart=always [Install] WantedBy=multi-user.target
3.3 设置Jenkins环境变量
编辑/etc/profile
或~/.bashrc
文件,添加以下内容:
export JENKINS_HOME=/var/lib/jenkins export PATH=$JENKINS_HOME/bin:$PATH
使环境变量生效:
source /etc/profile
4. 启动Jenkins服务
启动Jenkins服务并设置为开机自启动:
sudo systemctl daemon-reload sudo systemctl start jenkins sudo systemctl enable jenkins
5. 配置防火墙
确保防火墙允许访问Jenkins的端口(默认是8080):
sudo firewall-cmd --permanent --add-service=http sudo firewall-cmd --reload
6. 访问Jenkins
在浏览器中访问http://your_server_ip:8080
,按照提示完成Jenkins的初始设置。默认的用户名和密码是admin
和admin
。
7. 安装插件
安装推荐的插件以增强Jenkins的功能。可以通过Jenkins的Web界面来安装插件。
8. 性能优化和常见问题解决
8.1 性能优化
- 升级硬件资源:增加内存、提高CPU性能或使用更快的存储设备。
- 优化Jenkins配置:调整JVM堆大小、限制并发构建数、禁用不必要的服务等。
- 插件管理:定期更新插件、移除未使用的插件。
- 使用分布式构建:通过配置多个Slave节点,将构建任务分配给不同的机器。
- 定期清理旧的构建记录:以避免磁盘空间不足和数据库查询时间过长。
8.2 常见问题解决
-
无法切换到Jenkins用户:如果
/bin/bash
被yum
安装时变成了/bin/false
,需要修改回去:sudo vim /etc/passwd
将
/bin/false
改为/bin/bash
,然后执行su jenkins
命令。 -
安装插件失败:如果遇到SSL握手异常,可以尝试修改
default.json
文件中的更新中心URL:sudo sed -i 's#updates.jenkins.io/download/plugins#mirrors.tuna.tsinghua.edu.cn/jenkins/plugins#g' /var/lib/jenkins/updates/default.json sudo sed -i 's#www.google.com#www.baidu.com#g' /var/lib/jenkins/updates/default.json sudo sed -i 's#https://mirrors.tuna.tsinghua.edu.cn#http://mirrors.tuna.tsinghua.edu.cn#g' /var/lib/jenkins/updates/default.json sudo systemctl restart jenkins