1 概述

1.1 背景介绍

华为云部署服务CodeArts Deploy提供可视化、一键式部署服务,支持部署到虚拟机或者容器,提供Tomcat、SpringBoot等模板或者自由组装编排原子步骤进行部署,支持并行部署和流水线无缝集成,实现部署环境标准化和部署过程自动化。

1.2 适用对象

  • 企业
  • 个人开发者
  • 高校学生

1.3 案例时间

本案例总时长预计30分钟。

1.4 案例流程

ScreenShot_20250103104617.PNG

说明:

① 购买云资源并初始化配置
② 初始化配置项目部署和运行环境;
③ 通过CodeArts Deploy服务对镜像服务进行部署;

1.5 资源总览

本案例预计花费总计0.1561元。

资源名称 规格 单价(元) 时长(h)
CodeArts 体验版 免费 0.5
容器镜像服务SWR 免费 免费 0.5
弹性云服务器ECS 1U4G 0.2292元/小时 0.5
弹性公网IP 按带宽计费 0.083元/小时 0.5
虚拟私有云VPC 免费 免费 0.5
网络安全组 免费 免费 0.5

体验完整案例请点这里👉️👉️👉️使用云主机CodeArts IDE进行远程JVM服务调试

2 资源部署环境初始化申请与配置

2.1 前置条件

参考“基于CodeArts Build的项目容器化构建”完成容器镜像在SWR容器镜像服务中的归档。

2.2 配置虚拟私有云VPC

进入华为云首页,在华为云的首页右上方,点击“登录”,在弹出的对话框中输入自己的用户名和密码。

0eb51c2c136a10e8cfc26b352fb42a39.png

在华为云首页,在搜索框中输入“虚拟私有云 VPC”,点击“控制台”进入虚拟私有云控制台页面。

d38d8e71f86ec7036cdc0b953195fb3c.png

选择“北京四”,点击“我的VPC”,然后点击右上角的“创建虚拟私有云”按钮,进入创建虚拟私有云页面,按照下图配置完成虚拟私有云的创建。

0e929886f43104b534a6bf88e2198cfc.png

参考以下配置进行VPC的配置。

配置项 规格
区域 华北-北京四
名称 vpc-DISCUZ(可自定义)
企业项目 default(可选择自己的其他项目,无则不填写)
子网名称 vpc-test(可自定义)
可用区 可用区1

306c4ff5879aeb5530d771773fcd09bc.png

2.3 配置弹性公网IP EIP

浏览器切换到华为云主页,在搜索框中输入“弹性公网IP EIP”,点击下方的“控制台”进入弹性公网IP服务页面。

df82ac3a91e08b7bcbd33ba0fa8379f5.png

点击右上角的“购买弹性公网IP”按钮,进行弹性公网IP的购买。

0b384cb8b9e7d60076d1453874fa4c83.png

参考以下配置完成弹性公网IP创建。

配置项 规格
计费模式 按需计费
区域 华北-北京四
线路 全动态BPG
公网带宽 按带宽计费
带宽大小 1
带宽名称 自定义
弹性公网IP名称 discuz_ip(可自定义)
企业项目 default(可选择自己的其他项目,无则不填写)

2cd063328c2b835fccb30c7ae443128c.png

ffc960a58b9579128dda25e75a3d6e8f.png

2.4 配置安全组

点击“网络控制台”左侧菜单栏的“安全组”,点击右上角“创建安全组”来创建安全组并添加规则。

e97e642b027b640bf381d25230d5a1c1.png

参考以下配置完成安全组的创建。

配置项 规格
区域 华北-北京四
名称 sg-DISCUZ(可自定义)
企业项目 default(可选择自己的其他项目,无则不填写)
入方向规则 22,3389,80,443,8080,8888

174639985bfdc2ba05267ef0bcb95277.png

69141ef59cb2f27d4cd14442c7922cac.png

2.5 购买ECS云主机

浏览器切换到华为云主页,在搜索框中输入“弹性云服务器 ECS”点击“控制台”进入弹性云服务页面。

f53647ae2bab22f3e62e1988560ce054.png

点击右上角的“购买弹性云服务器”。

79195ec9ae4fe2c71e9257c605adefd3.png

参考下列配置进行弹性云服务器ecs-DISCUZ01的购买。

