草庐IT

2022年全国技能大赛云计算 RocketChat聊天系统上云

就往 2023-04-13 原文

欢迎来互相交流


目录

一、公有云服务搭建:RocketChat聊天系统上云

【题目 1】私有网络管理[0.5 分]

在公有云中完成虚拟私有云的创建,具体要求如下:
(1)在上海一区域进行创建操作;
(2)创建一个名为 intnetX 的内部网络:IP 地址为 172.16.0.0/16;
(3)创建子网名称为 intnetX-server:IP 地址为 172.16.1.0/24;
(4)创建子网名称为 intnetX-mysql:IP 地址为 172.16.2.0/24;
完成创建后,提交当前的 AK(SecretId)、SK(SecretKey)和 intnetX 网络的 ID 到答题框。

1.查看 vpc 名字为 intnetX 正确计 0.1 分
2.查看子网名为 intnetX-server 和子网网段正确计 0.2 分
3.查看子网名为 intnetX-mysql 和子网网段正确计 0.2 分

步骤:控制台 → 虚拟私有云VPC → 创建虚拟私有云

【题目 2】云实例管理[0.5 分]

登录华为云平台,创建两台云实例,具体要求如下:
(1)计费模式:按需计费;
(2)地域:上海一;
(3)CPU 架构:x86 计算;
(4)规格:c7.xlarge.2;
(5)镜像:CentOS 7.5 64 位;
(6)系统盘:高 IO 50G 硬盘;
(7)公网带宽:按带宽计费,5Mbps;
(8)实例名称:ChinaSkill-node-1、ChinaSkill-node-2;
(9)登录方式:使用密码登录,密码自定义。
创建完成后,提交当前的 AK(SecretId)、SK(SecretKey)和 ChinaSkill-node-1 的实例 ID 到答题框。

1.查看云实例使用的类型是否正确计 0.2 分
2.查看云实例使用的云硬盘是否正确计 0.3 分

步骤:控制台 → 弹性云服务器 → 购买弹性云服务器



【题目 3】数据库管理[0.5 分]

使用intnetX-mysql网络创建两台chinaskill-sql-1和chinaskill-sql-2云服务器,使用提供的压缩文件rocketchat-cloud.tar.gz中的软件包源,在chinaskill-sql-1和chinaskill-sql-2中部署MongoDB数据库服务。配置完成后提交连接chinaskill-sql-1节点的用户名、密码和公网IP地址到答题框。

1.查看数据库安装正确计 0.5 分

配置本地yum源

[a]
baserurl=file:///root/rocket/yum
gpgcheck=0

安装MongoDB 数据库、

[root@mysql-1 ~]# yum install -y mongodb-org 
[root@mysql-2 ~]# yum install -y mongodb-org 

启动MongoDB数据库

[root@mysql-1 ~]# systemctl restart mongod
[root@mysql-2 ~]# systemctl restart mongod

【题目 4】主从数据库[1 分]

在 chinaskill-sql-1 和 chinaskill-sql-2 云服务器中配置 MongoDB 主从数据库,配置MongoDB 集群名称为 rs 并完成集群设置。完成后提交连接chinaskill-sql-1 节点的用户名、
密码和公网 IP 地址到答题框。

1.查看 mongo 数据库 rs 集群状态正确计 1 分

修改MongoDB配置文件 (两个都要改)

[root@mysql-1 ~]# vi /etc/mongod.conf

net:
  port: 27017
  bindIp: 0.0.0.0   # 修改
ly, use the net.bindIpAll setting.


#security:

#operationProfiling:

replication:
  replSetName: rs  #添加   过滤: mongod --help | grep repl

重启服务

[root@mysql-1 ~]# systemctl restart mongod
[root@mysql-2 ~]#  systemctl restart mongod

数据库配置( 在mysql-1配置就可以了 )

> use admin 
switched to db admin
> cfg={ _id:"rs", members:[ {_id:0,host:'172.16.1.88:27017',priority:2}, {_id:1,host:'172.16.1.89:27017',priority:1}] };
{
        "_id" : "rs",
        "members" : [
                {
                        "_id" : 0,
                        "host" : "172.16.1.88:27017",
                        "priority" : 2
                },
                {
                        "_id" : 1,
                        "host" : "172.16.1.89:27017",
                        "priority" : 1
                }
        ]
}
> rs.initiate(cfg)
{ "ok" : 1 }   要显示ok 1
rs:SECONDARY> rs.status()


