如何在CentOS-7中安装Jenkins
Jenkins是一种非常受欢迎的开源CI(连续集成)工具,广泛用于项目开发,部署和自动化。
本文将引导您了解在CentOS 7服务器实例上安装Jenkins的过程。为了方便访问,可以安装Nginx作为Jenkins的反向代理。
步骤0 - 准备
- CentOS 7服务器实例 ,物理机, 虚拟机, 云虚拟机均可。
- 具有sudo权限的非root用户登录到您的计算机。
- 切换到root 用户 : sudo su -
步骤1 - 更新CentOS 7 系统
Linux系统管理员的最佳做法之一就是使系统保持最新。安装最新的稳定包,然后重新启动。
# yum install epel-release
# yum update
# reboot
重新启动完成后,使用相同的sudo用户登录。
步骤2 - 安装 java — openjdk
在安装Jenkins之前,需要在系统上设置一个Java虚拟机。在这里,让我们使用YUM安装最新的OpenJDK :
# yum install java-1.8.0-openjdk.x86_64
安装完成后,可以通过运行以下命令进行确认:
# java -version
openjdk version "1.8.0_131"
OpenJDK Runtime Environment (build 1.8.0_131-b11)
OpenJDK 64-Bit Server VM (build 25.131-b11, mixed mode)
为了帮助基于Java的应用程序正确定位Java虚拟机,需要设置两个环境变量:
JAVA_HOME
和JRE_HOME
。
# cp /etc/profile /etc/profile_backup
# echo 'export JAVA_HOME=/usr/lib/jvm/jre-1.8.0-openjdk' | sudo tee -a /etc/profile
# echo 'export JRE_HOME=/usr/lib/jvm/jre' | sudo tee -a /etc/profile
# source /etc/profile
最后,您可以打印它们进行审核:
# echo $JAVA_HOME
/usr/lib/jvm/jre-1.8.0-openjdk
# echo $JRE_HOME
/usr/lib/jvm/jre
步骤3 - 安装 Jenkins
参考链接:
使用官方的YUM源安装最新的稳定版本的Jenkins,当前版本为: jenkins-2.46.2
# cd ~
# wget -O /etc/yum.repos.d/jenkins.repo http://pkg.jenkins-ci.org/redhat-stable/jenkins.repo
# rpm --import https://jenkins-ci.org/redhat/jenkins-ci.org.key
# yum install jenkins
启动Jenkins服务并将其设置为在启动时运行:
# service jenkins status
# service jenkins start/stop/restart
# chkconfig jenkins on
如果以上命令不工作,请使用如下命令:
# systemctl start jenkins.service
# systemctl enable jenkins.service
为了允许用户访问Jenkins,您需要允许端口8080上的入站流量:
firewall-cmd --zone=public --permanent --add-port=8080/tcp
firewall-cmd --reload
现在,可以通过网络浏览器访问以下地址来测试Jenkins:
http://<your-server-IP>:8080
步骤3.X - Jenkins 文件系统
- 配置文件 (Jenkins 系统配置)
# /etc/sysconfig/jenkins
- Jenkins Home(job 配置, 用户配置, 插件等所有系统配置之外的文件)
# ll /var/lib/jenkins
total 60
-rw-r--r--. 1 jenkins jenkins 1592 May 24 09:18 config.xml
-rw-r--r--. 1 jenkins jenkins 159 May 24 09:18 hudson.model.UpdateCenter.xml
-rw-r--r--. 1 jenkins jenkins 1121 May 25 01:18hudson.plugins.emailext.ExtendedEmailPublisher.xml
-rw-r--r--. 1 jenkins jenkins 370 May 24 09:36 hudson.plugins.git.GitTool.xml
-rw-------. 1 jenkins jenkins 1712 May 24 09:18 identity.key.enc
-rw-r--r--. 1 jenkins jenkins 94 May 24 09:18 jenkins.CLI.xml
-rw-r--r--. 1 jenkins jenkins 6 May 25 01:17 jenkins.install.InstallUtil.lastExecVersion
-rw-r--r--. 1 jenkins jenkins 6 May 25 01:17 jenkins.install.UpgradeWizard.state
drwxr-xr-x. 2 jenkins jenkins 6 May 24 09:18 jobs
drwxr-xr-x. 3 jenkins jenkins 18 May 24 09:18 logs
-rw-r--r--. 1 jenkins jenkins 907 May 24 09:18 nodeMonitors.xml
drwxr-xr-x. 2 jenkins jenkins 6 May 24 09:18 nodes
drwxr-xr-x. 73 jenkins jenkins 8192 May 24 09:42 plugins
-rw-r--r--. 1 jenkins jenkins 64 May 24 09:18 secret.key
-rw-r--r--. 1 jenkins jenkins 0 May 24 09:18 secret.key.not-so-secret
drwx------. 4 jenkins jenkins 4096 May 25 01:17 secrets
drwxr-xr-x. 2 jenkins jenkins 4096 May 24 09:33 updates
drwxr-xr-x. 2 jenkins jenkins 23 May 24 09:18 userContent
drwxr-xr-x. 3 jenkins jenkins 18 May 25 01:17 users
drwxr-xr-x. 2 jenkins jenkins 6 May 24 09:36 workflow-libs
- Jenkins log
# /var/log/jenkins
- Jenkins 启动脚本
# /etc/rc.d/init.d/jenkins
- Jenkins WAR 包位置
# ll /usr/lib/jenkins
total 68696
-rw-r--r--. 1 root root 70342163 Apr 26 15:51 jenkins.war
步骤4 - 安装 Nginx (可选)
为了方便用户访问Jenkins,您可以为Jenkins设置Nginx反向代理,因此当访问Jenkins应用程序时,访问者将不再需要键入8080或其他管理员配置的端口。
- 使用YUM安装Nginx:
# yum install nginx
- 修改Nginx的配置:
# vim /etc/nginx/nginx.conf
- 找到以下两行:
location / {
}
- 在
{}
中加入以下六行:proxy_pass http://127.0.0.1:8080;
proxy_redirect off;
proxy_set_header Host $host;
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;
- 最终结果应该是:
location / {
proxy_pass http://127.0.0.1:8080;
proxy_redirect off;
proxy_set_header Host $host;
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;
}
- 保存并退出:
:wq
- 启动并启用Nginx服务:
# systemctl start nginx.service
# systemctl enable nginx.service
- 允许端口80上的流量:
# firewall-cmd --zone=public --permanent --add-service=http
# firewall-cmd --reload
- 最后,从浏览器访问以下地址以确认安装正确:
http://<your-server-IP>
TTAO