一、前提
Java 环境
因为 Jenkins 是 Java 写的,所以需要 Java 环境。
centos7 安装 Java 环境
二、yum 安装
- 进入官网安装界面选择 Jenkins 版本和操作系统后有详细的命令,直接执行就行。
- 也可参考完整的用户文档
命令解释
- 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
下载源可能会提示没有证书过期:
```bash
无法验证 pkg.jenkins.io 的由 “/C=US/O=Let's Encrypt/CN=R3” 颁发的证书: 颁发的证书已经过期。
可以安装一下证书或者根据提示后缀加上--no-check-certif
忽略证书验证:
sudo yum install -y ca-certificates
/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:
vim /etc/sysconfig/jenkins
# 修改配置
$JENKINS_USER="root"
修改目录权限:如果用户为 root,该操作可选吗?
chown -R root:root /var/lib/jenkins
chown -R root:root /var/cache/jenkins
chown -R root:root /var/log/jenkins
配置 Java 可选环境
因为 Jenkins 默认的 java 可选路径可能不包含我们安装的 jdk 路径,所以这里要配置一下,不然 Jenkins 服务会启动失败。
#修改jenkins启动脚本
sudo vi /etc/init.d/jenkins
#修改 candidates 增加 java 可选路径:/usr/java/jdk1.8.0_181/bin/java
candidates="
/etc/alternatives/java
/usr/lib/jvm/java-1.8.0/bin/java
/usr/lib/jvm/jre-1.8.0/bin/java
/usr/lib/jvm/java-1.7.0/bin/java
/usr/lib/jvm/jre-1.7.0/bin/java
/usr/bin/java
/usr/java/jdk1.8.0_181/bin/java
"
修改访问端口
Jenkins 是通过 web 页面进行配置使用的,配置页面默认使用 8080 端口。
# 编辑配置文件
vim /etc/sysconfig/jenkins
# 设置端口
JENKINS_PORT="8080"
三、开启服务
启动服务:
# ctl 是 control 的缩写,systemctl 控制 native service
systemctl start jenkins
# 开启 Jenkins 的开机自启
systemctl enable jenkins
#由于Jenkins不是Native Service,所以需要用chkconfig命令而不是systemctl命令
sudo /sbin/chkconfig jenkins on # 有待验证
# 查看状态
systemctl status jenkins
# 重新启动
systemctl restart jenkins
# 查看服务
ps -ef | grep jenkins
配置防火墙:
sudo firewall-cmd --list-ports
sudo firewall-cmd --add-port=8080/tcp --permanent
sudo firewall-cmd --reload
使用:
- 浏览器访问:
http://主机IP:8080
!!! 大问题
为了解决权限问题,修改 Jenkins_user=”root” 后,在构建 shell 中查看当前用户 whoami 依然是 Jenkins???
依据配置文件中的提示:
# Unix user account that runs the Jenkins daemon
# Be careful when you change this, as you need to update
# permissions of $JENKINS_HOME and /var/log/jenkins,
# and if you have already run Jenkins, potentially other
# directories such as /var/cache/jenkins .
修改了三个文件夹的所有者和用户组。然后重启直接启动失败,Java io 权限不够!啊啊啊啊啊,艹!!!!