配置项 规格
计费模式 按需计费
区域 华北-北京四
可用区 可用区1
CPU架构 X86计算
实例规格 1vCPUs 4GiB(或者其他相似或以上规格)
镜像 公共镜像-CentOS-centOS7.6(本案例是基于Centos系统实现的,如因Centos下线停止更新导致对后续案例环境有要求的用户可以参考Centos停止维护解决方案 解决。
存储与备份 系统盘:高IO-40GiB 数据盘:新增-高IO-500GiB-数量1-磁盘随实例释放
虚拟私有云 vpc-DISCUZ
主网卡 vpc-test
安全组 sg-DISCUZ
弹性公网IP 使用已有
云服务器名称 ecs-DISCUZ01(可自定义)
登录凭证 密码
密码 自定义
企业项目 default(可选择自己的其他项目,无则不填写)

7651cc2c3a3906930fa5f4bf1bd2626f.png

c4c869e4f8893f08617af69c1a8c154d.png

613528e1eb6bbae59bc85d1d59bab518.png

e574e9717b0bd2f99daca198b02ce87c.png

7ff3daa2e5ddf5bb7a6c986612c1d760.png

6c7e528ccc8bf0fe46cd235d29553744.png

购买成功后,返回ECS主机列表即可查看到购买成功的ECS资源了。

91421af1a76ce3521f4d44d8707d04cb.png

2.6 登录ECS云主机初始化项目数据库

选中我们的ECS云主机,点击后面的“远程登录”。

f7b90dbd4ef2d74ffdfa8c1001a90391.png

选择“VNC登录”。

d0783b39ba99989f22eb1d039d68b6f4.png

登录用户输入:root,然后输入我们的ECS云主机root账号的密码,回车。

92a3ba3180264c64aa30f60a1ce53987.png

登录云主机后,在控制台输入以下命令:

yum install -y git

回车安装git工具,然后输入:

cd /opt

回车,然后输入:

git clone https://gitcode.com/guogaoju/E-Commerce-Java.git

回车,进行数据库初始化脚本下载。

然后在控制台输入以下命令进行mysql数据库的安装:

wget -i -c http://dev.mysql.com/get/mysql57-community-release-el7-10.noarch.rpm
yum -y install mysql57-community-release-el7-10.noarch.rpm
yum -y install mysql-community-server --nogpgcheck
systemctl start mysqld
systemctl enable mysqld

查看MySQL运行状态。

systemctl status mysqld.service

344dab0f1c40ac64fc4a0669bb0defee.png

执行以下命令,获取安装MySQL时自动设置的root用户密码,记录好,后面使用。

grep 'temporary password' /var/log/mysqld.log

执行以下命令,并按照下图回显提示信息进行操作,加固MySQL。

mysql_secure_installation

43c0fa9883ee39a67666ab4b42fd474a.png

72fed2711076f8391b1073b36ff72075.png

2e19a1f97ab2004cda6d4c30fc4ca338.png

执行以下命令,再根据提示输入数据库管理员root账号的密码进入数据库。

mysql -u root -p

1efa31b1da030763d4180706f7d181ae.png

执行以下命令,创建数据库:

create database `e-commerce`;

切换到e-commerce库:

use `e-commerce`;

执行以下初始化脚本:

source /opt/E-Commerce-Java/db_init_test.sql

执行成功后,执行以下查询命令查询数据显示如下即表示数据库初始化完成,输入quit退出。

select * from cart;

c7e1200e74b3f06cda72f4b1d1533ca9.png

3 CodeArts Deploy部署任务配置

3.1 部署环境配置

登录华为云首页,在搜索框中搜索“CodeArts Deploy”,点击“控制台”。

5175a490059fe3164fbe9fcefdba81bd.png

跳转到CodeArts Deploy服务控制台,点击右上角的“立即使用”。

4c9e44aa8261afccfed7ffe24285d44e.png

跳转到CodeArts Deploy服务页面,点击“新建应用”按钮。

8034e63181b79a6285ed973fc1153275.png

自定义填写基本信息,点击“下一步”。

ad21fdae44db874273e65f6c930146fc.png

选择“Docker应用部署-Linux”部署模板,点击“确定”。
44f551b96d8d93321f338bec32af9e4e.png
点击“环境管理”标签,然后点击“新建环境”。
99ca3e49101b989fd51411d88224c3cc.png
输入环境名称,点击“保存”。

e211637caea313e4546ea3d1282b639b.png

然后点击左侧资源列表,点击“导入主机”按钮。

ab5785f9de62b226ef313e72976820a3.png

点击“基础资源管理”。

4a01a2d6819918ab462d21df65eef5e2.png

点击“新建主机集群”按钮。

04ceaf4c4c2d811b556e7b4c306006fc.png

输入集群名称,其他默认,点击“保存”。

508d84f125a0c060da01ec55b1405db4.png

点击“添加或导入主机”按钮。
2d4b6d95018044b7b8e0f0b29bc19e98.png
选择我们2.5申请的ECS云主机,点击“导入”。

ad026eb4935297bdec554fdfa924e36f.png

填写ECS云主机的账号密码,端口填写22,点击“确定”。

0018d95016b014b2c804726ea11852ec.png

显示连通性验证成功,即表示云主机已纳管到CodeArts上了。

bdf850f2260c46da7873653ce4b12f51.png

7fef269c0bac74de5ccb31e2b4d460d3.png

返回环境管理页面,点击“刷新”图标,即可看到已纳管的云主机,选中云主机,点击“导入”按钮。

ef2e39099645edcd58d80bec7c250965.png

即可查看到云主机已纳入了部署环境中。

0902aa47e013c9ca9251e045133cab27.png

返回部署任务中,点击“参数设置”页签,host_group参数是应用所部署的主机集群,即选择我们刚刚创建的部署环境docker,image_url是镜像地址,获取请参考 4 附录:4.1 获取SWR容器镜像地址。

2ce927b34b27fe15db7b8013a1a335b3.png

点击“部署步骤”页签,安装Docker任务根据下图进行配置。注意:docker版本选择docker-18.03.0。

ef41930146dacfabf9082af8adc7df5b.png

登录Docker镜像仓,其他参数默认,镜像仓点击“新建”。

d40e71d2bc726d9c8e4aa95c072ef3bf.png

连接名称自定义,仓库参数,请参考 4 附录:4.2 获取SWR仓库参数。

dd1e6982caf5085f518e9bfb0244ac7a.png

镜像仓配置完之后,剩下的任务默认无需修改,直接点击右上角的“保存并部署”。

6de37eaa1ced267a199c09569ec413ed.png

点击“确定”按钮,即可开始镜像任务的部署。

ca2ccc9168b22fb843653b28ad560682.png

查看任务部署成功,即表示镜像已成功部署到ECS云主机上了。

4e5e3d1efddec20545c8e6619b4d7461.png

3.2 登录ECS云主机查看电商项目后端是否成功启动

登录华为云首页,在搜索框中输入“弹性云服务器 ECS”,点击“控制台”进入弹性云服务页面。
f53647ae2bab22f3e62e1988560ce054.png

选中我们的ECS云主机,点击后面的“远程登录”。

f7b90dbd4ef2d74ffdfa8c1001a90391.png

选择“VNC登录”。

d0783b39ba99989f22eb1d039d68b6f4.png

登录用户输入:root,然后输入我们的ECS云主机root账号的密码,回车。
92a3ba3180264c64aa30f60a1ce53987.png

登录云主机后,在控制台输入以下命令查看启动的docker镜像信息:

docker ps -a

回车,即可查看到启动的docker信息。
7642732657de2b069765fe0dfdcaabfa.png

然后输入以下命令查看docker启动日志:

docker logs 容器ID

将容器ID替换,然后输入命令,回车,即可看到服务已正常启动了。

99759f72f936a373a8ed6cb145422f81.png

至此,基于CodeArts Deploy的容器化部署最佳实践全部结束。

4 附录

4.1 获取SWR容器镜像地址

登录华为云首页,在控制台输入“容器镜像服务SWR”点击控制台登录容器镜像服务SWR控制台。
062e093e157e9349e9a69a85202410b0.png

选择“北京四”,然后点击左侧的“我的镜像”,点击我们的电商项目镜像。

27551ee53ae6e049ead391ee416a6b8b.png

复制我们某一版本的下载指令。

d46d2165c9e7043d0bcff83f17cf489c.png

docker pull swr.cn-north-4.myhuaweicloud.com/xxx/e_commerce_java:v1.5

其中docker pull后面的即为SWR的容器镜像地址。

2ce927b34b27fe15db7b8013a1a335b3.png

4.2 获取SWR仓库参数

登录华为云首页,在控制台输入“容器镜像服务SWR”点击控制台登录容器镜像服务SWR控制台。
062e093e157e9349e9a69a85202410b0.png
选择“北京四”,然后点击右上角的“登录命令”按钮。

ScreenShot_20250103112510.PNG

点击“复制”图标复制命令。
70c36ac06a52c66faa9f688dd60f17a6.png
其中,-u后面是“用户名”,-p后面是“密码”,swr.cn-north-4.myhuaweicloud.com是仓库地址,注意地址前面需要加上“https://”前缀。

docker login 
-u cn-north-4@XXX 
-p XXX 
swr.cn-north-4.myhuaweicloud.com

dd1e6982caf5085f518e9bfb0244ac7a.png

Logo

华为开发者空间,是为全球开发者打造的专属开发空间,汇聚了华为优质开发资源及工具,致力于让每一位开发者拥有一台云主机,基于华为根生态开发、创新。

更多推荐