腾讯云CentOS7安装jenkins持续集成环境
CentOS上安装软件,我个人比较倾向于使用yum或rpm的方式进行安装,因为毕竟在yum的支持下,系统所有软件可以处在一种可控可管理的状态下,需要时可以一键安装和卸载的,并且也可以把etc
和log
、share
等文件都统一收拢到特定的目录下,比较符合现代化的程序安装和卸载方式。
本文记录了在腾讯云CVM CentOS7上面安装jenkins持续集成平台的详细操作步骤
安装jdk
由于yum仓库中没有oracle版本的JRE或者JDK(只有openjdk的版本),所以我们去oracle官方去下载下oracle版本的jdk进行安装。
- 第一步: 下载oracle官方的Linux版本rpm包. 在这个页面 选择最新的linux64位版本即可
第二步: 将rpm包发送到自己的腾讯云服务器上:
1
scp ./jdk-10.0.1_linux-x64_bin.rpm root@yourip:/root/software
请根据自己的实际情况填写传输路径
第三步: 登录自己的腾讯云服务器,执行如下命令进行rpm软件安装
1
yum install ./jdk-10.0.1_linux-x64_bin.rpm
安装后可以这样确认是否已经正确安装到rpm系统:
1
yum list installed | grep jdk
或
1
rpm -qa | grep jdk
第四步: 执行java命令验证下
1
java --version
确认下看到JAVA SE的标识就说明安装成功了, 如:
Java(TM) SE Runtime Environment 18.3 (build 10.0.1+10)
如有需要,你可以在自己的profile或全局
/etc/profile
增加jdk相关环境变量:1
2
3
4
5JAVA_HOME=/usr/local/java/jdk1.8.0_144
JRE_HOME=$JAVA_HOME/jre
PATH=$PATH:$JAVA_HOME/bin:$JRE_HOME/bin
CLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar:$JRE_HOME/lib
export JAVA_HOME JRE_HOME PATH CLASSPATH
jenkins安装
- 登陆云服务器,使用wget下载jenkins的war包
jenkins是个自托管的java程序,CentOS安装文档可参考官网:1
wget http://mirrors.jenkins.io/war-stable/latest/jenkins.war
- 不过,喜欢用yum的我还是在网上找到了yum的安装方法, 主要命令如下:
1
2
3
4
5
6# 安装yum源
$ wget -O /etc/yum.repos.d/jenkins.repo https://pkg.jenkins.io/redhat/jenkins.repo
# 导入key
$ rpm --import http://pkg.jenkins-ci.org/redhat/jenkins-ci.org.key
# yum执行安装
$ yum install jenkins daemon脚本
jenkins默认使用了/etc/init.d的传统启动脚本,不能很好的利用如今更先进的systemd. 所以我们可以把他原来的脚本删除,从新在
/lib/systemd/system
下面创建一个新的:1
2
3
4
5
6
7
8
9
10
11
12
13
14
15[Unit]
Description=Jenkins
After=network.target
Requires=network.target
[Service]
Type=simple
EnvironmentFile=/etc/sysconfig/jenkins
ExecStart=/usr/bin/java ${JENKINS_JAVA_OPTIONS} -jar /usr/lib/jenkins/jenkins.war --httpPort=${JENKINS_PORT} --httpListenAddress=${JENKINS_LISTEN_ADDRESS} ${JENKINS_ARGS}
Restart=always
User=jenkins
RestartSec=20
[Install]
WantedBy=multi-user.target尝试直接启动jenkins.war来确认下是否有报错
1
java -jar /usr/lib/jenkins/jenkins.war
如果没有报错,则可以使用服务方式启动了:
1
2
3systemctl start jenkins
// 如果有需要还可以加入启动项
systemctl enable jenkins.service如果端口被占用,你可以修改
/etc/sysconfig/jendins
配置来修改端口。nginx配置一个proxy转发规则,转到jenkins启动的端口上 (本文默认你已经安装了nginx)
1
2
3
4
5
6
7
8
9location / {
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Host $http_host;
proxy_set_header X-Forwarded-Proto $scheme;
proxy_set_header Host $http_host;
proxy_set_header X-Nginx_proxy true;
proxy_pass http://127.0.0.1:8010;
}- 在客户端浏览器中访问nginx配置的网站地址即可
升级jenkins
- 停止jenkins服务
1 | systemctl stop jenkins |
- 通过yum更新
1 | yum install jenkins |
- 重新启动jenkins
开启https
由于我们把jenkins放在nginx后面运行,所以只需开启nginx的https支持即可。请自行参考其他文章进行开启
踩坑
- jenkins CPU占用过高
这个确实可能因为jenkins装了很多插件有关,当然他本身也是个不小的软件。对我1G内存1核的CPU来说压力太大,最终我把它挪到了阿里云
jenkins网页卡在”正在启动中”
此时你可能需要修改下配置文件,因为你所在网络被限制了。需要你进入jenkins的工作目录,打开
hudson.model.UpdateCenter.xml
把
http://updates.jenkins-ci.org/update-center.json
改成
http://mirror.xmission.com/jenkins/updates/update-center.json
还是不行的话 找到updates目录下的default.json 把里面所有的谷歌地址改成百度的