CentOS 上 Jenkins 配置问题排查与解决
一 环境准备与安装检查
java -version;如版本不符,安装并切换:sudo yum install java-11-openjdk-devel -y,然后 sudo alternatives --config java 选择 java-11。sudo wget -O /etc/yum.repos.d/jenkins.repo https://pkg.jenkins.io/redhat-stable/jenkins.reposudo rpm --import https://pkg.jenkins.io/redhat-stable/jenkins.io.keysudo yum install jenkins -ysudo systemctl start jenkins && sudo systemctl enable jenkinssudo firewall-cmd --permanent --add-port=8080/tcp && sudo firewall-cmd --reloadsudo cat /var/lib/jenkins/secrets/initialAdminPassword二 启动失败与端口冲突排查
systemctl status jenkins、journalctl -u jenkins -xe、tail -n 50 /var/log/jenkins/jenkins.log,优先从日志定位错误。ss -tulnp | grep 8080 或 netstat -tulnp | grep 8080JENKINS_PORT="8080",然后 sudo systemctl restart jenkins。[Service] 下添加Environment="JAVA_HOME=/usr/lib/jvm/java-11-openjdk",随后 sudo systemctl daemon-reload && sudo systemctl restart jenkins。TimeoutStartSec=0,再重启服务。sudo yum install openssl11 openssl11-libs -y。三 首次访问与插件安装问题
/var/lib/jenkins/secrets/initialAdminPassword 解锁,按需选择安装推荐插件或自定义插件集。whereis git 定位,常见为 /usr/local/git/bin/git)。如 git --version < 1.7.4,不支持 --local,需升级 Git。四 构建与权限脚本常见问题
#!/bin/sh -l,或在脚本中显式 source /etc/profile。BUILD_ID=DONTKILLME,或在 /etc/sysconfig/jenkins 的 JENKINS_JAVA_OPTIONS 增加 -Dhudson.util.ProcessTree.disable=true 并重启,防止 Jenkins 清理衍生进程。visudo):jenkins ALL=(ALL) NOPASSWD: ALL,避免 “sudo: no tty present and no askpass program specified”。System.setProperty("hudson.model.DirectoryBrowserSupport.CSP", "")(重启后会失效,可配合 Groovy 插件持久化)。五 全局工具与反向代理配置
JAVA_HOME(如 /usr/lib/jvm/java-11-openjdk)。whereis git 结果中的可执行文件路径(如 /usr/local/git/bin/git)。MAVEN_HOME(如 /usr/share/maven),确保 mvn -v 可用。server {
listen 80;
server_name jenkins.example.com;
location / {
proxy_pass http://127.0.0.1:8080;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Proto $scheme;
}
}
sudo nginx -t && sudo systemctl reload nginx