当前位置: 首页 > article >正文

Jenkins自动化部署(虚拟机部署)

文章目录

  • 一、持续集成和持续交付
  • 二、自动化部署流程
  • 三、虚拟机安装
  • 四、安装Jenkins环境
    • 4.1.安装java环境
    • 4.2. 安装Jenkins
    • 4.3.Jenkins配置
  • 五、nginx安装和配置
    • 5.1. 安装nginx
    • 5.2.通过Linux命令创建文件夹和文件:
    • 5.3. 配置nginx
  • 六、将代码上传到Git仓库
  • 七、Jenkins新建任务


如果存在服务器,就不需要看虚拟机的创建,直接从第四部分看起

自动化部署一般都是部署到云服务器上,但是为想了解如何实现自动化部署如何实现又不想去花钱购买云服务器,我选择在部署在虚拟机上。

一、持续集成和持续交付

伴随着DevOps一起出现的两个词就是持续集成和持续交付(部署):

  • CI是Continuous Integration(持续集成);
  • CD是两种翻译:Continuous Delivery(持续交付)或Continuous Deployment(持续部署);

持续集成CI:
在这里插入图片描述
持续交付和持续部署:
在这里插入图片描述
在这里插入图片描述


二、自动化部署流程

在这里插入图片描述


三、虚拟机安装

步骤一:
在这里插入图片描述
步骤二:
在这里插入图片描述
步骤三:
在这里插入图片描述
步骤四:
注意:我这里选择安装centOS 8,因为centOS8自带了dnf模块,后续安装java等比较方便
在这里插入图片描述
步骤五:
在这里插入图片描述
步骤六:
自己根据自己的电脑状况进行选择
在这里插入图片描述
步骤七:
这里内存尽量不要太少,后续node下载项目依赖可能会报错
在这里插入图片描述
步骤八:
在这里插入图片描述
步骤九:
在这里插入图片描述
步骤十:
在这里插入图片描述
步骤十一:
在这里插入图片描述
步骤十二:
在这里插入图片描述
步骤十三:
在这里插入图片描述
步骤十四:
可以看这篇帖子:帖子
镜像下载地址:镜像链接,自己可以根据情况选择其他镜像在这里插入图片描述

在这里插入图片描述
在这里插入图片描述
步骤十五:
开启虚拟机,选择对应的语言
在这里插入图片描述
步骤十六:
点击“时间和日期”
在这里插入图片描述
步骤十七:
点击“安装源”
http://mirrors.aliyun.com/centos/8/BaseOS/x86_64/os/
在这里插入图片描述
步骤十八:
点击“软件选择”
在这里插入图片描述

步骤十九:
点击“网络和主机名”

在这里插入图片描述
步骤二十:
自己设置root密码和创建一个用户或者不创建用户
在这里插入图片描述
点击开始安装


四、安装Jenkins环境

可以通过Xshell连接虚拟机,我觉得Xshell敲命令比较舒服。通过ip addr命令查看虚拟机ip

4.1.安装java环境

Jenkins本身是依赖Java的,所以我们需要先安装Java环境:
提示:之前我安装的是java1.8的环境,后来报错说版本太低了需要11版本以上的

  • 这里我安装了Java11的环境
dnf search java-11
dnf install java-11-openjdk.x86_64

在这里插入图片描述
同意并安装

注意:如何使用dnf命令报错错误:为仓库 'appstream' 下载元数据失败 : Cannot prepare internal mirrorlist: No URLs in mirrorlist
使用这两条命令具体文章
sed -i -e “s|mirrorlist=|#mirrorlist=|g” /etc/yum.repos.d/CentOS-*
sed -i -e “s|#baseurl=http://mirror.centos.org|baseurl=http://vault.centos.org|g” /etc/yum.repos.d/CentOS-*

4.2. 安装Jenkins

因为Jenkins本身是没有在dnf的软件仓库包中的,所以我们需要连接Jenkins仓库:

  • wget是Linux中下载文件的一个工具,-O表示输出到某个文件夹并且命名为什么文件;如果没有找到wget命名需要yum工具下载它
    在这里插入图片描述

  • rpm:全称为The RPM Package Manage,是Linux下一个软件包管理器;

# 需要将文件放到/etc/yum.repos.d/目录下面,如何没有通过mv命令移动到改目录
wget –O /etc/yum.repos.d/jenkins.repo http://pkg.jenkins-ci.org/redhat-stable/jenkins.repo
# 下载完之后使用ls命令发现jenkins.repo没有在/etc/yum.repos.d/目录下
# 而是在执行命令目录的目录下,所以需要执行mv移到指定目录下
mv jenkins.repo /etc/yum.repos.d/

