【华为云-开发者专属集市】DevCloud+ECS、MySQL搭建WordPress
创始人
2024-06-02 11:12:39
0

文章目录

    • AppBazaar官网
    • 选择与购买项目
    • 项目概况
    • 操作过程
      • 购买DevCloud服务
      • 创建项目
      • 添加制品库
      • 应用部署
        • 购买ECS
        • 添加部署模板并执行任务
        • 故障排除
        • 安装及访问WordPress
        • 登录网站管理后台
        • 访问网站
        • 完善部署模板
      • 资源释放
      • 使用总结


AppBazaar官网

首先,我们来到AppBazaar的官网:https://console.huaweicloud.com/appbazaar/home

image-20221120110457554.png

AppBazaar现有16个项目,含括了工作中常用的服务架构。我们可在这里选择自己感兴趣的项目或者想要了解的项目来进行玩耍,正如官方的宣言:一键部署,构建应用无负担

那究竟要如何玩耍呢?


选择与购买项目

首先登录平台,如果没有华为云账号,得先注册账号,实名认证后再继续。

然后点选所需的项目进入购买页面。

image-20221120112402324.png

然后点击 立即购买(PS:现在可是免费呢,而且还是终身的,快去体验啦😘)

image-20221120112439384.png

点选 用户协议 就可以 提交订单

image-20221120113738717.png

然后就是明确金额和点击 确认付款 之后就会提示订单支付成功。

image-20221120114009672.png

image-20221120114317120.png

购买成功后,可以前往买家中心,在此处可查看到所购买的项目,然后就可以去下载对应的文档来进行参考与学习了。

image-20221120114818418.png

所下载的文档如下图所示,包含了这个项目的上云指导和操作指导。

image-20221120120003535.png

接下来,就可以去尝试和体验了,心动不如行动!那就让金鱼哥来做先锋队。


项目概况

项目名称:WordPress

项目简介:WordPress是一款个人博客系统,也可以把 WordPress当作一个内容管理系统(CMS)来使用,它是使用php语言和MySQL数据库开发的,用户可以在支持 php 和 MySQL数据库的服务器上使用自己的博客。

开发语言:php

应用运行环境:CentOS、Nginx、php、MySQL

涉及云服务:弹性云服务器 ECS、DevCloud


是不是听到了一个新的名词:DevCloud,那DevCloud究竟是什么呢?DevCloud是一个软件开发平台,是一站式、全流程、安全可信的云原生DevSecOps平台,提供项目管理、代码托管、流水线、代码检查、编译构建、部署、测试、制品仓库等服务,助力质量提升和效率倍增。

而这次项目部署需要使用到ECS和DevCloud平台。

如果想详细了解DevCloud平台的情况,可到官网进行了解:https://support.huaweicloud.com/devcloud/index.html

image-20221120202452542.png

image-20221122221427726.png


操作过程

购买DevCloud服务

登录华为云后,按 产品-开发与运维-软件开发平台DevCloud 路径后,即可进入华为云DevCloud平台首页。

image-20221120171138143.png

点击管理控制台按钮,进入DevCloud项目列表。

image-20221120171223183.png

金鱼哥所在城市是广州,因此将区域切换到 华南-广州
因服务还未开通,所以会有相关提示,例如是否使用新主题,金鱼哥要做先锋队,那就选择使用新主题。

image-20221120171537302.png

个人使用选择 基础版 并点击 免费开通 跳转到产品选择页面。

image-20221120171716450.png

image-20221120171803228.png

明确相关条款后选择 下一步

image-20221120174323813.png

明确要购买的产品服务即可去支付确认付款

image-20221120174402037.png

image-20221120174422186.png


创建项目

购买成功后即可从DevCloud平台首页进入管理控制台

image-20221120201835956.png

或者从用户控制台中去选择对应的服务也可进入到DevCloud平台的控制台。

image-20221120201939791.png


在控制台中点击立即使用

image-20221120202347441.png

