Jenkins是一个开源的支持自动化构建、部署等任务的平台。基本上可以说是持续集成(CI)、持续发布(CD)不可或缺的工具。
官网:https://jenkins.io/
工具/环境 | 版本 |
Linux Server | CentOS 7 |
Jenkins | 2.121.2 |
JDK | 1.8.0_181 |
Nginx | 1.14.0 |
安装JDK
参考:https://ken.io/note/centos-java-setup
将jdk1.8.0_181部署在目录/usr/java/ 部署完成后,jdk的根目录就是:/usr/java/jdk1.8.0_181/
- 安装Nginx(非必要步骤)
参考:https://ken.io/note/centos-quickstart-nginx-setup
部署Nginx是为了方便我们通过域名访问Jenkins,如果无此需求可忽略次操作
二、Jenkins安装
- 以下有两种安装方式 根据自己的jdk版本进行选择
1、下载包安装(jdk8)
进入清华镜像,下载对应版本的rpm包
清华镜像
3.已rpm安装过Jenkins,现在先卸载
# 1.卸载
rpm -e jenkins
# 2.检查是否卸载成功
rpm -ql jenkins
# 3.彻底删除残留文件:
find / -iname jenkins | xargs -n 1000 rm -rf
环境准备完毕上传已下载号的Jenkins包
rpm -ivh jenkins-2.346-1.1.noarch.rpm
给Jenkins的配置文件赋予读写权限(rpm后会自动生成以下目录)
chmod -R 777 /var/lib/jenkins
chmod -R 777 /var/cache/jenkins
chmod -R 777 /var/log/jenkins
# 或
chown -R root:root /var/lib/jenkins
chown -R root:root /var/cache/jenkins
chown -R root:root /var/log/jenkins
使用systemctl启动,以前的老配置文件是不管用的,需要修改启动文件
vi /usr/lib/systemd/system/jenkins.service
Environment="JAVA_OPTS=-Djava.awt.headless=true -Xms256m -Xmx768m -XX:MaxNewSize=512m -XX:MaxPermSize=256m"
其他配置可根据自己需要修改,修改完成启动
systemctl daemon-reload
# 启动
systemctl start jenkins
# 停止
systemctl stop jenkins
# 加入开机启动
systemctl enable jenkins
插件地址更换:
cd /var/lib/jenkins/updates
sed -i 's/http:\/\/updates.jenkinsci.org\/download/https:\/\/mirrors.tuna.tsinghua.edu.cn\/jenkins/g' default.json && sed -i 's/http:\/\/www.google.com/https:\/\/www.baidu.com/g' default.json
查看jenkins启动运行日志
cat /var/log/jenkins/jenkins.log
2、yum包安装(jdk11)
1.yum源导入(默认导入的是最新的Jenkins包 目前最新包需要jdk11支持)
#添加Yum源
sudo wget -O /etc/yum.repos.d/jenkins.repo https://pkg.jenkins.io/redhat-stable/jenkins.repo
#导入密钥
sudo rpm --import https://pkg.jenkins.io/redhat-stable/jenkins.io.key
#安装
sudo yum install -y jenkins
2、开放端口
Jenkins站点的默认监听端口是8080
编辑文件:vim /etc/sysconfig/jenkins
找到 JENKINS_PORT,修改默认(8080)的端口号,我这里改为9999
sudo firewall-cmd --add-port=9999/tcp --permanent
sudo firewall-cmd --reload
3、配置Java可选路径
因为Jenkins默认的java可选路径不包含我们部署的jdk路径,所以这里要配置一下,不然Jenkins服务会启动失败
#查看java所在位置
which java
#修改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
"
4、启动Jenkins并设置Jenkins开机启动
#重载服务(由于前面修改了Jenkins启动脚本)
sudo systemctl daemon-reload
#启动Jenkins服务
sudo systemctl start jenkins
#将Jenkins服务设置为开机启动
#由于Jenkins不是Native Service,所以需要用chkconfig命令而不是systemctl命令
sudo /sbin/chkconfig jenkins on
浏览器输入 http://<ip address>:8080 访问Jenkins
三、Nginx配置(非必要步骤)
1、配置Nginx反向代理Jenkins
- 新建配置文件
#新增Jenkins专用Nginx配置文件
sudo vi /etc/nginx/conf.d/jenkins.conf
#输入以下内容并保存
server {
listen 80; #监听80端口
server_name jenkins.ken.io; #监听的域名
access_log /var/log/nginx/jenkins.access.log main;
error_log /var/log/nginx/jenkins.error.log error;
location / { #转发或处理
proxy_pass http://127.0.0.1:8080;
}
error_page 500 502 503 504 /50x.html;#错误页
location = /50x.html {
root /usr/share/nginx/html;
}
}
- 重载Nginx配置
sudo nginx -s reload
2、配置SELinux
如果不配置SELinux,通过Nginx反向代理访问,可能会产如下错误
#查看错误信息
/var/log/nginx/jenkins.error.log
#错误信息示例
connect() to 127.0.0.1:8001 failed (13: Permission denied) while connecting to upstream, client: 127.0.0.1
- 方法1:
setsebool -P httpd_can_network_connect 1
- 方法2:
#关闭SELinux:
sed -i '/SELINUX/s/enforcing/disabled/' /etc/selinux/config
#重启:
reboot
修改本地hosts,将域名jenkins.ken.io指向CentOS IP,通过域名测试访问
四、Jenkins初始化
1、解锁Jenkins
查询root账号默认密码
cat /var/lib/jenkins/secrets/initialAdminPassword
输入密码并解锁
2、选择插件
这里直接选择“安装推荐的插件”即可
选择安装的插件后会进入插件安装界面
3、添加管理员
插件安装完成后会自动进入添加管理员界面
4、配置Jenkins URL
这里的URL指的是默认访问Jenkins的地址。 默认是是http://:8080,如果你通过Nginx配置了域名,那么直接填写配置的域名即可。
5、开始使用Jenkins
配置完Jenkins URL之后就完成了整个Jenkins配置引导
点击“开始使用Jenkins”就会进入Jenkins主页
搞定~