Jenkins自动化部署最全面教程

Jenkins自动化部署最全面教程

Jenkins是什么?

Jenkins是一个开源的、提供友好操作界面的持续集成(CI)工具,起源于Hudson(Hudson是商用的),主要用于持续、自动的构建/测试软件项目、监控外部任务的运行。Jenkins用Java语言编写,可在Tomcat等流行的servlet容器中运行,也可独立运行。通常与版本管理工具(SCM)、构建工具结合使用。常用的版本控制工具有SVN、GIT,构建工具有Maven、Ant、Gradle。

下面是详细的安装教程,本例基于centos7操作系统。

安装java

yum install -y java-1.8.0-openjdk

查看java是否安装成功

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)

添加Jenkins repo

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

更新Jenkins repo cache

yum clean all
yum makecache

安装Jenkins

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

启动Jenkins

systemctl start jenkins

# 检查Jenkins服务状态
sudo systemctl status jenkins
# 设置为开机自启动
sudo systemctl enable jenkins
# 启动Jenkins服务
sudo systemctl start jenkins

在浏览器中访问http://<jenkins_host_ip>:8080确认是否可以打开Jenkins的Getting Started页面。

如果无法访问,请检查防火墙,安全组等是否开放了端口

配置Jenkins

选择“Install Suggested Plugins”继续配置Jenkins,等待Jenkins插件安装完成。

image.png

正在安装插件…

image.png
可以使用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)]

image.png
image.png

至此,jenkins已经安装完成。若在系统管理下有插件未安装成功,可以在 系统管理->插件管理中 进行重新安装。
image.png
配置jenkins插件镜像,在系统管理->插件管理->高级 ,配置镜像。

清华大学镜像

https://mirrors.tuna.tsinghua.edu.cn/jenkins/updates/update-center.json

image.png

使用Jenkins构建项目

新建任务

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(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)]

image.png

配置git作为源码管理

image.png

配置git用户名和密码

image.png

选择构建环境

这里选择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)]

构建执行步骤

选择执行shell
image.png
然后配置构建命令
image.png

立即构建

image.png

如果出现 git fetch origin 或者 权限禁止等错误,是因为Jenkins默认是以用户Jenkins去执行的,可以配置root用户去执行或提高用户Jenkins的权限。

修改Jenkins以root用户运行

注意: 在正式环境不建议这样做。

打开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

Jenkins和Github配置Webhook

可以让项目的每次push都会自动去构建

配置Jenkins webhook

image.png

image.png

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(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 webhook

进入github项目中,点击settings
image.png
点击 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添加成功
image.png

配置Jenkins项目

最后需要配置Jenkins项目触发的条件,到此刻,Github遇到Push事件时,Jenkins会收到通知,但Jenkins应该做什么呢?此步骤就是做最后的构建的动作。
在任务配置中选择
image.png

测试

本地开发环境提交代码到master分支上,然后可以看到Jenkins自动会进行构建
image.png
到此,jenkins自动化部署已经全部实现了

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章