【题目 5】node 环境管理[0.5 分]

使用提供的压缩文件 rocketchat-cloud.tar.gz 中软件包源,在 ChinaSkill-node-1 部署 nodejs,
根据 所提供 的 rocket.chat 所 需要求 安 装 nodejs 对 应版本。 配置完成后提 交连接
ChinaSkill-node-1 节点的用户名、密码和公网 IP 地址到答题框。

1.查看 node 版本为 v12.16.1 正确计 0.5 分
[root@mysql-1 rocket]# tar xf node-v12.16.1-linux-x64.tar.gz 
[root@mysql-1 rocket]# mv node-v12.16.1-linux-x64 /usr/local/node
[root@mysql-1 rocket]# ln -s /usr/local/node/bin/* /usr/bin/
[root@mysql-1 rocket]# node -v
v12.16.1
[root@mysql-1 rocket]# 

【题目 6】安全组管理[0.5 分]

创建一个安全组,具体要求如下:
(1)名称:intnetX-security;
(2)允许策略:只放行源地址为 172.16.1.0/24 访问 27017 端口;
(3)允许策略:只放行源地址为 172.16.1.0/24 使用 ping 命令访问;
(4)关联实例:将 intnetX-security 安全组关联至所创建的数据库中;
创建完成后,提交当前的 AK(SecretId)、SK(SecretKey)和安全组 ID 到答题框。

1.查看安全组是否被创建计 0.1 分
2.查看安全组 tcp 策略是否按要求创建计 0.2 分
3.查看安全组 icmp 策略是否按要求创建计 0.2 分

步骤:控制台 → 虚拟私有云VPC → 网络控制台 → 访问控制 → 安全组 → 创建安全组




加入chinaskill-sql-1 和 chinaskill-sql-2

【题目 7】RocketChat 上云[0.5 分]

使用 http 服务器提供的压缩文件 rocketchat-cloud.tar.gz 中的 RocketChat 软件包,在ChinaSkill-node-1 中部署 RocketChat 的 Web 服务。使用 chinaskill-sql-1 的 MongoDB 为后端数据库,设置 RocketChat 服务访问端口为 3000。完成 Rocketchat 系统上云后,将ChinaSkill-node-1 节点的用户名、密码和公网 IP 地址到答题框

1.查看 RocketChat 服务正常计 0.2 分
2.查看前端页面是否正常返回计 0.3 分

安装npm源

[root@mysql-1 rocket]# tar xf rocket.chat-3.2.2.tgz 
[root@mysql-1 rocket]# cd bundle/
[root@mysql-1 bundle]# ls
main.js  programs  README  server  star.json
[root@mysql-1 bundle]# cd programs/server/
[root@mysql-1 server]# npm install   如果出现报错可以切换nodejs版本来安装

设置环境变量

选择chinaskill-sql-1 ip加入

