Jenkins是一个开源的、提供友好操作界面的持续集成(CI)工具,起源于Hudson(Hudson是商用的),主要用于持续、自动的构建/测试软件项目、监控外部任务的运行。Jenkins用Java语言编写,可在Tomcat等流行的servlet容器中运行,也可独立运行。通常与版本管理工具(SCM)、构建工具结合使用。常用的版本控制工具有SVN、GIT,构建工具有Maven、Ant、Gradle。
下面是详细的安装教程,本例基于centos7操作系统。
yum install -y java-1.8.0-openjdk
java -version
#openjdk version "1.8.0_242"
#OpenJDK Runtime Environment (build 1.8.0_242-b08)
#OpenJDK 64-Bit Server VM (build 25.242-b08, mixed mode)
wget -O /etc/yum.repos.d/jenkins.repo http://pkg.jenkins.io/redhat-stable/jenkins.repo
rpm --import http://pkg.jenkins.io/redhat-stable/jenkins.io.key
yum clean all
yum makecache
yum install jenkins -y
yum install安装比较慢,到http://pkg.jenkins-ci.org/redhat-stable/ 中下载指定版本的安装包,再通过
rpm
来安装。
wget https://mirrors.tuna.tsinghua.edu.cn/jenkins/redhat-stable/jenkins-2.164.2-1.1.noarch.rpm
rpm -ivh jenkins-2.164.2-1.1.noarch.rpm
systemctl start jenkins
# 检查Jenkins服务状态
sudo systemctl status jenkins
# 设置为开机自启动
sudo systemctl enable jenkins
# 启动Jenkins服务
sudo systemctl start jenkins
在浏览器中访问
http://
确认是否可以打开Jenkins的Getting Started页面。:8080
如果无法访问,请检查防火墙,安全组等是否开放了端口
选择“Install Suggested Plugins”继续配置Jenkins,等待Jenkins插件安装完成。
正在安装插件…
可以使用admin账号进行登录
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-O6pu9vmF-1582728874063)(https://cdn.nlark.com/yuque/0/2020/png/757992/1582717915397-78d6ecbe-255d-46bc-9e6a-f2cfd8c2d59c.png#align=left&display=inline&height=912&name=image.png&originHeight=912&originWidth=1028&size=142159&status=done&style=none&width=1028)]
至此,jenkins已经安装完成。若在系统管理下有插件未安装成功,可以在 系统管理->插件管理中 进行重新安装。
配置jenkins插件镜像,在系统管理->插件管理->高级 ,配置镜像。
清华大学镜像
https://mirrors.tuna.tsinghua.edu.cn/jenkins/updates/update-center.json
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-42Ym3CoM-1582728874067)(https://cdn.nlark.com/yuque/0/2020/png/757992/1582724928531-918affa4-41d9-40cc-ba8a-b33c1965963f.png#align=left&display=inline&height=524&name=image.png&originHeight=524&originWidth=949&size=42739&status=done&style=none&width=949)]
这里选择node,可以在插件管理中添加NodeJS插件,然后在全局工具配置中添加node配置
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-9p4bebqB-1582728874072)(https://cdn.nlark.com/yuque/0/2020/png/757992/1582725248072-4e4a2116-7469-4f8f-bbb6-8c1c0b12c995.png#align=left&display=inline&height=711&name=image.png&originHeight=711&originWidth=1469&size=66820&status=done&style=none&width=1469)]
如果出现 git fetch origin 或者 权限禁止等错误,是因为Jenkins默认是以用户Jenkins去执行的,可以配置root用户去执行或提高用户Jenkins的权限。
注意: 在正式环境不建议这样做。
打开jenkins配置文件:
vim /etc/sysconfig/jenkins
将原来的jenkins用户修改为 root用户。
$JENKINS_USER="root"
修改Jenkins相关文件夹用户权限,更改jenkins三个文件夹的用户所有都和用户组:
chown -R root:root /var/lib/jenkins
chown -R root:root /var/cache/jenkins
chown -R root:root /var/log/jenkins
重启Jenkins
systemctl restart jenkins
查看Jenkins进程所属用户,若显示为root用户,则表示修改完成。
ps -ef | grep jenkins
可以让项目的每次push都会自动去构建
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-SGVlkCWH-1582728874078)(https://cdn.nlark.com/yuque/0/2020/png/757992/1582727652895-cbd405e4-cffb-4d87-b490-0cc7e187a5e4.png#align=left&display=inline&height=315&name=image.png&originHeight=315&originWidth=1568&size=30035&status=done&style=none&width=1568)]
进入github项目中,点击settings
点击 Add Webhook
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-QDEd55og-1582728874080)(https://cdn.nlark.com/yuque/0/2020/png/757992/1582727891708-e7e21b23-465c-4278-9c4b-0589ab6685fe.png#align=left&display=inline&height=617&name=image.png&originHeight=617&originWidth=880&size=50276&status=done&style=none&width=880)]
并选择pushs事件,然后就可以看到webhook添加成功
最后需要配置Jenkins项目触发的条件,到此刻,Github遇到Push事件时,Jenkins会收到通知,但Jenkins应该做什么呢?此步骤就是做最后的构建的动作。
在任务配置中选择
本地开发环境提交代码到master分支上,然后可以看到Jenkins自动会进行构建
到此,jenkins自动化部署已经全部实现了