Centos7 上安裝 Jenkins 及常見問題解決方案

安裝 jenkins

安裝方式

  1. 採用 tomcat 下面放 jekins 裏面放 warhtml

  2. 直接下載二進制版,java

上次我採用的是第一種。因此打算此次採用第二種解決方案。另外目前官網提供兩種安裝包,分別爲長期支持版本 (LTS) 和每週更新版本。本次我安裝的爲 LTS 版linux

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 會出現如下錯誤nginx

[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 文件。讓他能夠找到咱們安裝的 jdkshell

找到 本地 jdk 位置

​ 個人 jdk 位置爲 /opt/java/jdk1.8.0_201/binvim

修改 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 已經成功啓動了。centos

配置 Nginx

關於 nginx 的安裝、nginx ssl 證書配置 我之前的文章 centos7 nginx 的 brotli 壓縮 nginx 配置 SSL 證書瀏覽器

nginx 配置 文件以下:tomcat

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 配置成功。ui

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
相關文章
相關標籤/搜索