使用华为云 CodeArts 自动化部署 Discuz实验指导

本实验将介绍基于华为云 CodeArts,更方便地编写 playbook 代码,甚至可以拷贝他人分享的代码仓库,同时基于自身 Ansible 组件实现快速运维部署,减轻工作负担,减少不必要的问题排查环节。

实验后台:开发者云实验_云实验KooLabs_在线实验_上云实践_云计算实验_AI实验_华为云官方实验平台-华为云

1. 准备环境 

1.1 预置环境

注意:开始实验之前请点击手册上方“预置实验环境”按钮。

预置实验环境需要等待【1-2分钟】。环境预置会生成虚拟私有云 VPC(vpc-hce),安全组(sg-hce)和 一台弹性云服务器(ecs-codearts)

1.2 登陆华为云

进入【实验操作桌面】,打开Chrome浏览器,首次可自动登录并进入华为云控制台页面。

注意:如后续关闭浏览器重新登录或自动登录失败,可按如下步骤登录:选择【IAM用户登录】模式,于登录对话框中输入系统为您分配的华为云实验账号和密码登录华为云,如下图所示:

注意:账号信息详见实验手册上方,切勿使用您自己的华为云账号登录。

1.3 实验介绍

在实验《云主机环境 Ansible 部署 LNMP》中,详细剖析了一键部署 LNMP 环境的 playbook 写法,整个操作都是在弹性云服务器中进行,十分耗时,且容易出错。传统运维人员在主机环境写 playbook,并不方便。

而在本实验中,将介绍基于华为云 CodeArts ,更方便地编写 playbook 代码,甚至可以拷贝他人分享的代码仓库,同时基于自身 Ansible 组件实现快速运维部署,减轻工作负担,减少不必要的问题排查环节。

1.4 实验架构

基于 CodeArts 软件开发平台中的代码托管和部署两个模板,运维人员可在代码托管平台编写脚本代码,或克隆他人写好的代码。后续在部署页面中可设置主机组,根据需求将代码设置成流水线业务,快速部署到指定主机组。

1.5 实验流程

 

2. 熟悉华为云 CodeArts 

2.1 新建项目

在华为云“控制台”,鼠标移动到页面左侧菜单栏,点击服务列表,在展开的服务列表上鼠标下滑,找到“开发与运维”,点击“软件开发生产线 CodeArts ”,进入 CodeArts 服务的控制台页面。

确认当前所在区域为“北京四”,点击“立即使用”按钮(若无此按钮请先操作步骤2.1.1操作,开通CodeArts服务),进入CodeArts服务。

2.1.1 开通CodeArts服务(若已开通请跳过此步骤)

在CodeArts控制台,左侧菜单栏切换到“总览”,选择点击CodeArts“基础版”的“免费开通”按钮。

① 区域:选择“华北-北京四”

② 勾选“我已经阅读并同意 《软件开发服务使用声明》”

③ 其他保持默认

点击“下一步”按钮

确认产品规格,点击“去支付”按钮。

点击“确认付款”按钮,完成开通。

2.1.2 创建项目

在创建项目页面,选择项目模板中的“Scrum”模板

在新建项目页,按如下参数配置项目

① 项目设置模板:Scrum(系统)

② 项目名称:自定义(如:Discuz-codearts)

点击“确定”按钮完成项目创建。

注意:若不能创建项目,请先按步骤2.1.3操作,设置创建项目者。

2.1.3 设置创建项目者(若可创建项目,请跳过此步)

若可以创建项目,请跳过此步,若显示”权限不足“,不能创建项目,则按如下进行操作设置。

点击右上角用户头像,在下拉菜单中选择点击“租户设置”。

在左侧菜单栏选择“需求管理”—“设置项目创建者”,确认勾选“设置所有成员都可以创建项目”,后点击“首页”返回CodeArts首页,即可进行创建项目操作。

2.2 创建代码仓库

创建项目完成后,我们将代码导入到项目的代码仓库。单击导航的“代码”-“代码托管”,进入到代码托管页面。

单击“普通新建”后面的向下箭头展开下拉菜单,选择“导入外部仓库”。

在导入外部仓库页,按如下填写外部仓库信息:

① 源仓库地址:

<span style="color:#303133"><span style="background-color:#ffffff">                                <code id="code_13408570">https:<span style="color:#cc6666">//gi</span>tee.com<span style="color:#cc6666">/Breaveman/</span>ansible.git</code></span></span>

② 源仓库访问权限:不需要用户名/密码

