一、前提

Java 环境

因为 Jenkins 是 Java 写的,所以需要 Java 环境。
centos7 安装 Java 环境

二、yum 安装

  • 进入官网安装界面选择 Jenkins 版本和操作系统后有详细的命令,直接执行就行。
  • 也可参考完整的用户文档

命令解释

  1. yum 源本身没有 Jenkins,所以首先要从官网下载源,并且导入密钥。 ```bash

    wget 下载 yum 依赖的源

    sudo wget -O /etc/yum.repos.d/jenkins.repo \ https://pkg.jenkins.io/redhat/jenkins.repo

导入密钥

sudo rpm —import https://pkg.jenkins.io/redhat/jenkins.io.key

  1. 下载源可能会提示没有证书过期:
  2. ```bash
  3. 无法验证 pkg.jenkins.io 的由 “/C=US/O=Let's Encrypt/CN=R3” 颁发的证书: 颁发的证书已经过期。

可以安装一下证书或者根据提示后缀加上--no-check-certif忽略证书验证:

  1. sudo yum install -y ca-certificates
  1. 最后就能安装 Jenkins 了
    1. sudo yum install jenkins
  2. 查找jenkins安装路径
    1. rpm -ql jenkins

    jenkins 相关目录释义

  • /usr/lib/jenkins/:jenkins 安装目录,war 包会放在这里
  • /etc/sysconfig/jenkins:jenkins 配置文件,“端口”,“JENKINS_HOME”等都可以在这里配置。
  • /var/lib/jenkins/:默认的 JENKINS_HOME。
  • /var/log/jenkins/jenkins.log:jenkins 日志文件。

    初始化配置

Jenkins 用户

我们后面会访问 centos 中的某些文件夹,默认 Jenkins 使用的用户是 jenkins,可能会没有访问权限,所以我们可以修改一下它的用户为 root,或者是给用户分配修改文件夹的权限。

  • 修改文件的路径:/etc/sysconfig/jenkins

将用户设为 root:

  1. vim /etc/sysconfig/jenkins
  2. # 修改配置
  3. $JENKINS_USER="root"

修改目录权限:如果用户为 root,该操作可选吗?

  1. chown -R root:root /var/lib/jenkins
  2. chown -R root:root /var/cache/jenkins
  3. chown -R root:root /var/log/jenkins

配置 Java 可选环境

因为 Jenkins 默认的 java 可选路径可能不包含我们安装的 jdk 路径,所以这里要配置一下,不然 Jenkins 服务会启动失败。

  1. #修改jenkins启动脚本
  2. sudo vi /etc/init.d/jenkins
  3. #修改 candidates 增加 java 可选路径:/usr/java/jdk1.8.0_181/bin/java
  4. candidates="
  5. /etc/alternatives/java
  6. /usr/lib/jvm/java-1.8.0/bin/java
  7. /usr/lib/jvm/jre-1.8.0/bin/java
  8. /usr/lib/jvm/java-1.7.0/bin/java
  9. /usr/lib/jvm/jre-1.7.0/bin/java
  10. /usr/bin/java
  11. /usr/java/jdk1.8.0_181/bin/java
  12. "

修改访问端口

Jenkins 是通过 web 页面进行配置使用的,配置页面默认使用 8080 端口。

  1. # 编辑配置文件
  2. vim /etc/sysconfig/jenkins
  3. # 设置端口
  4. JENKINS_PORT="8080"

三、开启服务

启动服务:

  1. # ctl 是 control 的缩写,systemctl 控制 native service
  2. systemctl start jenkins
  3. # 开启 Jenkins 的开机自启
  4. systemctl enable jenkins
  5. #由于Jenkins不是Native Service,所以需要用chkconfig命令而不是systemctl命令
  6. sudo /sbin/chkconfig jenkins on # 有待验证
  7. # 查看状态
  8. systemctl status jenkins
  9. # 重新启动
  10. systemctl restart jenkins
  11. # 查看服务
  12. ps -ef | grep jenkins

配置防火墙:

  1. sudo firewall-cmd --list-ports
  2. sudo firewall-cmd --add-port=8080/tcp --permanent
  3. sudo firewall-cmd --reload

使用:

  • 浏览器访问:http://主机IP:8080

!!! 大问题

为了解决权限问题,修改 Jenkins_user=”root” 后,在构建 shell 中查看当前用户 whoami 依然是 Jenkins???
依据配置文件中的提示:

  1. # Unix user account that runs the Jenkins daemon
  2. # Be careful when you change this, as you need to update
  3. # permissions of $JENKINS_HOME and /var/log/jenkins,
  4. # and if you have already run Jenkins, potentially other
  5. # directories such as /var/cache/jenkins .

修改了三个文件夹的所有者和用户组。然后重启直接启动失败,Java io 权限不够!啊啊啊啊啊,艹!!!!
image.png