Jenkins项目发布
[TOC]
前言
- 随着软件开发需求及复杂度的不断提高,团队开发成员之间如何更好的协同工作以确保软件开发的质量已经慢慢成为开发过程各种不可回避的问题。Jenkins自动化部署可以解决集成、测试、部署等重复性的工作,工具集成的效率明显高于人工操作;并且持续集成可以更早的获取代码变更的信息,从而更早的进入测试阶段,更早的发现问题,这样解决问题的成本就会显著下降;持续集成缩短了从开发、集成、测试、部署各个环节的时间,从而也就缩短了中间出现的等待时间;持续集成也意味着开发、测试、部署得以持续。所以当配置完Jenkins持续集成持续交付环境后,可以把发布的任务交给集成服务器去打理了。使用Maven(Ant)等来实现自动化构建发布部署。这些工具可以帮助在构建过程中实现自动化发布、回滚等工作。
- 本次课程我们来学习Jenkins代码发布的各个基础操作,为Jenkins的更高阶学习提供基础
拓扑图
资源列表
操作系统 | 主机名 | 配置 | IP |
---|---|---|---|
CentOS 7.9 | jenkins | 2C4G | 192.168.93.101 |
CentOS 7.9 | gitlab | 2C4G | 192.168.93.102 |
CentOS 7.9 | web01 | 2C4G | 192.168.93.103 |
CentOS 7.9 | web02 | 2C4G | 192.168.93.104 |
CentOS 7.9 | dev | 2C4G | 192.168.93.105 |
基础环境
- 关闭防火墙
systemctl stop firewalld
systemctl disable firewalld
- 关闭selinux
setenforce 0
sed -i "s/.*SELINUX=.*/SELINUX=disabled/g" /etc/selinux/config
- 修改主机名
hostnamectl set-hostname jenkins
hostnamectl set-hostname gitlab
hostnamectl set-hostname web01
hostnamectl set-hostname web02
hostnamectl set-hostname dev
一、Jenkins发布静态网站
1.1、项目介绍
- 本案例部署了一个简单的静态网站,通过此操作过程,主要掌握代码发布的基本流程,以及在这个过程中我们需要 注意的重点环节,也就是掌握Jenkins项目发布的入门级操作。在这些操作中,进一步学习Jenkins持续集成、持续部署流程。
1.2、部署Web
- 两台web节点都要操作
yum -y install httpd
systemctl start httpd
systemctl enable httpd
1.3、准备gitlab
- 在gitlab节点操作
[root@gitlab ~]# cat > /etc/yum.repos.d/gitlab-ce.repo << 'EOF'
[gitlab-ce]
name=gitlab-ce
baseurl=http://mirrors.tuna.tsinghua.edu.cn/gitlab-ce/yum/el7
repo_gpgcheck=0
gpgcheck=0
enabled=1
gpgkey=https://packages.gitlab.com/gpg.key
EOF
[root@gitlab ~]# yum -y install gitlab-ce-16.7.0-ce.0.el7
1.4、配置gitlab
[root@gitlab ~]# vim /etc/gitlab/gitlab.rb
# IP地址替换为自己的IP地址,然后保存退出即可
external_url 'http://192.168.93.102'
# 加载gitlab
[root@gitlab ~]# gitlab-ctl reconfigure
# 查看密码,然后更改密码,此次省略
[root@gitlab ~]# grep "Password:" /etc/gitlab/initial_root_password
1.5、创建项目
- 访问gitlab地址:http://192.168.93.102
1.6、推送代码
- dev节点操作
# 安装git命令
[root@dev ~]# yum -y install git
# 解压源代码
[root@dev ~]# tar -zxvf BlueLight.git.tar.gz
# 拉取代码 仓库
[root@dev ~]# git clone http://192.168.93.102/root/demo.git
# 复制源代码到代码仓库
[root@dev ~]# mv -f BlueLight/* demo/
[root@dev ~]# cd demo/
# 往main分支进行第一次推送
[root@dev demo]# git config --global user.email "you@example.com"
[root@dev demo]# git config --global user.name "Your Name"
[root@dev demo]# git add .
[root@dev demo]# git commit -m "first commit"
[root@dev demo]# git push -u origin main
# 设置一个tag为v1.0并且推送
# v1.0没有index.html页面
[root@dev demo]# git tag v1.0
[root@dev demo]# git push -u origin v1.0
# 设置一个tag为v2.0并且推送
# v2.0没有index.html页面
[root@dev demo]# cp bl-first-index.html index.html
[root@dev demo]# git add .
[root@dev demo]# git commit -m "first v2.0"
[root@dev demo]# git tag v2.0
[root@dev demo]# git push -u origin v2.0
二、Jenkins中创建gitlab凭据
2.1、创建凭据
- 详细步骤省略
2.2、在Jenkins中添加远程主机
- “Manage Jenkins”——>“System”——>“Publish over SSH”,点击SSH Servers的新增按钮。须填写的信息如下:
- Name:为远程主机的起的名字
- Hostname:远程主机的IP地址或域名
- Username:远程主机的登录账号
- Remote Directory:远程同步路径(如果要拷贝文件,此处添加远程主机接口文件的目录)
- 点击高级按钮,并勾选“Use password authentication,or use different key”
- 在Passphrase/Password中输入密码
- 其他保持默认,并点击test按钮进行连接测试,测试结果为Success表示参数设置成功
- 最后保存设置
- 可以用同样的方式添加更多的主机
2.3、获取gitlab项目的URL地址
2.4、在Jenkins中创建webtest项目
2.5、配置源码管理
- 在源码管理中选择Git,并且把gitlab中获取的仓库URL填写进去。注意在“指定分支”的地方,将分支名称修改为“*/main”。在git中我们创建一个新项目的时候,项目的分支由早期的“master”,修改为现在的“main“,使用的时候注意这个变化。
[root@jenkins ~]# yum -y install git