③ 勾选“我已阅读并同意 《隐私政策声明》 和 《软件开发服务使用声明》”

点击“下一步”

仓库名称会默认带入源仓库名称,也可用户自定义,其他配置默认,点击“确定”按钮完成仓库创建。

2.3 应用部署

单击导航“持续交付 > 部署”路径进入部署服务,单击“新建应用”。

在新建应用页面,基本信息全部默认,点击“下一步”

部署模板单击选择“使用空白模板”

2.3.1 新建主机组

进入到部署配置页面,单击导航菜单中的“环境管理”,先将购买的弹性云服务器ECS添加到主机组中。

单击“新建环境”,打开新建环境框,参数设置如下:

① 环境名称:自定义,如env-discuz

其他选项默认即可

单击“保存”

在打开的“资源列表” tab 页面,单击“导入主机”

在弹出的导入主机页面,单击“立即前往”创建主机集群

单击“新建主机集群”

输入集群名称:kub-discuz,点击保存

进入集群页面,单击“导入ECS”

在导入ECS页面,按如下参数进行配置:

① 用户名:root

② 密码:如下图,点击查看

③ 端口:22

④ 勾选两项授权声明

点击“添加”。

在弹性云服务器页面,可以看到 ecs-codearts 的状态已经更新为“已导入为主机”,关闭弹窗。

稍作等待后连通性验证成功,完成主机创建。

回到“环境管理”-“新建环境”-“导入主机”,下拉选择刚建的主机集群,选择刚创建的主机,点击导入

2.3.2 部署步骤

单击导航菜单的“部署步骤”,回到步骤编辑页面。

1)安装部署 MySQL

在搜索框中输入:ansible ,开始搜索并添加。

进入 Ansible 组件配置信息页

① 步骤显示名称:mysql

② 环境:选择上步骤已建好的环境即可

③ 选择playbook来源:代码仓库

④ 选择代码仓库:选择下拉列表中唯一的那个即可

⑤ 选择分支:选择master

⑥ 入口执行文件路径:mysql.yml

2)安装部署 PHP 和 NGINX

同理,再分别配置 php,配置 nginx,如下图所示:

注意事项:

php的入口执行文件路径为:php.yml

nginx的入口执行文件路径为:nginx.yml

点击保存并部署。等待全部部署完成,大约需10分钟,请耐心等待。

注意:如果部署失败,请详细检查部署步骤内的配置是否正确,再重新部署即可。

2.3.3 集成 Discuz 应用

以上步骤实现了通过 CodeArts 快速部署 LNMP 环境。现在可以在 LNMP 的基础上加上功能程序,比如说 Discuz。

和前面的步骤一样,只要在流程模板中添加对应部署 Discuz 的代码即可。

返回部署页面,点击编辑

先禁用前面步骤已经安装部署好的mysql,php 和 nginx 后,和前面的步骤一样,新增 Discuz 模块

discuz的入口执行文件路径为:Discuz.yml

注意:部署前请先禁用之前已部署好的mysql,php和nginx,否则部署将报错。

点击保存并部署,等待执行结束后,显示如下图,即成功部署 Discuz 论坛。

2.4 结果验证

在浏览器中输入部署主机的公网 IP ,即可进入 Discuz 安装指导:

注意项:公网 IP 可在 ECS 服务器控制台查看

<span style="color:#303133"><span style="background-color:#ffffff">                                <code id="code_13408660">http:<span style="color:#cc6666">//</span>XXX.XXX.XXX.XXX<span style="color:#cc6666">/bbs/i</span>nstall</code></span></span>

点击我同意,若出现如下弹窗则点击取消即可

再点击下一步,在安装数据库页面中输入必要信息,其中数据库密码为:Huawei@123

管理员密码可自定义

点击下一步,进入安装页面,完整完成后,显示如下:

 

3. 持续集成 

修改 Discuz 网页前端图标

想要修改此处的页面图标,首先得知道原图标的调用地址,鼠标选中原图标,右击选择检查

弹出的调试页面中,已阴影显示原图标的调用地址 :

                            /usr/local/nginx/html/bbs/static/image/common/logo.png

现在只需要修改对应的图标就可以

可以上传自己意愿的图标,这里提供一链接:

                            https://sandbox-expriment-files.obs.cn-north-1.myhuaweicloud.com/2447/logo.png

在华为云 CodeArts 中,切换到编辑部署任务页面

新增一个步骤项目

