项目打包和自动化部署

项目部署和DevOps

传统的开发模式

在传统的开发模式中,开发的整个过程是按部就班就行:

但是这种模式存在很大的弊端:

  • 工作的不协调:开发人员在开发阶段,测试和运维人员其实是处于等待的状态。等到测试阶段,开发人员等待测试反馈 bug,也会处于等待状态
  • 线上 bug 的隐患:项目准备交付时,突然出现了 bug,所有人员需要加班、等待问题的处理

DevOps开发模式

DevOps 是Development 和 Operations 两个词的结合,将开发和运维结合起来的模式:

打开格局

img

持续集成和持续交付

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

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

持续集成 CI:

  • 开发人员编写代码上传到代码仓库,让持续集成的服务器立马对代码进行构建,对其进行测试,如果结果有问题直接反馈开发人员
  • 不过这个都处理完结果是没有进行部署的,所有还有一个概念是持续交付

持续集成

img

持续交付和持续部署 CD:

  • 把项目交给项目经理,项目经理对其进行部署,可能是自动化部署也可能是手动化部署
  • 在持续集成基础上会再进行一些测试,测试没有问题会打一个 release 版本

持续交付

img

持续部署

img

自动化部署流程

img

KubeSphere

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-vwxR2cQB-1667207188389)(E:\learn\lagouBigFront\md\Vue3\img\image-20221028144350887.png)]

搭建服务器环境

Jenkins 自动化部署

安装 Jenkins

安装 Java 环境

Jenkins 本身是依赖 Java 的,所以我们需要先安装 Java 环境:

  • 这里我安装了 Java1.8 的环境
$ dnf search java-1.8
$ dnf install java-1.8.0-openjdk.x86_64

安装 Jenkins

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

  • wget 是 Linux 中下载文件的一个工具,-O 表示输出到某个文件夹并且命名为什么文件
  • rpm:全称为 The RPM Package Manage,是 Linux 下一个软件包管理器
$ wget –O /etc/yum.repos.d/jenkins.repo http://pkg.jenkins-ci.org/redhat-stable/jenkins.repo

# 导入GPG密钥以确保您的软件合法
$ rpm --import https://pkg.jenkins.io/redhat/jenkins.io.key
# 或者
$ rpm --import http://pkg.jenkins-ci.org/redhat/jenkins-ci.org.key

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

  • 可以通过 vim 编辑
$ vim /etc/yum.repos.d/jenkins.repo
[jenkins]
name=Jenkins-stable
baseurl=http://pkg.jenkins.io/redhat
gpgcheck=1

安装 Jenkins

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

启动 Jenkins 的服务:

$ systemctl start jenkins
$ systemctl status jenkins
$ systemctl enable jenkins

Jenkins 默认使用 8080 端口提供服务,所以需要加入到安全组中:

img

Jenkins 用户

我们后面会访问 Centos 中的某些文件夹,默认 Jenkins 使用的用户是 jenkins,可能会没有访问权限,所以我们需要修改一下它的用户:

$ vim /etc/sysconfig/jenkins
JENKINS_USER="root"

# 重启 Jenkins
$ systemctl restart jenkins

Jenkins 配置

获取输入管理员密码:

cat /var/lib/jenkins/secrets/initialAdminPassword

可以安装推荐的插件:

安装推荐的插件

Jenkins 任务

新建任务:

image-20221031160515414

任务名称输入

image-20221031160628046

配置项目和保留策略:

image-20221031160822883

源码管理:

$ dnf install git

image-20221031161031506

添加认证可以先试试 Username with password

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-1h94KCcB-1667207188403)(E:\learn\lagouBigFront\md\Vue3\img\image-20221031161921397.png)]

  • 如果密码不行需要使用 GitLab 个人令牌

    记得勾选 范围

image-20221031161639876

构建触发器:

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

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

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

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

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

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

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

image-20221031165157975

构建环境:

注意:我们需要搭建 Node 的环境

  • 第一步:配置 Node 的环境
  • 第二步:安装 Node 的插件

image-20221031165523063

第一步:安装 Node 的插件

image-20221031165737930

第二步:安装指定的 Node 版本

image-20221031170036357

第三步:配置 Node 环境

node环境

构建执行的任务:

  • 查看 Node 的版本等是否有问题
  • 执行 npm install 安装项目的依赖
  • 移除原来 mall_cms 文件的所有内容
  • 将打包的 dist 文件夹内容移动到 mall_cms 文件夹

执行构建任务

pwd
node -v
npm -v

npm install 
npm run build

pwd
echo '构建成功'
ls

# 删除/root/mall_cms文件夹里所有的内容
rm -rf /root/mall_cms/* 

cp -rf ./dist/* /root/mall_cms/

nginx 安装和配置

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

$ dnf install nginx

启动 nginx:

$ systemctl start nginx
$ systemctl status nginx
$ systemctl enable nginx

配置 nginx

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

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

$ vi index.html

配置 nginx 访问目录:

# user nginx;
user root;

server {
  location / {
    root /root/mal_cms;
    index index.html;
  }
}
  • 1
    点赞
  • 11
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值