安装 jenkins
安装方式
-
采用 tomcat 下面放 jekins 里面放 war
-
直接下载二进制版,
上次我采用的是第一种。所以打算这次采用第二种解决方案。另外目前官网提供两种安装包,分别为长期支持版本 (LTS) 和每周更新版本。本次我安装的为 LTS 版
sudo wget -O /etc/yum.repos.d/jenkins.repo http://pkg.jenkins-ci.org/redhat-stable/jenkins.repo
sudo rpm --import https://jenkins-ci.org/redhat/jenkins-ci.org.key
sudo yum install -y jenkins
# 当出现下面的情况时代表已经安装成功了
Installed:
jenkins.noarch 0:2.150.3-1.1
Complete!
配置 jenkins
前言
直接启动 jenkins 会出现以下错误
[root@gclms nginx]# service jenkins status
● jenkins.service - LSB: Jenkins Automation Server
Loaded: loaded (/etc/rc.d/init.d/jenkins; bad; vendor preset: disabled)
Active: inactive (dead)
Docs: man:systemd-sysv-generator(8)
[root@gclms nginx]# service jenkins start
Starting jenkins (via systemctl): Job for jenkins.service failed. See 'systemctl status jenkins.service' and 'journalctl -xn' for details.
官方对于这个异常说是没有安装 java 环境,也就是没有安装 jdk。但是我本身的机器的已经安装过 jdk了啊。所以我们需要修改一下 jenkins 文件。让他可以找到我们安装的 jdk
找到 本地 jdk 位置
我的 jdk 位置为 /opt/java/jdk1.8.0_201/bin
修改 jenkins 启动脚本
vim /etc/rc.d/init.d/jenkins
启动 jenkins
[root@gclms jenkins]# systemctl daemon-reload
[root@gclms jenkins]# systemctl start jenkins
现在打开就浏览器 http://SERVER_IP:8080 ,如果出现如下图的情况,那说明 jenkins 已经成功启动了。
配置 Nginx
关于 nginx 的安装、nginx ssl 证书配置 我以前的文章 centos7 nginx 的 brotli 压缩 nginx 配置 SSL 证书
nginx 配置 文件如下:
upstream jenkins {
server 127.0.0.1:8080 fail_timeout=0;
}
server {
listen 80;
server_name jenkins.XX.com;
return 301 https://$host$request_uri;
}
server {
listen 443 ssl;
server_name jenkins.XX.com;
ssl_certificate /etc/nginx/ssl/server.crt;
ssl_certificate_key /etc/nginx/ssl/server.key;
location / {
proxy_set_header Host $host:$server_port;
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;
proxy_redirect http:// https://;
proxy_pass http://jenkins;
# Required for new HTTP-based CLI
proxy_http_version 1.1;
proxy_request_buffering off;
proxy_buffering off; # Required for HTTP-based CLI to work over SSL
# workaround for https://issues.jenkins-ci.org/browse/JENKINS-45651
add_header 'X-SSH-Endpoint' 'jenkins.XX.com:50022' always;
}
}
接下来使用自己配置的域名访问,如果还出现这张图,那说明 nginx 配置成功。
Jenkins 文件路径
- /usr/lib/jenkins/jenkins.war # jenkins安装目录,WAR包会放在这里
- /etc/sysconfig/jenkins # 配置文件
- /var/lib/jenkins/ # 默认的JENKINS_HOME
- /etc/rc.d/init.d/jenkins #启动脚本
- /var/log/jenkins/jenkins.log #Jenkins 日志文件
常见问题
Jenkins忘记admin密码拯救方法
关于忘记密码有分为以下两种情况
admin密码未更改情况
# 使用下面的指令查看当前密码
[root@jenkins jenkins]# cat /var/lib/jenkins/secrets/initialAdminPassword
796008f906d2453ca0d22e2f8fa46d33
admin密码更改忘记情况
# 默认的JENKINS_HOME 里面有个 users 文件夹,里面存储的一些用户信息
[root@gclms ~]# cd /var/lib/jenkins/
[root@gclms jenkins]# cd users/自己常用的用户名
[root@gclms jenkins]# vim config.xml
passwordHash 字段里面存储的就是 jenkins 的密码。替换成自己想换成的密码就可以,应为这次采用了加密,所以 我提供一个加密后的 密码
123456 加密后为 #jbcrypt:$2a$10$MiIVR0rr/UhQBqT.bBq0QehTiQVqgNpUGyWW2nJObaVAM/2xSQdSq
修改 /users/admin/comfig.xml 文件后,保存重新启动Jenkins程序。然后再以用户名admin 密码123456 成功登录。
参考文档
- https://wiki.jenkins.io/display/JENKINS/Installing+Jenkins+on+Red+Hat+distributions
- https://wiki.jenkins.io/display/JENKINS/Installing+Jenkins+on+Red+Hat+distributions#InstallingJenkinsonRedHatdistributions-ImportantNoteonCentOSJava
- https://wiki.jenkins.io/display/JENKINS/Jenkins+behind+an+NGinX+reverse+proxy
- https://blog.csdn.net/wh211212/article/details/76825305
- https://www.jianshu.com/p/2995ae8157e7
- https://www.linuxidc.com/Linux/2017-02/141119.htm