在添加的执行 shell 命令步骤中,修改参数如下图,最后点击保存并部署:

shell 命令为

                            cd /usr/local/nginx/html/bbs/static/image/common
mv logo.png logo1.png
wget https://sandbox-expriment-files.obs.cn-north-1.myhuaweicloud.com/2447/logo.png

出现以下图即表示部署成功:

为避免浏览器缓存影响,在部署完成后,在谷歌浏览器中点击“打开新的无痕窗口”,

在新的浏览器窗口输入:

                            http://XXX.XXX.XXX.XXX/bbs/forum.php

此处为部署服务器的公网 IP

此时我们发现页面图标已完成修改。

恭喜您已完成该实验!!!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.rhkb.cn/news/223151.html

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

pytorch-模型预测概率值为负数

在进行ocr识别模型预测的时候&#xff0c;发现预测的结果是正确的&#xff0c;但是概率值是负数&#xff1a; net_out net(img) #torch.Size([70, 1, 41]) logit, preds net_out.max(2) #41是类别 需要对类别取最大值 preds preds.transpose(1, 0).contiguous().view(-1) …

浏览器原理篇—渲染优化

渲染优化 通常一个页面有三个阶段&#xff1a;加载阶段、交互阶段和关闭阶段 加载阶段&#xff0c;是指从发出请求到渲染出完整页面的过程&#xff0c;影响到这个阶段的主要因素有网络和 JavaScript 脚本。交互阶段&#xff0c;主要是从页面加载完成到用户交互的整合过程&…

省时攻略:快速获得Creo安装包,释放创意天才!

不要再在网上浪费时间寻找Creo的安装包了&#xff0c;一键下载安装&#xff0c; 你要的一切都可以在这里找到&#xff01;我们深知在海量的信息中寻找合适的软件包并非易事&#xff0c;而且往往还伴随着繁琐的安装过程。然而&#xff0c;现在有了我们&#xff0c;一切变得轻松简…

WPF中使用ListView封装组合控件TreeView+DataGrid-粉丝专栏

wpf的功能非常强大&#xff0c;很多控件都是原生的&#xff0c;但是要使用TreeViewDataGrid的组合&#xff0c;就需要我们自己去封装实现。 我们需要的效果如图所示&#xff1a; 这2个图都是第三方控件自带的&#xff0c;并且都是收费使用。 现在我们就用原生的控件进行封装一…

【数据结构入门精讲 | 第十三篇】考研408、公司面试树专项练习(二)

在上一篇中我们进行了树的判断题、选择题、填空题专项练习&#xff0c;在这一篇中我们将进行编程题的相关练习。 目录 编程题R7-1 目录树R7-1 是否同一棵二叉搜索树R7-2 二叉搜索树的结构R7-3 平衡二叉树的根R7-1 完全二叉搜索树R7-1 修理牧场R7-2 嘴强王者R7-3 房屋分拆R7-4 动…

Django 简单图书管理系统

一、图书需求 1. 书籍book_index.html中有超链接&#xff1a;查看所有的书籍列表book_list.html页面 2. 书籍book_list.html中显示所有的书名&#xff0c;有超链接&#xff1a;查看本书籍详情book_detail.html(通过书籍ID)页面 3. 书籍book_detail.html中书的作者和出版社&…

Stable Diffusion系列(三):网络分类与选择

文章目录 网络分类模型基座模型衍生模型二次元模型2.5D模型写实风格模型 名称解读 VAELora嵌入文件放置界面使用 网络分类 当使用SD webui绘图时&#xff0c;为了提升绘图质量&#xff0c;可以多种网络混合使用&#xff0c;可选的网络包括了模型、VAE、超网络、Lora和嵌入。 …

Vue3视图渲染技术(2)

我是南城余&#xff01;阿里云开发者平台专家博士证书获得者&#xff01; 欢迎关注我的博客&#xff01;一同成长&#xff01; 一名从事运维开发的worker&#xff0c;记录分享学习。 专注于AI&#xff0c;运维开发&#xff0c;windows Linux 系统领域的分享&#xff01; 本…

kubernetes集群 应用实践 kafka部署

kubernetes集群 应用实践 kafka部署 零.1、环境说明 零.2、kafka架构说明 zookeeper在kafka集群中的作用 一、Broker注册 二、Topic注册 三、Topic Partition选主 四、生产者负载均衡 五、消费者负载均衡 一、持久化存储资源准备 1.1 创建共享目录 [rootnfsserver ~]# mkdir -…