# 导入GPG密钥以确保您的软件合法
rpm --import https://pkg.jenkins.io/redhat-stable/jenkins.io-2023.key

在这里插入图片描述

编辑一下文件/etc/yum.repos.d/jenkins.repo

  • 可以通过vim或vi编辑,按i开始编辑,Esc->Shift+冒号->wq保存并退出;
  • 配置文件内容和下方一样
[jenkins]
name=Jenkins-stable
baseurl=http://pkg.jenkins.io/redhat
gpgcheck=1

安装Jenkins

dnf install jenkins # --nogpgcheck(可以不加)

如果安装Jenkins安装失败,包这个错误需要将公钥升级
在这里插入图片描述
启动Jenkins的服务:

systemctl start jenkins
systemctl status jenkins
# 操作系统重启自动会启动Jenkins服务
systemctl enable jenkins

4.3.Jenkins配置

Jenkins默认使用8080端口提供服务,需要在虚拟机中将8080端口开放:ip:8080在浏览器中打开图形化界面
如果是服务器的话,需要将8080加入到安全组中
注意:如果想通过ifconfig查看ip需要yum -y install net-tools.x86_64下载改工具

# 开放8080端口
firewall-cmd --zone=public --add-port=8080/tcp --permanent
# 重启防火墙
firewall-cmd --reload
# 查看ip地址
ifconfigip addr
# 假如你的地址是192.168.18.129
# 那么在你的本地上运行 192.168.18.129:8080即可看到jenkins
  • 成功界面
# 查看密码
cat /var/lib/jenkins/secrets/initialAdminPassword

在这里插入图片描述

  • 安装插件
    在这里插入图片描述
  • 创建管理员用户
    在这里插入图片描述
    然后一直确定就行,如何使用自己创建的管理员用户进行登录

五、nginx安装和配置

5.1. 安装nginx

后续我们部署会使用nginx,所以需要先安装一下nginx:

dnf install nginx

启动nginx:

systemctl start nginx
systemctl status nginx
systemctl enable nginx
# 开放8080端口
firewall-cmd --zone=public --add-port=80/tcp --permanent
# 重启防火墙
firewall-cmd --reload
# 查看ip地址
ifconfigip addr
# 假如你的地址是192.168.18.129
# 那么在你的本地上运行 192.168.18.129:80即可看到nginx
  • nginx启动页面
    在这里插入图片描述
    其实我们是访问的 /usr/share/nginx/html目录下的index.html

5.2.通过Linux命令创建文件夹和文件:

mkdir /root/mall_cms
cd /root/mall_cms
touch index.html
vi index.html

index.html中的内容

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Hi Nginx</title>
</head>
<body>
    <h1>Hi Nginx</h1>
</body>
</html>

5.3. 配置nginx

我们这里主要配置nginx的用户和默认访问目录:

配置用户:

vi /etc/nginx/nginx.conf
  • 将第五行的user nginx;改为user root;
  • 将这个代码用#号注释掉 root /usr/share/nginx/html;改为# root /usr/share/nginx/html;
  • 配置location /{}
    在这里插入图片描述
    在这里插入图片描述
# 改了nginx配置需要重启
systemctl restart nginx

发现nginx页面报403

# 修改配置文件 /etc/ selinux/config,将selinux=enforcing改为selinux=disabled
vi /etc/selinux/config

在这里插入图片描述
注意:修改配置文件需要重启系统 reboot
页面就出来了;
因此我们只需要将我们git仓库中的项目打包的dis文件下面的文件放到mall_cms下代替原来的index.html就行了;只不过这个替换过程是Jenkins自动化来处理的。仓库中的代码是过程git完成的,
在这里插入图片描述

六、将代码上传到Git仓库

将自己本地的代码上传到git仓库上就不做演示了可以看这篇文章

七、Jenkins新建任务

第一步
在这里插入图片描述
第二步:输入一个任务名称并选择Freestyle project按确定
在这里插入图片描述
第三步:添加描述
在这里插入图片描述

第四步:

  • 因为Jenkins需要用git进行源码管理,所以需要在虚拟机安装git
# 安装git
dnf install git

第五步:拿到该链接并放到“Repository URL存储库 URL”中,然后并点击添加
在这里插入图片描述
在这里插入图片描述
这里密码需要注意,密码为gitee中设置->私人命牌->生成新令牌放到密码处点击确认
在这里插入图片描述