点击新建项目进入到项目创建页面。

image-20221120202640197.png

在新建项目页,按如下参数配置项目:
项目流程:Scrum
项目名称:自定义(如:wordpress)
点击确定按钮完成项目创建

image-20221120202807109.png

image-20221120203833360.png

image-20221120203731716.png


添加制品库

在本地电脑中新建txt文档并重命名为docker-compose.wordpress.yml,或者直接使用Markdown之类的软件创建文件。
复制以下内容至docker-compose.wordpress.yml文件中。
若是在正式应用环境,需要根据实际情况将以下password、user等相关信息进行修改。

version: "3"
services:db:image: mysql:8.0command:- --default_authentication_plugin=mysql_native_password- --character-set-server=utf8mb4- --collation-server=utf8mb4_unicode_civolumes:- db_data:/var/lib/mysqlrestart: alwaysenvironment:MYSQL_ROOT_PASSWORD: somewordpressMYSQL_DATABASE: wordpressMYSQL_USER: wordpressMYSQL_PASSWORD: wordpresswordpress:depends_on:- dbimage: wordpress:latestports:- "8000:80"restart: alwaysenvironment:WORDPRESS_DB_HOST: db:3306WORDPRESS_DB_USER: wordpressWORDPRESS_DB_PASSWORD: wordpressvolumes:db_data:

注意:Yaml文件有格式要求,注意配置项前面的空格和层级的对齐。


将文件上传至制品库中。

image-20221120211321878.png

image-20221120211503951.png


应用部署

购买ECS

应用需要部署到服务器上,因此需要购买一台ECS,再将应用部署上去。
在项目页面中,选择 通用设置 进入通用设置页面。
选择 主机组管理 ,点击 新建主机组 按钮。

image-20221120211749094.png

输入主机组名称(如:Linux_Group),点击保存按钮完成主机组创建。

image-20221120211841790.png

自动跳转到主机信息页面,点击导入ECS按钮。

image-20221120212053606.png


由于还未创建ECS,点击ECS控制台按钮,进入ECS控制台。

image-20221120212141400.png

点击购买弹性云服务器按钮。
image-20221120212313446.png

基础配置 步骤,按如下配置:
计费模式:按需计费
区域:华南-广州(与DevCloud项目所在区域保持一致)
可用区:随机分配
CPU架构:x86计算
规格:S6.small.1(可通过1vCPU,1GB进行搜索过滤,实际项目根据实际情况选择)
镜像:公共镜像CentOS 7.9 64bit(40GB)
系统盘:高I/O

image-20221120213649476.png

image-20221120213804844.png

点击下一步:网络配置按钮

在网络配置页按如下配置对应参数:
网络:vpc-default/subnet-default
安全组:自定义(如果安全组入向规则里没有TCP: 22和TCP:8383端口,需要点击新建安全组按钮,
进入对应安全组,配置入方向规则TCP: 22和TCP:8383端口)

image-20221120220345219.png

创建一个新的安全组或者可使用在用的安全组。

image-20221120221042302.png

image-20221120221141227.png

弹性公网IP:现在购买
线路:全动态BGP
公网带宽:按带宽计费
带宽大小:1
释放行为:随实例释放
点击下一步:高级配置按钮

image-20221120221334267.png

在高级配置页,按如下进行配置
云服务器名称:默认/自定义
登录凭证:密码
密码:自定义(请牢记,后续部署使用)
其他默认,点击下一步:确认配置按钮

image-20221120221617938.png

确认配置页,会显示之前步骤配置的ECS参数,购买数量:1,勾选我已阅读并同意《镜像免责声 明》,点击立即购买按钮,完成ECS创建。

image-20221120221745768.png

在ECS列表页,可以看到新创建的ECS。

image-20221120232043408.png

image-20221120232128206.png


如果需要长期进行实验和测试,还是购买一台长期的机器来做实验,金鱼哥这边在双十一活动的时候购买了一台HECS的机器,用于后续的测试。因此后续的各种实验和测试都使用这台HECS。