医学实验室检验科LIS信息系统源码

实验室信息管理是专为医院检验科设计的一套实验室信息管理系统&#xff0c;能将实验仪器与计算机组成网络&#xff0c;使病人样品登录、实验数据存取、报告审核、打印分发&#xff0c;实验数据统计分析等繁杂的操作过程实现了智能化、自动化和规范化管理。 实验室管理系统功能介…

阿里云ECS配置IPv6后,如果无法访问该服务器上的网站,可检查如下配置

1、域名解析到这个IPv6地址,同一个子域名可以同时解析到IPv4和IPv6两个地址&#xff0c;这样就可以给网站配置ip4和ipv6双栈&#xff1b; 2、在安全组规则开通端口可访问&#xff0c;设定端口后注意授权对象要特殊设置“源:::/0” 3、到服务器nginx配置处&#xff0c;增加端口…

二值选择模型-以stata为工具

二值选择模型-以stata为工具 文章目录 1. 命令语法2. 模型 代码示例2.1 读取数据2.2 建立模型2.3 数据预测1. 命令语法 二值选择模型是计量经济学中常用的一种模型,用于处理因变量为二值(0或1)的情况。 这种模型通常用来研究个体在面临两个或多个离散选择时的决策行为。其中…

Mybatis之增删改查

目录 一、引言 二、Mybatis——增 举例&#xff1a;添加用户 三、Mybatis——删 举例&#xff1a;删除用户 四、Mybatis——改 举例&#xff1a;修改用户 五、Mybatis——查 六、注意 END&#xff1a; 一、引言 书接上回&#xff0c;我们在了解完mybatis之后&#xff0c;肯…

会员管理怎么做?

会员管理是企业运营的重要组成部分&#xff0c;它涉及到会员的招募、维护、激励、保留、转化等多个环节。下面&#xff0c;我们将结合具体的案例&#xff0c;详细介绍会员管理的具体做法。 首先&#xff0c;会员的招募是会员管理的第一步 企业需要通过各种方式吸引消费者成为会…

【大数据】NiFi 中的 Controller Service

NiFi 中的 Controller Service 1.Service 简介1.1 Controller Service 的配置1.1.1 SETTING 基础属性1.1.2 PROPERTIES 使用属性1.1.3 COMMENT 页签 1.2 Service 的使用范围 2.全局参数配置3.DBCPConnectionPool 的使用样例4.在 ExcuseGroovyScript 组件中使用 Service 1.Servi…

【Prometheus|报错】Out of bounds

【背景】进入Prometheus地址的9090端口&#xff0c;pushgateway&#xff08;0/1&#xff09;error : out of bounds 【排查分析】 1、out of bounds报错&#xff0c;是由于Prometheus向tsdb存数据出错&#xff0c;与最新存数据的时间序列有问题&#xff0c;有可能当前时间与最…

步兵 cocos2dx 加密和混淆

文章目录 摘要引言正文代码加密具体步骤代码加密具体步骤测试和配置阶段IPA 重签名操作步骤 总结参考资料 摘要 本篇博客介绍了针对 iOS 应用中的 Lua 代码进行加密和混淆的相关技术。通过对 Lua 代码进行加密处理&#xff0c;可以确保应用代码的安全性&#xff0c;同时提高性…

小白入门之安装MYSQL

重生之我在大四学JAVA 第三章 安装MYSQL 把MySQL复制到要安装的路径下解压 到解压后的bin路径下复制路径 接着以“管理员”身份打开命令行(如下图所示) 注意&#xff1a;一定要是管理员身份&#xff0c;否则由于后续部分命令需要权限&#xff0c;出现错误&#xff01; 转到…

C# .Net学习笔记—— Expression 表达式目录树

目录 一、什么是表达式目录树 二、Func与Expression的区别 1、Func是方法 3、使用ILSpy反编译解析看一下 ​编辑 ​编辑 4、拼装练习 5、动态生成硬编码&#xff08;通用、性能好&#xff09; 5、表达式目录树动态生成的用途&#xff1a; 6、递归解析表达式目录树 7、…

凸优化 2:如何判定凸函数?

凸优化 2&#xff1a;如何判定凸函数&#xff1f; 如何判断一个目标函数是凸函数&#xff1f;如果是凸函数&#xff0c;那ta的定义域是凸集合 一个函数求俩次梯度&#xff0c;大于等于0&#xff0c;那这个函数就是一个凸函数在同样条件下&#xff0c;怎么设计为凸函数模型&…