[root@mysql-1 bundle]# export ROOT_URL='http://localhost:3000'
[root@mysql-1 bundle]# export PORT="3000"
[root@mysql-1 bundle]# export MONGO_URL='mongodb://172.16.1.88:27017/rocketchat?replicsSet=rs' 
[root@mysql-1 bundle]# export MONGO_OPLOG_URL=mongodb://172.16.1.88:27017/local?replicaSet=rs
[root@mysql-1 bundle]# node main.js 

  • 常见报错

    • Error: /lib64/libstdc++.so.6: version `CXXABI_1.3.9’ not found

      需要更新libstdc++.so.6的版本

      发现当前的 libstdc++.so.6 的版本没有 CXXABI_1.3.9 需要更换更高级别的
      [root@mysql-1 bundle]# strings /usr/lib64/libstdc++.so.6 | grep CXXABI
      CXXABI_1.3
      CXXABI_1.3.1
      CXXABI_1.3.2
      CXXABI_1.3.3
      CXXABI_1.3.4
      CXXABI_1.3.5
      CXXABI_1.3.6
      CXXABI_1.3.7
      CXXABI_TM_1
      
      
      先查看系统是否存在更高级别的,如果有的话用第一步来查看是否存在需要的东西            
      [root@mysql-1 bundle]# find / -name libstdc++.so.6*  
      /usr/lib64/libstdc++.so.6
      /usr/lib64/libstdc++.so.6.0.19
      /usr/lib64/libstdc++.so.6.0.26
      /usr/share/gdb/auto-load/usr/lib64/libstdc++.so.6.0.19-gdb.py
      /usr/share/gdb/auto-load/usr/lib64/libstdc++.so.6.0.19-gdb.pyc
      /usr/share/gdb/auto-load/usr/lib64/libstdc++.so.6.0.19-gdb.pyo
      
      把libstdc++.so.6更换
      [root@mysql-1 bundle]# mv /usr/lib64/libstdc++.so.6 /usr/lib64/libstdc++.so.6.bak
      [root@mysql-1 bundle]# ln -s /usr/lib64/libstdc++.so.6.0.26 /usr/lib64/libstdc++.so.6
      [root@mysql-1 bundle]# 
      
      
      

有关2022年全国技能大赛云计算 RocketChat聊天系统上云的更多相关文章

  1. ruby-on-rails - 使用一系列等级计算字母等级 - 2

    这里是Ruby新手。完成一些练习后碰壁了。练习:计算一系列成绩的字母等级创建一个方法get_grade来接受测试分数数组。数组中的每个分数应介于0和100之间,其中100是最大分数。计算平均分并将字母等级作为字符串返回,即“A”、“B”、“C”、“D”、“E”或“F”。我一直返回错误:avg.rb:1:syntaxerror,unexpectedtLBRACK,expecting')'defget_grade([100,90,80])^avg.rb:1:syntaxerror,unexpected')',expecting$end这是我目前所拥有的。我想坚持使用下面的方法或.join,

  2. 计算机毕业设计ssm+vue基本微信小程序的小学生兴趣延时班预约小程序 - 2

    项目介绍随着我国经济迅速发展,人们对手机的需求越来越大,各种手机软件也都在被广泛应用,但是对于手机进行数据信息管理,对于手机的各种软件也是备受用户的喜爱小学生兴趣延时班预约小程序的设计与开发被用户普遍使用,为方便用户能够可以随时进行小学生兴趣延时班预约小程序的设计与开发的数据信息管理,特开发了小程序的设计与开发的管理系统。小学生兴趣延时班预约小程序的设计与开发的开发利用现有的成熟技术参考,以源代码为模板,分析功能调整与小学生兴趣延时班预约小程序的设计与开发的实际需求相结合,讨论了小学生兴趣延时班预约小程序的设计与开发的使用。开发环境开发说明:前端使用微信微信小程序开发工具:后端使用ssm:VU

  3. ruby - 如何计算 Liquid 中的变量 +1 - 2

    我对如何计算通过{%assignvar=0%}赋值的变量加一完全感到困惑。这应该是最简单的任务。到目前为止,这是我尝试过的:{%assignamount=0%}{%forvariantinproduct.variants%}{%assignamount=amount+1%}{%endfor%}Amount:{{amount}}结果总是0。也许我忽略了一些明显的东西。也许有更好的方法。我想要存档的只是获取运行的迭代次数。 最佳答案 因为{{incrementamount}}将输出您的变量值并且不会影响{%assign%}定义的变量,我

  4. ruby - 使用 Ruby,计算 n x m 数组的每一列中有多少个 true 的简单方法是什么? - 2

    给定一个nxmbool数组:[[true,true,false],[false,true,true],[false,true,true]]有什么简单的方法可以返回“该列中有多少个true?”结果应该是[1,3,2] 最佳答案 使用转置得到一个数组,其中每个子数组代表一列,然后将每一列映射到其中的true数:arr.transpose.map{|subarr|subarr.count(true)}这是一个带有inject的版本,应该在1.8.6上运行,没有任何依赖:arr.transpose.map{|subarr|subarr.in

  5. arrays - 计算数组中的匹配元素 - 2

    给定两个大小相等的数组,如何找到不考虑位置的匹配元素的数量?例如:[0,0,5]和[0,5,5]将返回2的匹配项,因为有一个0和一个5共同;[1,0,0,3]和[0,0,1,4]将返回3的匹配项,因为0有两场,1有一场;[1,2,2,3]和[1,2,3,4]将返回3的匹配项。我尝试了很多想法,但它们都变得相当粗糙和令人费解。我猜想有一些不错的Ruby习惯用法,或者可能是一个正则表达式,可以很好地回答这个解决方案。 最佳答案 您可以使用count完成它:a.count{|e|index=b.index(e)andb.delete_at

  6. ruby - 如何保持我不常用的编程语言技能 - 2

    关闭。这个问题是off-topic.它目前不接受答案。想改进这个问题吗?Updatethequestion所以它是on-topic用于堆栈溢出。关闭11年前。Improvethisquestion我不经常使用ruby​​-通常它加起来相当于每两个月或更长时间编写一次脚本。我的大部分编程都是使用C++进行的,这与ruby​​有很大不同。由于我与ruby​​之间的差距如此之大,我总是忘记语言的基本方面(比如解析文本文件和其他简单的东西)。我想每天练习一些基本的东西,我想知道是否有一些我可以订阅的网站,并且会向我发送当天的Ruby问题或类似的东西。有人知道这样的站点/Internet服务吗?

  7. ruby-on-rails - 如何计算 Ruby/Rails 中 JSON 对象的数量 - 2

    Ruby中如何“一般地”计算以下格式(有根、无根)的JSON对象的数量?一般来说,我的意思是元素可能不同(例如“标题”被称为其他东西)。没有根:{[{"title":"Post1","body":"Hello!"},{"title":"Post2","body":"Goodbye!"}]}根包裹:{"posts":[{"title":"Post1","body":"Hello!"},{"title":"Post2","body":"Goodbye!"}]} 最佳答案 首先,withoutroot代码不是有效的json格式。它将没有包

  8. ruby - 如何计算自 Ruby 中给定日期以来的周数? - 2

    目标我正在尝试计算自给定日期以来周的距离,而无需跳过任何步骤。我更喜欢用普通的Ruby来做,但ActiveSupport无疑是一个可以接受的选择。我的代码我写了以下内容,这似乎可行,但对我来说似乎还有很长的路要走。require'date'DAYS_IN_WEEK=7.0defweeks_sincedate_stringdate=Date.parsedate_stringdays=Date.today-dateweeks=days/DAYS_IN_WEEKweeks.round2endweeks_since'2015-06-15'#=>32.57ActiveSupport的#weeks

  9. 映宇宙2022年营收63亿元:同比下降三成,毛利率提升4.3个百分点 - 2

    3月26日,映宇宙(HK:03700,即“映客”)发布截至2022年12月31日的2022年度业绩财务报告。财报显示,映宇宙2022年的总营收为63.19亿元,较2021年同期的91.76亿元下降31.1%。2022年,映宇宙的经营亏损为4698.7万元,2021年同期则为净利润4.57亿元;期内亏损(净亏损)为1.68亿元,2021年同期的净利润为4.33亿元;非国际财务报告准则经调整净利润为3.88亿元,2021年同期为4.82亿元,同比下降19.6%。 映宇宙在财报中表示,收入减少主要是由于行业竞争加剧,该集团对旗下产品采取更为谨慎的运营策略以应对市场变化。不过,映宇宙的毛利率则有所提升

  10. 玩以太坊链上项目的必备技能(初识智能合约语言-Solidity之旅一) - 2

    前面一篇关于智能合约翻译文讲到了,是一种计算机程序,既然是程序,那就可以使用程序语言去编写智能合约了。而若想玩区块链上的项目,大部分区块链项目都是开源的,能看得懂智能合约代码,或找出其中的漏洞,那么,学习Solidity这门高级的智能合约语言是有必要的,当然,这都得在公链``````以太坊上,毕竟国内的联盟链有些是不兼容Solidity。Solidity是一种面向对象的高级语言,用于实现智能合约。智能合约是管理以太坊状态下的账户行为的程序。Solidity是运行在以太坊(Ethereum)虚拟机(EVM)上,其语法受到了c++、python、javascript影响。Solidity是静态类型

随机推荐