image-20221121214150253.png


返回DevCloud页面,将创建的ECS导入(如果没有刷新,先将页面关闭,再打开即可)。

image-20221121215540642.png

在导入ECS页面,按如下参数进行配置:
用户名:root
密码:购买ECS时设置的密码
端口:22
勾选声明,点击添加按钮

image-20221121215850058.png

返回主机信息页面,可以看到ecs已被添加到主机组,并显示连通性验证成功。

image-20221121215941763.png


添加部署模板并执行任务

按照路径部署-部署任务进入部署服务,点击新建任务按钮。

image-20221121220230866.png

部署模板选择空白模板,点击下一步按钮。

image-20221121220519813.png

通过点击左侧部署步骤间的+号(第一个步骤直接点击左侧栏添加即可),界面右侧可弹出添加步骤菜单。
本次操作需要依次添加安装/卸载Docker执行shell命令选择部署来源执行shell命令步骤。

安装/卸载Docker步骤,选择主机组,其余保持默认配置。

image-20221121221036920.png

image-20221121221459255.png

image-20221121221944140.png

在第一个执行shell命令步骤,重命名为安装docker-compose
输入shell命令:

yum -y install docker-compose 

image-20221121222810107.png

选择部署来源步骤,选择软件包为之前上传的docker-compose.wordpress.yml文件。
下载到主机的部署目录输入为:/root/wordpress/

image-20221121223809299.png

在第二个执行shell命令步骤,重命名为启动服务

docker-compose -f /root/wordpress/docker-compose.wordpress.yml up -d

image-20221121224151361.png

点击保存并执行按钮。
界面会自动跳转到部署任务执行界面,左侧显示部署步骤执行进度,右侧打印部署日志。
如下图所示,部署任务正在执行,请耐心等待。

image-20221121224239881.png


故障排除

这次操作中,遗憾的是并没有像参考文档那样说的等待就可成功,而是在最后的一个任务遇到错误。

图片为第2次部署中的错误(中途手动停止),第1次部署时最后一个任务的时间起码超过20分钟而自动停止出现报错。

image-20221122193947803.png

image-20221122211848999.png

在控制台中,并没有看到相关的错误日志提示。

去ECS查看系统日志,可看到有任务在执行的提示信息,可惜的是也并没有具体的错误信息来辅助定位。

image-20221122193816749.png

当后面停止了部署任务后,在日志中还会不断提示有任务仍然继续运行,若想停止进程,可按如下图方式来进行停止:

image-20221121233207400.png

既然是用到docker的形式来进行,那一定会有相关的镜像下载成功才对,但查看本地镜像为空:

image-20221122201254222.png

既然是最后一个任务有问题,那干脆直接在HECS上执行启动命令,看看是否有相关报错信息:

image-20221121232617540.png

期间看到的报错信息已经很明显了,金鱼哥根据过往的工作经验,分析出肯定是由于去下载国外镜像源的网络原因造成。因此我们使用docker都需要配置镜像加速器。

可在控制台中检索容器镜像服务进入到对应的服务页面,然后选择镜像中心-镜像加速器,即可根据参考文档进行配置。

image-20221122200859269.png

