2022云计算技能大赛-私有云

私有云服务运维

【题目 1】OpenStack 开放镜像权限

使用 OpenStack 私 有 云 平 台 , 在 OpenStack 平台的 admin 项 目 中 使 用cirros-0.3.4-x86_64-disk.img 镜像文件创建名为glance-cirros 的镜像,通过OpenStack 命令将glance-cirros 镜像指定 demo 项目进行共享使用。配置完成后提交controller 点的用户名、密码和 IP 地址到答题框。

[root@controller ~]# openstack image create --disk-format qcow2 --container-format bare --file cirros-0.3.4-x86_64-disk.img glance-cirros
9+------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
| Field            | Value                                                                                                                                                                                      |
+------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
| checksum         | ee1eca47dc88f4879d8a229cc70a07c6                                                                                                                                                           |
| container_format | bare                                                                                                                                                                                       |
| created_at       | 2022-09-19T07:02:51Z                                                                                                                                                                       |
| disk_format      | qcow2                                                                                                                                                                                      |
| file             | /v2/images/3bac7fd7-bc66-4586-9872-3cbea90da5d2/file                                                                                                                                       |
| id               | 3bac7fd7-bc66-4586-9872-3cbea90da5d2                                                                                                                                                       |
| min_disk         | 0

    |
| min_ram          | 0

    |
| name             | glance-cirros

    |
| owner            | 1b29cb9baa394a0eb3d531913dc9ccec

    |
| properties       | os_hash_algo='sha512', os_hash_value='1b03ca1bc3fafe448b90583c12f367949f8b0e665685979d95b004e48574b953316799e23240f4f739d1b5eb4c4ca24d38fdc6f4f9d8247a2bc64db25d6bbdb2', os_hidden='False' |
| protected        | False

    |
| schema           | /v2/schemas/image

    |
| size             | 13287936

    |
| status           | active

    |
| tags             |

    |
| updated_at       | 2022-09-19T07:02:53Z

    |
| virtual_size     | None

    |
| visibility       | shared

    |
+------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
[root@controller ~]#
[root@controller ~]# openstack domain list
+----------------------------------+---------+---------+--------------------+
| ID                               | Name    | Enabled | Description        |
+----------------------------------+---------+---------+--------------------+
| 7fc907bd4a6e471aa6d714ff66646d2a | huhy    | True    | Default Domain     |
| default                          | Default | True    | The default domain |
+----------------------------------+---------+---------+--------------------+
[root@controller ~]#
[root@controller ~]# glance member-create 3bac7fd7-bc66-4586-9872-3cbea90da5d2 7fc907bd4a6e471aa6d714ff66646d2a
# 镜像id 域名id
+--------------------------------------+----------------------------------+---------+
| Image ID                             | Member ID                        | Status  |
+--------------------------------------+----------------------------------+---------+
| 3bac7fd7-bc66-4586-9872-3cbea90da5d2 | 7fc907bd4a6e471aa6d714ff66646d2a | pending |
+--------------------------------------+----------------------------------+---------+
[root@controller ~]#
[root@controller ~]# glance member-update 3bac7fd7-bc66-4586-9872-3cbea90da5d2 7fc907bd4a6e471aa6d714ff66646d2a accepted                                                                                    +--------------------------------------+----------------------------------+----------+
| Image ID                             | Member ID                        | Status   |
+--------------------------------------+----------------------------------+----------+
| 3bac7fd7-bc66-4586-9872-3cbea90da5d2 | 7fc907bd4a6e471aa6d714ff66646d2a | accepted |
+--------------------------------------+----------------------------------+----------+
[root@controller ~]#

1.检查glance-cirros 镜像权限开放正确计 0.5 分

【题目 2】OpenStack 消息队列调优

OpenStack 各服务内部通信都是通过 RPC 来交互,各 agent 都需要去连接 RabbitMQ; 随着各服务 agent 增多,MQ 的连接数会随之增多,最终可能会到达上限,成为瓶颈。使用自行搭建的OpenStack 私有云平台,分别通过用户级别、系统级别、配置文件来设置RabbitMQ 服务的最大连接数为 10240,配置完成后提交修改节点的用户名、密码和 IP 地址到答题框。

[root@controller ~]# vi /etc/sysctl.conf
fs.file-max=10240
#在sysctl.conf文件的最下方添加一行fs.file-max=10240
[root@controller ~]# sysctl -p
fs.file-max = 10240

[root@controller ~]# vi /etc/security/limits.conf
openstack soft     nofile  10240
openstack hard     nofile  10240
#在配置文件的最后添加两行内容如上,修改完之后,保存退出

[root@controller ~]# vi /usr/lib/systemd/system/rabbitmq-server.service
#在[Service]下添加一行参数如下:
LimitNOFILE=10240
#重启服务
[root@controller ~]# systemctl daemon-reload
[root@controller ~]# systemctl restart rabbitmq-server

