首先,我们来到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平台的控制台。
在控制台中点击立即使用
。
点击新建项目
进入到项目创建页面。
在新建项目页,按如下参数配置项目:
项目流程:Scrum
项目名称:自定义(如:wordpress)
点击确定
按钮完成项目创建
在本地电脑中新建txt文档并重命名为docker-compose.wordpress.yml,或者直接使用Markdown之类的软件创建文件。
复制以下内容至docker-compose.wordpress.yml文件中。
若是在正式应用环境,需要根据实际情况将以下password、user等相关信息进行修改。
version: "3"
services:
db:
image: mysql:8.0
command:
- --default_authentication_plugin=mysql_native_password
- --character-set-server=utf8mb4
- --collation-server=utf8mb4_unicode_ci
volumes:
- db_data:/var/lib/mysql
restart: always
environment:
MYSQL_ROOT_PASSWORD: somewordpress
MYSQL_DATABASE: wordpress
MYSQL_USER: wordpress
MYSQL_PASSWORD: wordpress
wordpress:
depends_on:
- db
image: wordpress:latest
ports:
- "8000:80"
restart: always
environment:
WORDPRESS_DB_HOST: db:3306
WORDPRESS_DB_USER: wordpress
WORDPRESS_DB_PASSWORD: wordpress
volumes:
db_data:
注意:Yaml文件有格式要求,注意配置项前面的空格和层级的对齐。
将文件上传至制品库中。
应用需要部署到服务器上,因此需要购买一台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: 0
Running: 0
Paused: 0
Stopped: 0
Images: 0
Server Version: 18.09.0
Storage Driver: overlay2
Backing Filesystem: extfs
Supports d_type: true
Native Overlay Diff: true
Logging Driver: json-file
Cgroup Driver: cgroupfs
Plugins:
Volume: local
Network: bridge host macvlan null overlay
Log: 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:
seccomp
Profile: 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查看到所需的镜像也已经进行下载,查看容器的运行情况也可知所需的容器已经在运行。
至此,部署任务已经成功完成,可进行后续的安装。
应用部署任务执行成功后,就可以在浏览器进行访问。
访问地址:http://ECS公网IP:8000(ECS公网IP即之前步骤里创建的ECS的公网IP,可在控制台进行查询)
出现如下界面,表示部署成功。
如果不能访问,记得去检查一下安全组是否添加了对应的规则:
选择简体中文
->继续
。
设置站点标题、用户名、密码及电子邮件后,点击安装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)提出您的宝贵建议,标题以【云驻计划-定向征文】开头,还有机会赢取额外奖励。