# 修改为对应的镜像加速器地址。
[root@hecs-test ~]# vim /etc/docker/daemon.json
{"registry-mirrors": [ "https://xxxxxxxxxxxxxxxxxxx.mirror.swr.myhuaweicloud.com" ]
}
[root@hecs-test ~]# systemctl daemon-reload 
[root@hecs-test ~]# systemctl restart docker
[root@hecs-test ~]# docker info 
Containers: 0Running: 0Paused: 0Stopped: 0
Images: 0
Server Version: 18.09.0
Storage Driver: overlay2Backing Filesystem: extfsSupports d_type: trueNative Overlay Diff: true
Logging Driver: json-file
Cgroup Driver: cgroupfs
Plugins:Volume: localNetwork: bridge host macvlan null overlayLog: awslogs fluentd gcplogs gelf journald json-file local logentries splunk syslog
Swarm: inactive
Runtimes: runc
Default Runtime: runc
Init Binary: docker-init
containerd version: 468a545b9edcd5932818eb9de8e72413e616e86e
runc version: 69663f0bd4b60df09991c08812a60108003fa340
init version: fec3683
Security Options:seccompProfile: default
Kernel Version: 3.10.0-1160.53.1.el7.x86_64
Operating System: CentOS Linux 7 (Core)
OSType: linux
Architecture: x86_64
CPUs: 1
Total Memory: 1.794GiB
Name: hecs-test
ID: FIX3:LYRG:DWX5:OHQC:MF5R:6YGK:WZW6:BJ54:GNIF:ZKFV:NZSD:LZBS
Docker Root Dir: /var/lib/docker
Debug Mode (client): false
Debug Mode (server): false
Registry: https://index.docker.io/v1/
Labels:
Experimental: false
Insecure Registries:127.0.0.0/8
Registry Mirrors:https://xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx.mirror.swr.myhuaweicloud.com/
Live Restore Enabled: false
Product License: Community Engine

使用命令测试镜像下载,可顺利下载对应的镜像。

image-20221122201504006.png

然后重新执行部署任务,可看到任务执行成功。在HECS查看到所需的镜像也已经进行下载,查看容器的运行情况也可知所需的容器已经在运行。

image-20221122202014596.png

至此,部署任务已经成功完成,可进行后续的安装。


安装及访问WordPress

应用部署任务执行成功后,就可以在浏览器进行访问。
访问地址:http://ECS公网IP:8000(ECS公网IP即之前步骤里创建的ECS的公网IP,可在控制台进行查询)
出现如下界面,表示部署成功。

image-20221122210035974.png

如果不能访问,记得去检查一下安全组是否添加了对应的规则:

image-20221122203142878.png


选择简体中文->继续
设置站点标题、用户名、密码及电子邮件后,点击安装WordPress

image-20221122210430506.png

若WordPress安装完成,会如下图所示:
image-20221122210512715.png


登录网站管理后台

点击登录,填入安装过程中所设置的用户名及密码,登录博客网站后就可以开始建设和运营了。
登录网站,可在页面见到网站仪表盘

image-20221122210633102.png


访问网站

设置->常规页面查看站点地址(URL),即可知道如何访问通过WordPress搭建的博客网站。

image-20221122210814717.png


输入URL进行测试访问:

image-20221122210908225.png

至此,已完成整个项目的部署。


完善部署模板

回想部署的整个过程,遇到的错误是由于没配置镜像加速器导致,因此,可以完善参考文档中没有提及的设置。

在原有模板文件中添加新的shell命令,把镜像加速器的配置和重启服务的命令添加到其中:

image-20221122212058177.png

完善模板后再次执行任务,会看到任务很快就部署完毕。

image-20221122212013932.png

可能有小伙伴会问,为什么这次执行这么快,因为这是 Ansible幂等性的特征,从平台部署的日志输出中,可知道平台运用了JenkinsAnsible来进行发布部署。感兴趣的小伙伴可查阅相关文档进行学习。


资源释放

本次实验用到的DevCloud用户数小于等于5是不计费的,ECS是按需计费,如果不再使用,避免持续计费,需要进行资源释放操作。(此操作步骤是按需计费的小伙伴才需要进行操作,避免产生不必要的费用。)
回到ECS列表页,按下图进行ECS资源释放。

image-20221120232318846.png

image-20221120232359700.png

删除资源需要使用注册的邮箱/手机等方式进行身份验证,按引导操作即可。


使用总结

此次整个项目的部署过程,按着参考文档来进行,但期间还是出现了错误,导致项目执行失败。当出现错误的时候,项目的排错就涉及很多知识点了,没一定的技术功底或者一定的工作经验,是很难排错的。

