安裝 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