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
相关文章
相关标签/搜索