尤其对于一些初学者,去直接测试这个是不太合适的,除非,有各种参考文档可供参考。这也是金鱼哥去测试使用并写下这篇文章的原因之一,希望金鱼哥的分享能帮助到大家。

从这项目的部署使用中,发现了平台使用了Jenkins,Ansible,Docker,Docker-compose等技术,当然,操作系统基础是必须的,因为服务是要部署到ECS中,如果有相关问题,就需要去到系统中进行各种排查。因此,还需要巩固基础技能。

不知道大家对此云服务有何感想,心动不如行动,动动手去体验一下更直观,更能体验到华为云用心打造的产品。


【购物节已开启,个人开发者的专属集市AppBazaar来啦(所有商品购物节期间免费体验)】有奖征文火热进行中:https://bbs.huaweicloud.com/blogs/381337
此外,在(https://bbs.huaweicloud.com/activity/suggestion.html)提出您的宝贵建议,标题以【云驻计划-定向征文】开头,还有机会赢取额外奖励。

相关内容

热门资讯

122.(leaflet篇)l... 听老人家说:多看美女会长寿 地图之家总目录(订阅之前建议先查看该博客) 文章末尾处提供保证可运行...
育碧GDC2018程序化大世界... 1.传统手动绘制森林的问题 采用手动绘制的方法的话,每次迭代地形都要手动再绘制森林。这...
育碧GDC2018程序化大世界... 1.传统手动绘制森林的问题 采用手动绘制的方法的话,每次迭代地形都要手动再绘制森林。这...
Vue使用pdf-lib为文件... 之前也写过两篇预览pdf的,但是没有加水印,这是链接:Vu...
PyQt5数据库开发1 4.1... 文章目录 前言 步骤/方法 1 使用windows身份登录 2 启用混合登录模式 3 允许远程连接服...
Android studio ... 解决 Android studio 出现“The emulator process for AVD ...
Linux基础命令大全(上) ♥️作者:小刘在C站 ♥️个人主页:小刘主页 ♥️每天分享云计算网络运维...
再谈解决“因为文件包含病毒或潜... 前面出了一篇博文专门来解决“因为文件包含病毒或潜在的垃圾软件”的问题,其中第二种方法有...
南京邮电大学通达学院2023c... 题目展示 一.问题描述 实验题目1 定义一个学生类,其中包括如下内容: (1)私有数据成员 ①年龄 ...
PageObject 六大原则 PageObject六大原则: 1.封装服务的方法 2.不要暴露页面的细节 3.通过r...
【Linux网络编程】01:S... Socket多进程 OVERVIEWSocket多进程1.Server2.Client3.bug&...
数据结构刷题(二十五):122... 1.122. 买卖股票的最佳时机 II思路:贪心。把利润分解为每天为单位的维度,然后收...
浏览器事件循环 事件循环 浏览器的进程模型 何为进程? 程序运行需要有它自己专属的内存空间࿰...
8个免费图片/照片压缩工具帮您... 继续查看一些最好的图像压缩工具,以提升用户体验和存储空间以及网站使用支持。 无数图像压...
计算机二级Python备考(2... 目录  一、选择题 1.在Python语言中: 2.知识点 二、基本操作题 1. j...
端电压 相电压 线电压 记得刚接触矢量控制的时候,拿到板子,就赶紧去测各种波形,结...
如何使用Python检测和识别... 车牌检测与识别技术用途广泛,可以用于道路系统、无票停车场、车辆门禁等。这项技术结合了计...
带环链表详解 目录 一、什么是环形链表 二、判断是否为环形链表 2.1 具体题目 2.2 具体思路 2.3 思路的...
【C语言进阶:刨根究底字符串函... 本节重点内容: 深入理解strcpy函数的使用学会strcpy函数的模拟实现⚡strc...
Django web开发(一)... 文章目录前端开发1.快速开发网站2.标签2.1 编码2.2 title2.3 标题2.4 div和s...