Centos7 上安装 Jenkins 及常见问题解决方案

安装 jenkins

安装方式

  1. 采用 tomcat 下面放 jekins 里面放 war

  2. 直接下载二进制版,

上次我采用的是第一种。所以打算这次采用第二种解决方案。另外目前官网提供两种安装包,分别为长期支持版本 (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 成功登录。

参考文档

posted @ 2019-06-05 14:48  孤城落寞  阅读(3754)  评论(0编辑  收藏  举报