在这里插入图片描述
在Credentials 凭据处选中刚添加的
在这里插入图片描述
第六步:指定分支
在这里插入图片描述
第七步:构建触发器
构建触发器:

这里的触发器规则是这样的:

  • 定时字符串从左往右分别是:分 时 日 月 周
#每半小时构建一次OR每半小时检查一次远程代码分支,有更新则构建
H/30 * * * *

#每两小时构建一次OR每两小时检查一次远程代码分支,有更新则构建
H H/2 * * *

#每天凌晨两点定时构建
H 2 * * *

#每月15号执行构建
H H 15 * *

#工作日,上午9点整执行
H 9 * * 1-5

#每周1,3,5,从8:30开始,截止19:30,每4小时30分构建一次
H/30 8-20/4 * * 1,3,5

我们这里选择定时构建
在这里插入图片描述

H 9 * * *

第八步:构建环境
因为我们需要对项目打包等操作,需要使用node的环境,这里没有选择node.js的构建环境,所有需要去添加node.js的环境

  • 先点击保存
  • 点击Jenkins回到首页->点击Manage Jenkins->选择Plugins
    在这里插入图片描述
    在这里插入图片描述
    等待安装好,安装完后勾选下面的重启并重新进
  • 选择nodejs版本
    在这里插入图片描述
  • 先在自己电脑使用cmd查看本机node版本,建议node版本选择和本机一样的
    在这里插入图片描述
    在这里插入图片描述
  • 添加node环境
    点击去之后选择左侧的配置
    在这里插入图片描述
    选择构造环境中的Provide Node & npm bin/ folder to PATH,使用我刚添加的node16版本的
    在这里插入图片描述
    第九步:执行shell脚本
    在这里插入图片描述
    在这里插入图片描述
pwd
node -v
npm -v
npm install
npm run build
echo '构建完成'
ls
rm -rf /root/mall_cms/* 
cp -rf ./dist/* /root/mall_cms/

然后点击保存
第十步:修改权限
我们后面会访问centos中的某些文件夹,默认Jenkins使用的用户是 jenkins,可能会没有访问权限,所以我们需要修改一下它的用户:
修改 systemctl 启动服务时候,是使用的jenkins用户,改为root

vi /usr/lib/systemd/system/jenkins.service

在这里插入图片描述

# 使用find命名进行查找jenkins
find / -name "jenkins"

chown -R root:root /var/lib/jenkins
chown -R root:root /var/log/jenkins
chown -R root:root /var/cache/jenkins

将var目录下的文件修改权限
在这里插入图片描述

chown -R root:root /var/lib/jenkins
chown -R root:root /var/cache/jenkins

之后需要重启一下

reboot

然后选择构建

在这里插入图片描述

然后可以查看具体输出信息
在这里插入图片描述
构建成功
在这里插入图片描述
现在你的80端口变为了你的项目
在这里插入图片描述


http://www.kler.cn/news/135891.html

相关文章:

  • openssl + 3DES开发实例(linux)
  • Android Studio常见问题
  • redis 非关系型数据库
  • 每天一道算法题(七)——求一个数组中最多能存储多少雨水(困难)
  • 车牌识别 支持12种中文车牌类型 车牌数据集下载
  • 多参数训练Isolation Forest
  • Python---函数的嵌套(一个函数里面又调用了另外一个函数)
  • Asp.net MVC Api项目搭建
  • GitHub如何删除仓库
  • 支付宝沙箱支付
  • Unity中Shader矩阵的逆矩阵
  • openfeign、nacos获取接口提供方真实IP
  • new/delete 和malloc/free的区别
  • uni-app 使用vscode开发uni-app
  • 接口自动化和UI自动化的区别
  • 实现CAS自旋锁
  • 工程项目立项需要做哪些准备?
  • 视频转码方法:多种格式视频批量转FLV视频的技巧
  • 【Linux网络】详解使用http和ftp搭建yum仓库,以及yum网络源优化
  • git常用命令和参数有哪些?【git看这一篇就够了】
  • 【开题报告】基于SpringBoot的网上摄影工作室的设计与实现
  • 前端面试考核点【更持续新中】
  • 根据nginx日志统计页面访问次数
  • 指针变量和地址
  • 11.1 文件拷贝移动与删除
  • 【Java】异常处理(一)
  • K8S基础笔记
  • 极域电子教室-教师机无法找到学生机
  • ArcEngine:如何进行缩放图层、属性信息显示、状态栏显示?
  • 关于这个“这是B站目前讲的最好的【Transformer实战】教程!“视频的目前可以运行的源代码GPU版本