【华为云-开发者专属集市】DevCloud+ECS、MySQL搭建WordPress
文章目录
- AppBazaar官网
- 选择与购买项目
- 项目概况
- 操作过程
- 购买DevCloud服务
- 创建项目
- 添加制品库
- 应用部署
- 购买ECS
- 添加部署模板并执行任务
- 故障排除
- 安装及访问WordPress
- 登录网站管理后台
- 访问网站
- 完善部署模板
- 资源释放
- 使用总结
AppBazaar官网
首先,我们来到AppBazaar的官网:https://console.huaweicloud.com/appbazaar/home
AppBazaar现有16个项目,含括了工作中常用的服务架构。我们可在这里选择自己感兴趣的项目或者想要了解的项目来进行玩耍,正如官方的宣言:一键部署,构建应用无负担。
那究竟要如何玩耍呢?
选择与购买项目
首先登录平台,如果没有华为云账号,得先注册账号,实名认证后再继续。
然后点选所需的项目进入购买页面。
然后点击 立即购买
(PS:现在可是免费呢,而且还是终身的,快去体验啦😘)
点选 用户协议
就可以 提交订单
。
然后就是明确金额和点击 确认付款
之后就会提示订单支付成功。
购买成功后,可以前往买家中心
,在此处可查看到所购买的项目,然后就可以去下载对应的文档来进行参考与学习了。
所下载的文档如下图所示,包含了这个项目的上云指导和操作指导。
接下来,就可以去尝试和体验了,心动不如行动!那就让金鱼哥来做先锋队。
项目概况
项目名称: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
操作过程
购买DevCloud服务
登录华为云后,按 产品
-开发与运维
-软件开发平台DevCloud
路径后,即可进入华为云DevCloud平台首页。
点击管理控制台
按钮,进入DevCloud项目列表。
金鱼哥所在城市是广州,因此将区域切换到 华南-广州
。
因服务还未开通,所以会有相关提示,例如是否使用新主题,金鱼哥要做先锋队,那就选择使用新主题。
个人使用选择 基础版
并点击 免费开通
跳转到产品选择页面。
明确相关条款后选择 下一步
。
明确要购买的产品服务即可去支付
和确认付款
。
创建项目
购买成功后即可从DevCloud平台首页进入管理控制台
。
或者从用户控制台中去选择对应的服务也可进入到DevCloud平台的控制台。
在控制台中点击立即使用
。
点击新建项目
进入到项目创建页面。
在新建项目页,按如下参数配置项目:
项目流程:Scrum
项目名称:自定义(如:wordpress)
点击确定
按钮完成项目创建
添加制品库
在本地电脑中新建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文件有格式要求,注意配置项前面的空格和层级的对齐。
将文件上传至制品库中。
应用部署
购买ECS
应用需要部署到服务器上,因此需要购买一台ECS,再将应用部署上去。
在项目页面中,选择 通用设置
进入通用设置页面。
选择 主机组管理
,点击 新建主机组
按钮。
输入主机组名称(如:Linux_Group),点击保存
按钮完成主机组创建。
自动跳转到主机信息页面,点击导入ECS
按钮。
由于还未创建ECS,点击ECS控制台
按钮,进入ECS控制台。
点击购买弹性云服务器
按钮。
在 基础配置
步骤,按如下配置:
计费模式:按需计费
区域:华南-广州(与DevCloud项目所在区域保持一致)
可用区:随机分配
CPU架构:x86计算
规格:S6.small.1(可通过1vCPU,1GB进行搜索过滤,实际项目根据实际情况选择)
镜像:公共镜像CentOS 7.9 64bit(40GB)
系统盘:高I/O
点击下一步:网络配置
按钮
在网络配置页按如下配置对应参数:
网络:vpc-default/subnet-default
安全组:自定义(如果安全组入向规则里没有TCP: 22和TCP:8383端口,需要点击新建安全组
按钮,
进入对应安全组,配置入方向规则TCP: 22和TCP:8383端口)
创建一个新的安全组或者可使用在用的安全组。
弹性公网IP:现在购买
线路:全动态BGP
公网带宽:按带宽计费
带宽大小:1
释放行为:随实例释放
点击下一步:高级配置
按钮
在高级配置页,按如下进行配置
云服务器名称:默认/自定义
登录凭证:密码
密码:自定义(请牢记,后续部署使用)
其他默认,点击下一步:确认配置
按钮
在确认配置
页,会显示之前步骤配置的ECS参数,购买数量:1,勾选我已阅读并同意《镜像免责声 明》
,点击立即购买
按钮,完成ECS创建。
在ECS列表页,可以看到新创建的ECS。
如果需要长期进行实验和测试,还是购买一台长期的机器来做实验,金鱼哥这边在双十一活动的时候购买了一台HECS的机器,用于后续的测试。因此后续的各种实验和测试都使用这台HECS。
返回DevCloud页面,将创建的ECS导入(如果没有刷新,先将页面关闭,再打开即可)。
在导入ECS页面,按如下参数进行配置:
用户名:root
密码:购买ECS时设置的密码
端口:22
勾选声明,点击添加
按钮
返回主机信息页面,可以看到ecs已被添加到主机组,并显示连通性验证成功。
添加部署模板并执行任务
按照路径部署
-部署任务
进入部署服务,点击新建任务
按钮。
部署模板选择空白模板
,点击下一步
按钮。
通过点击左侧部署步骤间的+
号(第一个步骤直接点击左侧栏添加即可),界面右侧可弹出添加步骤
菜单。
本次操作需要依次添加安装/卸载Docker
、执行shell命令
、选择部署来源
、执行shell命令
步骤。
在安装/卸载Docker
步骤,选择主机组,其余保持默认配置。
在第一个执行shell命令
步骤,重命名为安装docker-compose
。
输入shell命令:
yum -y install docker-compose
在选择部署来源
步骤,选择软件包为之前上传的docker-compose.wordpress.yml文件。
下载到主机的部署目录输入为:/root/wordpress/
在第二个执行shell命令
步骤,重命名为启动服务
。
docker-compose -f /root/wordpress/docker-compose.wordpress.yml up -d
点击保存并执行
按钮。
界面会自动跳转到部署任务执行界面,左侧显示部署步骤执行进度,右侧打印部署日志。
如下图所示,部署任务正在执行,请耐心等待。
故障排除
这次操作中,遗憾的是并没有像参考文档那样说的等待就可成功,而是在最后的一个任务遇到错误。
图片为第2次部署中的错误(中途手动停止),第1次部署时最后一个任务的时间起码超过20分钟而自动停止出现报错。
在控制台中,并没有看到相关的错误日志提示。
去ECS查看系统日志,可看到有任务在执行的提示信息,可惜的是也并没有具体的错误信息来辅助定位。
当后面停止了部署任务后,在日志中还会不断提示有任务仍然继续运行,若想停止进程,可按如下图方式来进行停止:
既然是用到docker的形式来进行,那一定会有相关的镜像下载成功才对,但查看本地镜像为空:
既然是最后一个任务有问题,那干脆直接在HECS上执行启动命令,看看是否有相关报错信息:
期间看到的报错信息已经很明显了,金鱼哥根据过往的工作经验,分析出肯定是由于去下载国外镜像源的网络原因造成。因此我们使用docker都需要配置镜像加速器。
可在控制台中检索容器镜像服务
进入到对应的服务页面,然后选择镜像中心
-镜像加速器
,即可根据参考文档进行配置。
# 修改为对应的镜像加速器地址。
[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
使用命令测试镜像下载,可顺利下载对应的镜像。
然后重新执行部署任务,可看到任务执行成功。在HECS查看到所需的镜像也已经进行下载,查看容器的运行情况也可知所需的容器已经在运行。
至此,部署任务已经成功完成,可进行后续的安装。
安装及访问WordPress
应用部署任务执行成功后,就可以在浏览器进行访问。
访问地址:http://ECS公网IP:8000(ECS公网IP即之前步骤里创建的ECS的公网IP,可在控制台进行查询)
出现如下界面,表示部署成功。
如果不能访问,记得去检查一下安全组是否添加了对应的规则:
选择简体中文
->继续
。
设置站点标题、用户名、密码及电子邮件后,点击安装WordPress
:
若WordPress安装完成,会如下图所示:
登录网站管理后台
点击登录
,填入安装过程中所设置的用户名及密码,登录博客网站后就可以开始建设和运营了。
登录网站,可在页面见到网站仪表盘
:
访问网站
在设置->常规
页面查看站点地址(URL)
,即可知道如何访问通过WordPress搭建的博客网站。
输入URL进行测试访问:
至此,已完成整个项目的部署。
完善部署模板
回想部署的整个过程,遇到的错误是由于没配置镜像加速器导致,因此,可以完善参考文档中没有提及的设置。
在原有模板文件中添加新的shell命令,把镜像加速器的配置和重启服务的命令添加到其中:
完善模板后再次执行任务,会看到任务很快就部署完毕。
可能有小伙伴会问,为什么这次执行这么快,因为这是 Ansible幂等性的特征,从平台部署的日志输出中,可知道平台运用了Jenkins和Ansible来进行发布部署。感兴趣的小伙伴可查阅相关文档进行学习。
资源释放
本次实验用到的DevCloud用户数小于等于5是不计费的,ECS是按需计费,如果不再使用,避免持续计费,需要进行资源释放操作。(此操作步骤是按需计费的小伙伴才需要进行操作,避免产生不必要的费用。)
回到ECS列表页,按下图进行ECS资源释放。
删除资源需要使用注册的邮箱/手机等方式进行身份验证,按引导操作即可。
使用总结
此次整个项目的部署过程,按着参考文档来进行,但期间还是出现了错误,导致项目执行失败。当出现错误的时候,项目的排错就涉及很多知识点了,没一定的技术功底或者一定的工作经验,是很难排错的。
尤其对于一些初学者,去直接测试这个是不太合适的,除非,有各种参考文档可供参考。这也是金鱼哥去测试使用并写下这篇文章的原因之一,希望金鱼哥的分享能帮助到大家。
从这项目的部署使用中,发现了平台使用了Jenkins,Ansible,Docker,Docker-compose等技术,当然,操作系统基础是必须的,因为服务是要部署到ECS中,如果有相关问题,就需要去到系统中进行各种排查。因此,还需要巩固基础技能。
不知道大家对此云服务有何感想,心动不如行动,动动手去体验一下更直观,更能体验到华为云用心打造的产品。
【购物节已开启,个人开发者的专属集市AppBazaar来啦(所有商品购物节期间免费体验)】有奖征文火热进行中:https://bbs.huaweicloud.com/blogs/381337
此外,在(https://bbs.huaweicloud.com/activity/suggestion.html)提出您的宝贵建议,标题以【云驻计划-定向征文】开头,还有机会赢取额外奖励。
相关文章:

【华为云-开发者专属集市】DevCloud+ECS、MySQL搭建WordPress
文章目录AppBazaar官网选择与购买项目项目概况操作过程购买DevCloud服务创建项目添加制品库应用部署购买ECS添加部署模板并执行任务故障排除安装及访问WordPress登录网站管理后台访问网站完善部署模板资源释放使用总结AppBazaar官网 首先,我们来到AppBazaar的官网&…...

Milvus 群星闪耀时|又一个小目标达成 :社区正式突破 15,000 星!
如果把 Milvus 看作开源世界中的一束微光,那用户便是无垠宇宙中点点闪烁的星光。用户每一次点亮 star 之时,Milvus 就会迸发出更加耀眼的光芒。不知不觉,已有数以万计的 star 为 Milvus 而亮。2022 年 4 月,Milvus 在 GitHub 的 …...

Qt信号与槽使用方法总结
前言 在图形界面编程中QT是为首选,组件之间如何实现通信是核心的技术内容。Qt 使用了信号与槽的机制,非常的高效、简单、易学,方便开发者的使用。本文详细的介绍了Qt 当中信号与槽的概念,并演示了各种信号与槽的连接方式。 什么…...

SpringCloud alibaba-Sentinel服务降级策略
文章目录RT:异常比例:异常数:RT: 平均响应时间 (DEGRADE_GRADE_RT):当 1s 内持续进入 N 个请求,对应时刻的平均响应时间(秒级)均超过阈值(count,以 ms 为单位…...
python常用函数——random()函数
random() 返回随机生成的一个实数,范围在[0,1)之间 语法如下: import random random.random() # 注意:random()是不能直接访问的,需要导入random包,然后通过random静态对象调用 # 参数: 无 # 返回值 返回随…...

PX4之启动脚本
PX4通过rcS脚本来设定需要启动的程序,比如设备驱动、控制模块、数据通信等。rcS脚本在项目中的文件位置 ROMFS/px4fmu_common/rcS 对应硬件平台固件上的位置 /etc/init.d/rcS 启动脚本流程如下 #!/bin/sh # PX4FMU startup script. # # 一些注释 ## 设置默认参…...

Java零基础入门到精通(持续更新中)
打开CMD命令窗口 WINR输入cmd 常用cmd命令代码 切换磁盘 E: 回车即可切换到e盘查看当前路径下的所有内容 dir进入目录 cd test回退到上一级目录 cd..进入多级目录 cd test\index\aaa回退到磁盘目录 cd \清屏 cls关闭命令行窗口 exit小例子:使用命令行窗口…...
杂七杂八(12):Bilibili视频缓存 m4s音视频合并 shell脚本
视频目录结构如下: 267132000/ 267132000/c_1015740000/ 267132000/c_1015740000/entry.json 267132000/c_1015740000/80/ 267132000/c_1015740000/80/audio.m4s 267132000/c_1015740000/80/video.m4s267132000/c_1015740011/ 267132000/c_1015740011/entry.json 2…...

Qt 某光谱仪程序开发
某光谱仪程序开发 文章目录某光谱仪程序开发摘要安装驱动注册COM组件导出.h和.cpp在Qt 中添加源文件开发打包程序关键字: Demo、 Qt、 COM、 dumpcpp、 C摘要 今天接到一个临时小任务,写一个的项目子模块的Demo,以供和专家们交流一下项目技…...

蛋白质组学技术与常见分析培训班火热招生中!
什么是蛋白质组学? 蛋白质组学(proteomics),是以蛋白质组为研究对象,研究细胞、组织或生物体蛋白质组成及其变化规律的科学。包括蛋白质的表达水平,翻译后修饰,蛋白与蛋白相互作用等研究内容,集中于动态描述…...

唤醒手腕 Java 后端 Springboot 框架结合 socketio 学习笔记
socketio 安装配置 Socket.IO是一个完全由JavaScript实现、基于Node.js、支持WebSocket的协议用于实时通信、跨平台的开源框架,它包括了客户端的JavaScript和服务器端的Node.js。 Socket.IO除了支持WebSocket通讯协议外,还支持许多种轮询(P…...

C++入门:内联函数、auto关键字、基于范围for循环及指针空值nullptr
目录 一. 内联函数 1.1 内联函数的概念 1.2 内联函数的特性 1.3 内联函数和宏的优缺点对比 二. auto关键字(C11) 2.1 auto的功能 2.2 auto在使用时的注意事项 三. 基于范围的for循环(C11) 四. 指针空值nullptr(…...

Python遗传算法
1 人工智能概述 2020中国人工智能产业年会在苏州召开,会上发布的《中国人工智能发展报告2020》显示,过去十年(2011-2020) ,中国人工智能专利申请量达389571件,占全球总量的74.7%,位居世界第一。 报告指出,…...

GEE学习笔记 六十四:绿色中国报告(个人版)
2019年上半年在遥感圈里最火的一篇文章莫过于这篇《China and India lead in greening of the world through land-use management》(China and India lead in greening of the world through land-use management | Nature Sustainability),…...

【Kubernetes】【十八】数据存储 高级存储 配置存储
高级存储 PV和PVC 前面已经学习了使用NFS提供存储,此时就要求用户会搭建NFS系统,并且会在yaml配置nfs。由于kubernetes支持的存储系统有很多,要求客户全都掌握,显然不现实。为了能够屏蔽底层存储实现的细节,方便用…...

传输层TCP与UDP协议
目录 传输层 传输层功能 传输层所提供的服务 传输层的两个协议 TCP协议与UDP协议 端口 端口分类 IP地址和端口的关系 UDP协议 前言: UDP报文格式 检验和的伪首部 伪首部内容 TCP协议 TCP报文格式 TCP协议数据段的理解 TCP的伪首部 伪首部内容 标…...
字节数组的通俗解释
1.字节是通过网络传输信息(或在硬盘或内存中存储信息)的单位。2.在ASCII码中,一个英文字母(不分大小写)占一个字节的空间,一个中文汉字占两个字节的空间。注意:utf-8码中一个汉字占三个字节&…...

硬件学习 软件Cadence day06 原理图网表导入PCB (过程和操作的错误),开始的画板
1.新建一个制作芯片的工程 1.打开 File ->New 2.填写信息,设置路径 2.原理图的网表导入 1.打开这个窗口 File -> import ->Logic.. 2.确定信息 3.解决网表导入时出现的错误 1. 第一个案列 (没有找到文件 也是这个) 比如说: WARNING(…...

OCT 医学图像分类
目录1. OCT 图像分类2. OCT图像数据集3. OCT图像预处理4. 特征提取5. 实验结果及分析github地址: https://github.com/aishangcengloua/OCT_Classification 1. OCT 图像分类 视网膜光学相干断层扫描(OCT)是一种成像技术,用于捕获活体患者视网膜的高分辨率横截面。…...
华为OD机试 - 合并数组 | 机试题算法思路 【2023】
最近更新的博客 华为OD机试 - 简易压缩算法(Python) | 机试题算法思路 【2023】 华为OD机试题 - 获取最大软件版本号(JavaScript) 华为OD机试 - 猜字谜(Python) | 机试题+算法思路 【2023】 华为OD机试 - 删除指定目录(Python) | 机试题算法思路 【2023】 华为OD机试 …...

生产环境MYSQL常见锁表场景
前言 锁表是我们在生产环境十分常见的问题之一,解决问题前需要先了解锁表产生的原因以找到解决方案,并制定方案以预防锁表,本文接下来会分别模拟元数据锁表(MDL锁)、行锁升级为表锁、死锁、**显示锁表 **四种锁表情形…...
Celery 核心概念详解及示例
Celery 核心概念详解及示例 Celery 是一个简单、灵活且可靠的分布式系统,用于处理大量消息,提供对任务队列的操作,并支持任务的调度和异步执行。它常用于深度优化 Web 应用的性能和响应速度,通过将耗时的操作移到后台异步执行&am…...
【机器学习及深度学习】机器学习模型的误差:偏差、方差及噪声
机器学习模型的误差分析 V1.0机器学习模型的衡量准则概念引入机器学习模型误差分析误差出现的原因及消除 V1.0 机器学习模型的衡量准则 衡量机器学习模型的好坏可以考虑以下几个方面: 偏差(Bias): 在充分训练的情况下࿰…...

MPLS-EVPN笔记详述
目录 EVPN简介: EVPN路由: 基本四种EVPN路由 扩展: EVPN工作流程: 1.启动阶段: 2.流量转发: 路由次序整理: 总结: EVPN基本术语: EVPN表项: EVPN支持的多种服务模式: 简介: 1.Port Based: 简介: 配置实现: 2.VLAN Based: 简介: 配置实现: 3.VLAN Bundle: 简…...

25年宁德时代新能源科技SHL 测评语言理解数字推理Verify题库
宁德时代新能源科技的SHL测评中,语言理解部分主要考察阅读理解、逻辑填空和语句排序等题型,要求应聘者在17分钟内完成30题。阅读理解需要快速捕捉文章主旨和理解细节信息;逻辑填空则要根据语句逻辑填入最合适的词汇;语句排序是将打…...

django入门-orm数据库操作
一:下载数据库依赖项mysqlclient pip install mysqlclient 二:django配置文件配置数据库链接 路径:mysite2\mysite2\settings.py DATABASES {default: {ENGINE: django.db.backends.mysql,NAME: data, # 数据库名称USER: root, …...

NLP学习路线图(十八):Word2Vec (CBOW Skip-gram)
自然语言处理(NLP)的核心挑战在于让机器“理解”人类语言。传统方法依赖独热编码(One-hot Encoding) 表示单词,但它存在严重缺陷:每个单词被视为孤立的符号,无法捕捉词义关联(如“国…...
数据可视化的定义和类型
数据可视化是一种将数据转换为图形或视觉表示的方法。想象一下,你面前有一堆数字和表格,看着这些,可能会让人头大。数据可视化就像是给这些枯燥的数字画上一幅画。它用图表、地图和各种有趣的图形,帮我们把难懂的数字变得容易看懂…...
bert扩充或者缩小词表
在BERT模型中添加自己的词汇(pytorch版) - 知乎 输入 1. 扩充词表 替换bert词表中的【unused】 2. 缩小词表 因为要使用预训练的模型,词id不能变,词向量矩阵大小不变 要做的是将减少的那一部分词全部对应为unk,即可…...

如何在 Solana 上发币,并创建初始流动性让项目真正“动”起来?
在 Solana 上发行代币如今已不再是技术门槛,而是市场策略和执行效率的较量。如果你只是简单发了一个代币,却没为它建立流动性和市场机制,那么它就只是一个“死币”。 本文将带你一步步理解,如何从发币到建立流动性池,…...