[root@controller ~]# rabbitmqctl status
Status of node rabbit@controller
[{pid,4561},
 {running_applications,
 ..........
 {file_descriptors,
     [{total_limit,10140},   #已经有100个连接数,可以看到当前的RabbitMQ已被修改
      {total_used,77},
      {sockets_limit,9124},
      {sockets_used,75}]},
 {processes,[{limit,1048576},{used,1150}]},
 {run_queue,0},
 {uptime,40},
 {kernel,{net_ticktime,60}}]

1.检查 rabbitmq 服务最大连接数正确计 0.5 分

【题目 3】OpenStack Glance 镜像压缩

使用自行搭建的 OpenStack 平台。在 HTTP 服务中存在一个镜像为CentOS7.5-compress.qcow2 的镜像,请使用 qemu 相关命令,对该镜像进行压缩,压缩后的镜像命名为chinaskill-js-compress.qcow2 并存放在/root 目录下。完成后提交 controller 点的用户名、密码和 IP 地址到答题框。

[root@controller ~]# du -sh CentOS7.5-compress.qcow2
892M CentOS7.5-compress.qcow2
[root@controller ~]# qemu-img convert -c -O qcow2 CentOS7.5-compress.qcow2 CentOS7.5-compress2.qcow2

-c 压缩
-O qcow2 输出格式为 qcow2
CentOS7.5-compress.qcow2   被压缩的文件
CentOS7.5-compress2.qcow2 压缩完成后文件

[root@controller ~]# du -sh CentOS7.5-compress2.qcow2
405M CentOS7.5-compress2.qcow2

1.检查镜像压缩正确计 0.5 分

【题目 4】glance 对接 cinder 后端存储

在自行搭建的OpenStack 平台中修改相关参数,使glance 可以使用cinder 作为后端存储, 将镜像存储于cinder 卷中。使用 cirros-0.3.4-x86_64-disk.img 文件创建 cirros-image 镜像存储于 cirros-cinder 卷中,通过 cirros-image 镜像使用 cinder 卷启动盘的方式进行创建虚拟机。完成后提交修改节点的用户名、密码和 IP 地址到答题框。

[root@controller ~]# vi /etc/glance/glance-api.conf

#show_multiple_locations = false

改为
show_multiple_locations = true


[root@controller ~]# systemctl restart openstack-glance-*
[root@controller ~]# vi /etc/cinder/cinder.conf

#allowed_direct_url_schemes =
改为
allowed_direct_url_schemes =cinder

#image_upload_use_internal_tenant = false
改为
image_upload_use_internal_tenant = true
#最后重启cinder
[root@controller ~]# systemctl restart openstack-cinderack-cinder-scheduler.service httpd

代码不全,还差一些操作,只有一半的分
 

1.检查修改glance 后端存储为 cinder 正确计 0.5 分

【题目 5】OpenStack Heat 运维:创建容器

在自行搭建的 OpenStack 私 有 云 平 台 上 , 在 /root 目录下编写 Heat 模板create_container.yaml,要求执行 yaml 文件可以创建名为 heat-swift 的容器。完成后提交控制节点的用户名、密码和 IP 地址到答题框。(在提交信息前请准备好 yaml 模板执行的环境)

[root@controller ~]# vim create_container.yaml

heat_template_version: 2014-10-16
resources:
  user:
    type: OS::Container::Swift
    properties:
      name: heat-swift

#此类题目,在dashboard界面上都有模板可以查询

1.执行heat 模板文件成功创建容器计 0.5 分

【题目 6】OpenStack Nova 清除缓存

在 OpenStack 平台的一台计算节点创建虚拟机,若是第一次在该节点创建次虚拟机,会先将镜像文件复制到该计算节点目录/var/lib/nova/instances/_base。长期下来,该目录会占用比较大的磁盘空间而要清理。可以通过修改 nova 的配置文件来自动清理该缓存目录,即在该节点没有使用某镜像启动的云主机,那么这个镜像在过一定的时间后会被自动删除。配置完成后提交改动节点的用户名、密码和 IP 地址到答题框。

此题默认配置文件是是正确的,直接提交即可得分

1.检查nova 配置自动清理缓存文件正确计 0.5 分

【题目 7】Redis 一主二从三哨兵模式

使用提供的 OpenStack 私有云平台,申请三台 CentOS7.9 系统的云主机,使用提供的http 源,在三个节点自行安装 Redis 服务并启动,配置 Redis 的访问需要密码,密码设置为123456。然后将这三个 Redis 节点配置为 Redis 的一主二从三哨兵架构,即一个 Redis 主节点,两个从节点,三个节点均为哨兵节点。配置完成后提交Redis 主节点的用户名、密码和IP 地址到答题框。

(1)环境配置
在这里插入图片描述
(2) 修改 Redis 配置文件(所有节点操作)

systemctl stop firewalld
setenforce 0
 
vim /opt/redis-5.0.7/sentinel.conf
protected-mode no								#17行,关闭保护模式
port 26379										#21行,Redis哨兵默认的监听端口
daemonize yes									#26行,指定sentinel为后台启动
logfile "/var/log/sentinel.log"					#36行,指定日志存放路径
dir "/var/lib/redis/6379"						#65行,指定数据库存放路径
sentinel monitor mymaster 192.168.154.19 6379 2	#84行,修改 指定该哨兵节点监控192.168.184.10:6379这个主节点,该主节点的名称是mymaster,最后的2的含义与主节点的故障判定有关:至少需要2个哨兵节点同意,才能判定主节点故障并进行故障转移
sentinel down-after-milliseconds mymaster 30000	#113行,判定服务器down掉的时间周期,默认30000毫秒(30秒)
sentinel failover-timeout mymaster 180000		#146行,故障节点的最大超时时间为180000(180秒)

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
(3)启动哨兵模式

cd /opt/redis-5.0.7/
redis-sentinel sentinel.conf &
注意!先启动主服务器,再启动从服务器

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

(4)查看哨兵信息

[root@slave2 redis-5.0.7]# redis-cli -p 26379 info Sentinel
# Sentinel
sentinel_masters:1
sentinel_tilt:0
sentinel_running_scripts:0
sentinel_scripts_queue_length:0
sentinel_simulate_failure_flags:0
master0:name=mymaster,status=ok,address=192.168.58.30:6379,slaves=2,sentinels=3
[1]+  完成                  redis-sentinel sentinel.conf

1.检查 redis 主从集群部署正确计 0.5 分
2.检查 redis 集群部署为哨兵节点正确计 0.5 分

【题目 8】Redis 服务调优-AOF

使用上一题安装的Redis 服务。在 Redis 中,AOF 配置为以三种不同的方式在磁盘上执行 write 或者 fsync。假设当前 Redis 压力过大,请配置 Redis 不执行 fsync。除此之外,避免AOF 文件过大,Redis 会进行 AOF 重写,生成缩小的 AOF 文件。请修改配置,让 AOF 重写时,不进行fsync 操作。配置完成后提交 Redis 节点的用户名、密码和 IP 地址到答题框。

[root@master ~]# vim /etc/redis.conf

no-appendfsync-on-rewrite no
aof-rewrite-incremental-fsync yes

#连个参数分别改为

aof-rewrite-incremental-fsync no
no-appendfsync-on-rewrite yes
#配置就是设置为yes时候,在aof重写期间会停止aof的fsync操作
[root@master ~]# systemctl restart redis
[root@master ~]#

1.检查配置 redis 不执行 fsync 正确计 0.5 分、
2.检查配置 redis 进行 AOF 重写不执行 fsync 正确计 0.5 分

【题目 9】应用部署:堡垒机部署

使用提供的 OpenStack 平台申请一台 CentOS7.9 的云主机,使用提供的软件包安装JumpServer 堡垒机服务,并配置使用该堡垒机对接自己安装的 controller 和 compute 节点。完成后提交 JumpServer 节点的用户名、密码和 IP 地址到答题框。

使用提供的软件包配置Yum源,通过地址将jumpserver.tar.gz软件包下载至Jumpserver节点的/root目录下

[root@jumpserver ~]# ls
anaconda-ks.cfg  jumpserver.tar.gz  original-ks.cfg

解压软件包jumpserver.tar.gz至/opt目录下

[root@jumpserver ~]# tar -zxvf jumpserver.tar.gz -C /opt/
[root@jumpserver ~]# ls /opt/
compose  config  docker  docker.service  images  jumpserver-repo  static.env

将默认Yum源移至其他目录,创建本地Yum源文件

[root@jumpserver ~]# mv /etc/yum.repos.d/* /mnt/
[root@jumpserver ~]# cat >> /etc/yum.repos.d/jumpserver.repo << EOF
[jumpserver]
name=jumpserver
baseurl=file:///opt/jumpserver-repo
gpgcheck=0
enabled=1
EOF
[root@jumpserver ~]# yum repolist
repo id		repo name		status
jumpserver	jumpserver		2

安装Python数据库

[root@jumpserver ~]# yum install python2 -y

安装配置Docker环境

[root@jumpserver opt]# cp -rf /opt/docker/* /usr/bin/
[root@jumpserver opt]# chmod 775 /usr/bin/docker*
[root@jumpserver opt]# cp -rf /opt/docker.service /etc/systemd/system
[root@jumpserver opt]# chmod 775 /etc/systemd/system/docker.service 
[root@jumpserver opt]# systemctl daemon-reload
[root@jumpserver opt]# systemctl enable docker --now
Created symlink from /etc/systemd/system/multi-user.target.wants/docker.service to /etc/systemd/system/dock
er.service.

验证服务状态

[root@jumpserver opt]# docker -v
Docker version 18.06.3-ce, build d7080c1
[root@jumpserver opt]# docker-compose -v
docker-compose version 1.27.4, build 40524192
[root@jumpserver opt]# 

安装Jumpserver服务

[root@jumpserver images]# ls
jumpserver_core_v2.11.4.tar  jumpserver_lion_v2.11.4.tar  jumpserver_nginx_alpine2.tar
jumpserver_koko_v2.11.4.tar  jumpserver_luna_v2.11.4.tar  jumpserver_redis_6-alpine.tar
jumpserver_lina_v2.11.4.tar  jumpserver_mysql_5.tar       load.sh
[root@jumpserver images]# cat load.sh 
#!/bin/bash
docker load -i jumpserver_core_v2.11.4.tar
docker load -i jumpserver_koko_v2.11.4.tar
docker load -i jumpserver_lina_v2.11.4.tar
docker load -i jumpserver_lion_v2.11.4.tar
docker load -i jumpserver_luna_v2.11.4.tar
docker load -i jumpserver_mysql_5.tar
docker load -i jumpserver_nginx_alpine2.tar
docker load -i jumpserver_redis_6-alpine.tar
[root@jumpserver images]# sh load.sh 

创建Jumpserver服务组件目录

[root@jumpserver images]# mkdir -p /opt/jumpserver/{core,koko,lion,mysql,nginx,redis}
[root@jumpserver images]# cp -rf /opt/config /opt/jumpserver/

生效环境变量static.env,使用所提供的脚本up.sh启动Jumpserver服务

[root@jumpserver compose]# ls
config_static                docker-compose-lb.yml              docker-compose-network.yml         down.sh
docker-compose-app.yml       docker-compose-mysql-internal.yml  docker-compose-redis-internal.yml  up.sh
docker-compose-es.yml        docker-compose-mysql.yml           docker-compose-redis.yml
docker-compose-external.yml  docker-compose-network_ipv6.yml    docker-compose-task.yml
[root@jumpserver compose]# source /opt/static.env 
[root@jumpserver compose]# sh up.sh 
Creating network "jms_net" with driver "bridge"
Creating jms_redis ... done
Creating jms_mysql ... done
Creating jms_core  ... done
Creating jms_lina   ... done
Creating jms_nginx  ... done
Creating jms_celery ... done
Creating jms_lion   ... done
Creating jms_luna   ... done
Creating jms_koko   ... done
[root@jumpserver compose]#

浏览器访问http://10.24.193.142,Jumpserver Web登录(admin/admin)
图1 Web登录.png

图1 Web登录

登录成功后,会提示设置新密码,如图2所示:

图2 修改密码.png

图2 修改密码

登录平台后,单击页面右上角下拉菜单切换中文字符设置,如图3所示:

图3 登录成功.png

图3 登录成功

至此Jumpserver安装完成。

(6)管理资产

使用管理员admin用户登录Jumpserver管理平台,单击左侧导航栏,展开“资产管理”项目,选择“管理用户”,单击右侧“创建”按钮,如图4所示:

图4 管理用户.png

图4 管理用户

创建远程连接用户,用户名为root密码为“Abc@1234”,单击“提交”按钮进行创建,如图5所示:

图5 创建管理用户.png

图5 创建管理用户

选择“系统用户”,单击右侧“创建”按钮,创建系统用户,选择主机协议“SSH”,设置用户名root,密码为服务器SSH密码并单击“提交”按钮,如图6所示:

图6 创建系统用户.png

图6 创建系统用户

单击左侧导航栏,展开“资产管理”项目,选择“资产列表”,单击右侧“创建”按钮,如图7所示:

图7 管理资产.png

图7 管理资产

创建资产,将云平台主机(controller)加入资产内,如图8、图9所示:

图8 创建资产controller.png

图8 创建资产controller

图9 创建成功.png

图9 创建成功

(7)资产授权

单击左侧导航栏,展开“权限管理”项目,选择“资产授权”,单击右侧“创建”按钮,创建资产授权规则,如图10所示:

图10 创建资产授权规则.png

图10 创建资产授权规则

(8)测试连接

单击右上角管理员用户下拉菜单,选择“用户界面”,如图11所示:

图11 创建资产授权规则.png

图11 创建资产授权规则

如果未出现Default项目下的资产主机,单击收藏夹后“刷新”按钮进行刷新,如图12所示:

图12 查看资产.png

图12 查看资产

单击左侧导航栏,选择“Web终端”进入远程连接页面,如图13所示:

图13 进入远程连接终端.png

图13 进入远程连接终端

单击左侧Default,展开文件夹,单击controller主机,右侧成功连接主机,如图14所示:

图14 测试连接.png

图14 测试连接

至此OpenStack对接堡垒机案例操作成功。

【题目 10】skywalking 服务部署与应用

使用提供的 OpenStack 私有云平台,申请一台 centos7.9 系统的云主机,使用提供的软件包安装 Elasticsearch 服务和 skywalking 服务,将 skywalking 的 UI 访问端口修改为 8888。接下来再申请一台CentOS7.9 的云主机,用于搭建gpmall 商城应用,并配置SkyWalking Agent, 将 gpmall 的 jar 包放置探针并启动。安装与配置完成后提交 skywalking 节点的用户名、密码和 IP 地址到答题框。

登录物理OpenStack平台,使用CentOS7.9镜像创建两台云主机(node-1,mall),云主机类型使用4VCPU/8GB内存/100GB硬盘。创建后的云主机作为本次案例的实验节点。

修改主机名

[root@node-1 ~]# hostnamectl set-hostname node-1
[root@node-1 ~]# hostnamectl
  Static hostname: node-1
        Icon name: computer-vm
          Chassis: vm
      Machine ID: cc2c86fe566741e6a2ff6d399c5d5daa
          Boot ID: 6c32a0c1d29e4f30929422c8032239ca
  Virtualization: kvm
Operating System: CentOS Linux 7 (Core)
      CPE OS Name: cpe:/o:centos:centos:7
          Kernel: Linux 3.10.0-1160.el7.x86_64
    Architecture: x86-64

将提供的elasticsearch-7.17.0-linux-x86_64.tar.gz软件包上传到此节点并解压到/opt目录,进入解压后的目录并创建data目录

[root@node-1 ~]# tar -zxvf elasticsearch-7.17.0-linux-x86_64.tar.gz -C /opt
[root@node-1 ~]# cd /opt/elasticsearch-7.17.0/
[root@node-1 elasticsearch-7.17.0]# mkdir data

修改Elasticsearch配置,修改并添加如下几行内容

[root@node-1 elasticsearch-7.17.0]# vi config/elasticsearch.yml
…
cluster.name: my-application
node.name: node-1
path.data: /opt/elasticsearch-7.17.0/data
path.logs: /opt/elasticsearch-7.17.0/logs
network.host: 0.0.0.0
cluster.initial_master_nodes: ["node-1"]
…
http.cors.enabled: true
http.cors.allow-origin: "*"
http.cors.allow-headers: Authorization,X-Requested-With,Content-Length,Content-Type

创建Elasticsearch启动用户,并设置属组及权限

[root@node-1 elasticsearch-7.17.0]# groupadd elsearch
[root@node-1 elasticsearch-7.17.0]# useradd elsearch -g elsearch -p elasticsearch
[root@node-1 elasticsearch-7.17.0]# chown -R elsearch:elsearch /opt/elasticsearch-7.17.0

修改资源限制及内核配置,添加如下内容

[root@node-1 elasticsearch-7.17.0]# vi /etc/security/limits.conf
…
* hard   nofile           65536
* soft   nofile           65536
[root@node-1 elasticsearch-7.17.0]# vi /etc/sysctl.conf
vm.max_map_count=262144
[root@node-1 elasticsearch-7.17.0]# sysctl -p
[root@node-1 elasticsearch-7.17.0]# reboot

启动Elasticsearch服务

[root@node-1 ~]# cd /opt/elasticsearch-7.17.0/
[root@node-1 elasticsearch-7.17.0]# su elsearch
[elsearch@node-1 elasticsearch-7.17.0]$ ./bin/elasticsearch -d
按Ctrl+D退出

查询端口,存在9200则成功启动

[root@node-1 elasticsearch-7.17.0]# netstat -ntpl
Active Internet connections (only servers)
Proto Recv-Q Send-Q Local Address     Foreign Address       State       PID/Program name
tcp        0      0 0.0.0.0:22         0.0.0.0:*             LISTEN      1081/sshd      
tcp        0      0 127.0.0.1:25       0.0.0.0:*             LISTEN      1041/master    
tcp        0      0 0.0.0.0:111        0.0.0.0:*             LISTEN      610/rpcbind    
tcp6       0      0 :::9300           :::*                 LISTEN      2261/java      
tcp6       0      0 :::22             :::*                 LISTEN      1081/sshd      
tcp6       0      0 ::1:25             :::*                 LISTEN      1041/master    
tcp6       0      0 :::111             :::*                 LISTEN      610/rpcbind    
tcp6       0      0 :::9200           :::*                 LISTEN      2261/java

使用提供的jdk-8u144-linux-x64.tar.gz软件包,上传jdk软件包,配置jdk如下

[root@node-1 ~]# tar -zxvf jdk-8u144-linux-x64.tar.gz -C /usr/local/
[root@node-1 ~]# vi /etc/profile
# /etc/profile
export JAVA_HOME=/usr/local/jdk1.8.0_144
export CLASSPATH=.:${JAVA_HOME}/jre/lib/rt.jar:${JAVA_HOME}/lib/dt.jar:${JAVA_HOME}/lib/tools.jar
export PATH=$PATH:${JAVA_HOME}/bin
…
[root@node-1 ~]# source /etc/profile
[root@node-1 ~]# java -version
java version "1.8.0_144"
Java(TM) SE Runtime Environment (build 1.8.0_144-b01)
Java HotSpot(TM) 64-Bit Server VM (build 25.144-b01, mixed mode)

进入解压后目录,修改OAP配置文件

[root@node-1 ~]# cd /opt/apache-skywalking-apm-bin-es7/
[root@node-1 apache-skywalking-apm-bin-es7]# vi config/application.yml
…
#集群配置使用单机版
cluster:
selector: ${SW_CLUSTER:standalone}
standalone:
…
#数据库使用elasticsearch7
storage:
selector: ${SW_STORAGE:elasticsearch7}
…
elasticsearch7:
  nameSpace: ${SW_NAMESPACE:""}
  clusterNodes: ${SW_STORAGE_ES_CLUSTER_NODES:172.128.11.32:9200}

启动OAP服务,查询端口,存在11800与12800则成功启动

[root@node-1 apache-skywalking-apm-bin-es7]# ./bin/oapService.sh
SkyWalking OAP started successfully!
[root@node-1 apache-skywalking-apm-bin-es7]# netstat -ntpl
Active Internet connections (only servers)
Proto Recv-Q Send-Q Local Address       Foreign Address     State     PID/Program name
tcp        0      0 0.0.0.0:22           0.0.0.0:*           LISTEN     1081/sshd      
tcp        0      0 127.0.0.1:25         0.0.0.0:*           LISTEN     1041/master    
tcp        0      0 0.0.0.0:111          0.0.0.0:*           LISTEN     610/rpcbind    
tcp6       0      0 :::9300             :::*                 LISTEN     2261/java      
tcp6       0      0 :::22               :::*                 LISTEN     1081/sshd      
tcp6       0      0 :::11800             :::*                 LISTEN     2416/java      
tcp6       0      0 ::1:25               :::*                 LISTEN     1041/master    
tcp6       0      0 :::12800             :::*                 LISTEN     2416/java      
tcp6       0      0 :::111               :::*                 LISTEN     610/rpcbind    
tcp6       0      0 :::9200             :::*                 LISTEN     2261/java

部署SkyWalking UI服务由于SkyWalking UI的默认地址是8080,与很多中间件可能存在冲突,修改一下

[root@node-1 apache-skywalking-apm-bin-es7]# vi webapp/webapp.yml
…
server:
port: 8888
…

启动SkyWalking UI服务

[root@node-1 apache-skywalking-apm-bin-es7]# ./bin/webappService.sh
SkyWalking Web Application started successfully!

查看端口,存在8888则成功启动

[root@node-1 apache-skywalking-apm-bin-es7]# netstat -ntpl
Active Internet connections (only servers)
Proto Recv-Q Send-Q Local Address       Foreign Address     State       PID/Program name
tcp        0      0 0.0.0.0:22           0.0.0.0:*           LISTEN      1081/sshd      
tcp        0      0 127.0.0.1:25         0.0.0.0:*           LISTEN      1041/master    
tcp        0      0 0.0.0.0:111          0.0.0.0:*           LISTEN      610/rpcbind    
tcp6       0      0 :::9300             :::*               LISTEN      2261/java      
tcp6       0      0 :::22               :::*               LISTEN      1081/sshd      
tcp6       0      0 :::8888             :::*               LISTEN      3133/java      
tcp6       0      0 :::11800             :::*               LISTEN      2416/java      
tcp6       0      0 ::1:25               :::*               LISTEN      1041/master    
tcp6       0      0 :::12800             :::*               LISTEN      2416/java      
tcp6       0      0 :::111               :::*               LISTEN      610/rpcbind    
tcp6       0      0 :::9200             :::*               LISTEN      2261/java

搭建并启动应用商城服务,并配置SkyWalking Agent修改mall节点主机名

[root@localhost ~]# hostnamectl set-hostname mall
[root@mall ~]# hostnamectl
  Static hostname: mall
        Icon name: computer-vm
          Chassis: vm
      Machine ID: cc2c86fe566741e6a2ff6d399c5d5daa
          Boot ID: 51559d155ec14aafad2411ca8b85db42
  Virtualization: kvm
Operating System: CentOS Linux 7 (Core)
      CPE OS Name: cpe:/o:centos:centos:7
          Kernel: Linux 3.10.0-1160.el7.x86_64
    Architecture: x86-64

修改/etc/hosts配置文件如下

[root@mall ~]# cat /etc/hosts
127.0.0.1   localhost localhost.localdomain localhost4 localhost4.localdomain4
::1         localhost localhost.localdomain localhost6 localhost6.localdomain6

172.128.11.42 mal

将提供的gpmall包上传到服务器的/root目录下并解压gpmall.tar.gz,配置本地local.repo文件

[root@mall ~]# mv /etc/yum.repos.d/* /media/
[root@mall ~]# cd gpmall/
[root@mall gpmall]# tar -zxvf gpmall-repo.tar.gz -C /root/
[root@mall ~]# cat /etc/yum.repos.d/local.repo
[mall]
name=mall
baseurl=file:///root/gpmall-repo
gpgcheck=0
enabled=1

安装基础服务,包括Java JDK环境、数据库、Redis、Nginx等

[root@mall ~]# yum install -y java-1.8.0-openjdk java-1.8.0-openjdk-devel
...
[root@mall ~]# java -version
openjdk version "1.8.0_322"
OpenJDK Runtime Environment (build 1.8.0_322-b06)
OpenJDK 64-Bit Server VM (build 25.322-b06, mixed mode)
[root@mall ~]# yum install redis -y
[root@mall ~]# yum install nginx -y
[root@mall ~]# yum install mariadb mariadb-server -y
[root@mall ~]# tar -zxvf zookeeper-3.4.14.tar.gz

#进入到zookeeper-3.4.14/conf目录下,将zoo_sample.cfg文件重命名为zoo.cf

[root@mall ~]# cd zookeeper-3.4.14/conf/
[root@mall conf]# mv zoo_sample.cfg zoo.cfg
[root@mall conf]# cd ../bin
[root@mall bin]# ./zkServer.sh start
ZooKeeper JMX enabled by default
Using config: /root/zookeeper-3.4.14/bin/../conf/zoo.cfg
Starting zookeeper ... STARTED

#查看ZooKeeper状态

[root@mall bin]# ./zkServer.sh status
ZooKeeper JMX enabled by default
Using config: /root/zookeeper-3.4.14/bin/../conf/zoo.cfg
Mode: standalone

安装Kafka服务,将提供的kafka_2.11-1.1.1.tgz包上传到mall节点上

[root@mall bin]# cd
[root@mall ~]# tar -zxvf kafka_2.11-1.1.1.tgz
[root@mall ~]# cd kafka_2.11-1.1.1/bin/
[root@mall bin]# ./kafka-server-start.sh -daemon ../config/server.properties
[root@mall bin]# jps
6039 Kafka
1722 QuorumPeerMain
6126 Jps
[root@mall bin]# netstat -ntpl
Active Internet connections (only servers)
Proto Recv-Q Send-Q Local Address       Foreign Address     State       PID/Program name    
tcp        0      0 0.0.0.0:22           0.0.0.0:*           LISTEN      1008/sshd  
tcp        0      0 127.0.0.1:25         0.0.0.0:*           LISTEN      887/master  
tcp6       0      0 :::9092             :::*               LISTEN      6039/java  
tcp6       0      0 :::46949             :::*               LISTEN      6039/java  
tcp6       0      0 :::2181             :::*               LISTEN      1722/java  
tcp6       0      0 :::48677             :::*               LISTEN      1722/java  
tcp6       0      0 :::22               :::*               LISTEN      1008/sshd  
tcp6       0      0 ::1:25               :::*               LISTEN      887/master

修改数据库配置文件并启动MariaDB数据库,设置root用户密码为123456,并创建gpmall数据库,将提供的gpmall.sql导入。

[root@mall bin]# cd
[root@mall ~]# vi /etc/my.cnf
[mysqld]
…
!includedir /etc/my.cnf.d
init_connect='SET collation_connection = utf8_unicode_ci'
init_connect='SET NAMES utf8'
character-set-server=utf8
collation-server=utf8_unicode_ci
skip-character-set-client-handshake

[root@mall ~]# systemctl start mariadb

设置root用户的权限,命令如下

MariaDB [(none)]> grant all privileges on *.* to root@localhost identified by '123456' with grant option;
Query OK, 0 rows affected (0.001 sec)

MariaDB [(none)]> grant all privileges on *.* to root@"%" identified by '123456' with grant option;
Query OK, 0 rows affected (0.001 sec)

将gpmall.sql文件上传至云主机的/root目录下。创建数据库gpmall并导入gpmall.sql文件。

MariaDB [(none)]> create database gpmall;
Query OK, 1 row affected (0.00 sec)
MariaDB [(none)]> use gpmall;
MariaDB [gpmall]> source /root/gpmall/gpmall.sql

退出数据库并设置开机自启

MariaDB [gpmall]> Ctrl-C -- exit!
Aborted
[root@mall ~]# systemctl enable mariadb
Created symlink from /etc/systemd/system/mysql.service to /usr/lib/systemd/system/mariadb.service.
Created symlink from /etc/systemd/system/mysqld.service to /usr/lib/systemd/system/mariadb.service.
Created symlink from /etc/systemd/system/multi-user.target.wants/mariadb.service to /usr/lib/systemd/system/mariadb.service.

修改Redis配置文件,编辑/etc/redis.conf文件。
将bind 127.0.0.1这一行注释掉;将protected-mode yes 改为 protected-mode no。

[root@mall ~]# vi /etc/redis.conf
…
#bind 127.0.0.1
protected-mode no
…
[root@mall ~]# systemctl start redis
[root@mall ~]# systemctl enable redis
Created symlink from /etc/systemd/system/multi-user.target.wants/redis.service to /usr/lib/systemd/system/redis.service.

启动Nginx服务命令如下

[root@mall ~]# systemctl start nginx
[root@mall ~]# systemctl enable nginx
Created symlink from /etc/systemd/system/multi-user.target.wants/nginx.service to /usr/lib/systemd/system/nginx.service.

应用系统部署,使用提供gpmall-shopping-0.0.1-SNAPSHOT.jar、gpmall-user-0.0.1-SNAPSHOT.jar、shopping-provider-0.0.1-SNAPSHOT.jar、user-provider-0.0.1-SNAPSHOT.jar 、dist这5个包部署应用系统,其中4个jar包为后端服务包,dist为前端包。(包在gpmall目录下)
修改/etc/hosts文件,修改项目全局配置文件如下(原有的172.128.11.42 mall映射删除)

[root@mall ~]# cat /etc/hosts
127.0.0.1   localhost localhost.localdomain localhost4 localhost4.localdomain4
::1         localhost localhost.localdomain localhost6 localhost6.localdomain6
172.128.11.42 kafka.mall
172.128.11.42 mysql.mall
172.128.11.42 redis.mall
172.128.11.42 zookeeper.mall

清空默认项目路径下的文件,将dist目录下的文件,复制到Nginx默认项目路径

[root@mall ~]# rm -rf /usr/share/nginx/html/*
[root@mall ~]# cp -rvf gpmall/dist/* /usr/share/nginx/html/

修改Nginx配置文件/etc/nginx/nginx.conf,添加映射如下所示

[root@mall ~]# vi /etc/nginx/nginx.conf
…
  server {
      listen       80;
      listen       [::]:80;
      server_name _;
      root         /usr/share/nginx/html;

       # Load configuration files for the default server block.
      include /etc/nginx/default.d/*.conf;
       
      location / {
      root   /usr/share/nginx/html;
      index index.html index.htm;
      }
      location /user {
          proxy_pass http://127.0.0.1:8082;
      }

      location /shopping {
          proxy_pass http://127.0.0.1:8081;
      }

      location /cashier {
          proxy_pass http://127.0.0.1:8083;
      }

      error_page 404 /404.html;
…
[root@mall ~]# systemctl restart nginx

到此,前端部署完毕。

部署后端

将node-1节点的/opt/apache-skywalking-apm-bin-es7目录下的agent目录复制到mall节点下:

[root@mall ~]# scp -r 172.128.11.32:/opt/apache-skywalking-apm-bin-es7/agent /root

修改SkyWalking agent配置文件

[root@mall ~]# vi agent/config/agent.config
…
agent.service_name=${SW_AGENT_NAME:my-application}
agent.sample_n_per_3_secs=${SW_AGENT_SAMPLE:1}
…
collector.backend_service=${SW_AGENT_COLLECTOR_BACKEND_SERVICES:172.128.11.32:11800}
…

将提供的4个jar包上传到服务器的/root目录下,放置探针并启动,通过设置启动参数的方式检测系统,启动命令如下:

[root@mall ~]# nohup java -javaagent:/root/agent/skywalking-agent.jar -jar gpmall/shopping-provider-0.0.1-SNAPSHOT.jar &
[1] 20086
[root@mall ~]# nohup: ignoring input and appending output to ‘nohup.out’

[root@mall ~]# nohup java -javaagent:/root/agent/skywalking-agent.jar -jar gpmall/user-provider-0.0.1-SNAPSHOT.jar &
[2] 20132
[root@mall ~]# nohup: ignoring input and appending output to ‘nohup.out’

[root@mall ~]# nohup java -javaagent:/root/agent/skywalking-agent.jar -jar gpmall/gpmall-shopping-0.0.1-SNAPSHOT.jar &
[3] 20177
[root@mall ~]# nohup: ignoring input and appending output to ‘nohup.out’

[root@mall ~]# nohup java -javaagent:/root/agent/skywalking-agent.jar -jar gpmall/gpmall-user-0.0.1-SNAPSHOT.jar &
[4] 20281
[root@mall ~]# nohup: ignoring input and appending output to ‘nohup.out’
# httpd访问网络配置
[root@mall ~]# setsebool -P httpd_can_network_connect 1

按照顺序运行4个jar包后,至此后端服务部署完毕
打开浏览器,在地址栏中输入http://localhost,访问界面

在这里插入图片描述
单击右上角“头像”,进行登录操作,使用用户名/密码为test/test进行登录

1.检查 skywalking 服务部署正确计 1 分

【题目 11】Linux 内核优化

在使用 Linux 服务器的时候,TCP 协议规定,对于已经建立的连接,网络双方要进行四次挥手才能成功断开连接,如果缺少了其中某个步骤,将会使连接处于假死状态,连接本身占用的资源不会被释放。因为服务器程序要同时管理大量连接,所以很有必要保证无用的连接完全断开,否则大量僵死的连接会浪费许多服务器资源。创建一台 CentOS7.9 云主机,修改相应的配置文件,分别开启 SYN Cookies;允许将 TIME-WAIT sockets 重新用于新的 TCP 连接;开启TCP 连接中TIME-WAIT sockets 的快速回收;修改系統默认的 TIMEOUT 时间为 30。完成后提交修改节点的用户名、密码和 IP 地址到答题框。

[root@container ~]# vim /etc/sysctl.conf

#添加如下参数
net.ipv4.tcp_syncookies = 1
net.ipv4.tcp_tw_reuse = 1
net.ipv4.tcp_tw_recycle = 1
net.ipv4.tcp_fin_timeout = 30

[root@container ~]# sysctl -p
net.bridge.bridge-nf-call-iptables = 1
net.bridge.bridge-nf-call-ip6tables = 1
net.ipv4.tcp_syncookies = 1
net.ipv4.tcp_tw_reuse = 1
net.ipv4.tcp_tw_recycle = 1
net.ipv4.tcp_fin_timeout = 30
[root@container ~]#

1.检查内核优化正确计 1 分

【题目 12】排错:Glance 服务排错[1 分]

使用赛项提供的 chinaskill-error1 镜像启动云主机,flavor 使用 4vcpu/12G 内存/100G 硬盘。启动后存在错误的私有云平台,错误现象为查看不到 image 列表,试根据错误信息排查云平台错误,使云平台可以查询到 image 信息。完成后提交云主机节点的用户名、密码和 IP 地址到答题框。

需要比赛镜像根据实际情况操作

1.检查错误镜像glance 服务启动正确计 1 分

【题目 13】排错:数据库排错[1.5 分]

使用赛项提供的排错镜像 chinaskill-error2 创建一台云主机(云主机的登录用户名为 root, 密码为 000000),该云主机中存在错误的数据库服务,错误现象为数据库服务无法启动。请将数据库服务修复并启动,将数据库的密码修改为 chinaskill123。修复完成后提交该云主机的用户名、密码和 IP 地址到答题框。

需要比赛镜像根据实际情况操作
或者使用正常镜像创建一个数据库

1.检查错误镜像数据库服务启动正确计 1.5 分

  • 1
    点赞
  • 18
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值