【赛程名称】第一场:模块一 私有云、模块二 容器云

项目需求:某企业根据自身业务需求,实施数字化转型,规划和建设数字化平台建设,平台聚焦“DevOps 建运一体”和“数据驱动产品开发”,拟采用开源 OpenStack 搭建企业内部私有云平台,开源 Kubernetes 搭建云原生服务平台,选择国内主流公有云平台服务,基于数字化平台底座,面向业务开发云应用产品。

拟将该任务交给工程师 A 与 B,分工协助完成云平台服务部署、云应用开发、云系统运维等任务,系统架构如下:

系统架构如图 1 所示,IP 地址规划如表 1 所示。

图 1

系统架构图

表 1

IP 地址规划

设备名称

主机名

接口

IP 地址

说明

eth0

192.168.100.0/24

Vlan x

云服务器1

Controller

eth1

自定义

自行创建

eth0

192.168.100.0/24

Vlan x

云服务器2

Compute

eth1

自定义

自行创建

云服务器3...云服务器 n

自定义

eth0

192.168.x.0/24

用于实操题

PC-1

本地连接

172.16.232.0/24

PC 使用

说明:

1.竞赛使用集群模式进行,比赛时给每个参赛队提供独立的租户与用户,各用户的资源配额相同,选手通过用户名与密码登录竞赛用私有云平台,创建云主机进行相应答题;同组 2 名选手的账号密码一样。

2.表中的 x 为赛位号;在进行 OpenStack 搭建时的第二块网卡地址根据题意自行创建;

3.根据图表给出的信息,检查硬件连线及网络设备配置,确保网络连接正常;

4.考试所需要的账号资源、竞赛资源包与附件均会在考位信息表与设备确认单中给出;

5.竞赛过程中,为确保服务器的安全,请自行修改服务器密码;在考试系统提交信息时,请确认自己的 IP 地址,用户名和密码。

目录

模块一私有云;

【任务 1】私有云服务搭建[5 分]

【题目 1】1.1.1 基础环境配置[0.2 分]

【题目 2】1.1.2 Yum 源配置[0.2 分]

【题目 3】1.1.3 配置无秘钥 ssh[0.2 分]

【题目 4】1.1.4 基础安装[0.2 分]

【题目 5】1.1.5 数据库安装与调优[0.5 分]

【题目 6】1.1.6 Keystone 服务安装与使用[0.5 分]

【题目 7】1.1.7 Glance 安装与使用[0.5 分]

【题目 8】1.1.8 Nova 安装与优化[0.5 分]

【题目 9】1.1.9 Neutron 安装[0.2 分]

【题目 10】1.1.10 Dashboard 安装[0.5 分]

【题目 11】1.1.11 Swift 安装[0.5 分]

【题目 12】1.1.12 Cinder 创建硬盘[0.5 分]

【题目 13】1.1.13 配置主机禁 ping [0.5 分]

【任务 2】私有云服务运维[15 分]

【题目 1】1.2.1 Heat 编排-创建用户[1 分]

【题目 2】1.2.2 KVM 优化[1 分]

【题目 3】1.2.3 NFS 对接 Glance 后端存储[1 分]

【题目 4】1.2.4 Redis 主从[1 分]

【题目 5】1.2.5 Linux 系统调优-脏数据回写[1 分]

【题目 6】1.2.6 Glance 调优[1 分]

【题目 7】1.2.7 Ceph 部署[1 分]

【题目 8】1.2.8 Glance 对接 Ceph 存储[1 分]

【题目 9】1.2.9 Cinder 对接 Ceph 存储[1 分]

【题目 10】1.2.10 Nova 对接 Ceph 存储[1 分]

【题目 11】1.2.11 私有云平台优化:系统网络优化[1 分]

【题目 12】1.2.12 私有云平台排错:Neutron 网络组件排错[2 分]

【题目 13】1.2.13 私有云平台排错:Cinder 卷组件报错[2 分]

【任务 3】私有云运维开发[10 分]

【题目 1】1.3.1 编写 Shell 一键部署Owncloud网盘脚本[1.0 分]

【题目 2】1.3.2 Ansible 服务部署:部署 ELK 集群服务[2 分]

【题目 3】1.3.3 Ansible 部署 Kafka 服务[2.0 分]

【题目 4】1.3.4 OpenStack 资源管理的客户端程序开发 [2 分]

【题目 5】1.3.5 OpenStack 数据库操作开发[3 分]

模块二容器云;

【任务 4】容器云服务搭建[5 分]

【题目 1】2.1.1 部署容器云平台[5 分]

【任务 5】容器云服务运维[15 分]

【题目 1】2.2.1 容器化部署 MariaDB [0.5 分]

【题目 2】2.2.2 容器化部署 Redis [0.5 分]

【题目 3】2.2.3 容器化部署 Nginx [0.5 分]

【题目 4】2.2.4 容器化部署 ERP[0.5 分]

【题目 5】2.2.5 编排部署 ERP 管理系统[1 分]

参考

【题目 6】2.2.6 部署 GitLab [1 分]

【题目 7】2.2.7 部署 GitLab Runner [1 分]

【题目 8】2.2.8 部署 GitLab Agent [1 分]

【题目 9】2.2.9 构建 CI/CD [2 分]

【题目 10】2.2.10 服务网格:创建 VirtualService [1 分]

【题目 11】2.2.11 KubeVirt 运维:创建 VMI [1 分]

【题目 12】2.2.12 容器云平台优化:使用审计日志[2 分]

【题目 13】2.2.13 容器云平台排错:容器引擎报错[1.5 分]

【题目 14】2.2.14 容器云平台排错:DNS 服务报错[1.5 分]

【任务 6】容器云运维开发[10 分]

【题目 1】2.3.1 管理 service 资源[2 分]

【题目 2】2.3.2 管理 Pod 服务[3 分]

【题目 3】2.3.3 Kubernetes CRD 自定义资源的管理封装[3 分]

【题目 4】2.3.4 Kubernetes CRD 的自定义对象管理封装[2 分]

【赛程名称】模块三公有云

【任务 1】公有云服务搭建[5 分]

【适用平台】华为云

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

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

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

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

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

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

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

【题目 8】3.1.8 NAT 网关[0.5 分]

【题目 9】3.1.9 云备份[0.5 分]

【题目 10】3.1.10 负载均衡器[0.5 分]

【题目 11】3.1.11 弹性伸缩管理[0.5 分]

【任务 2】公有云服务运维[10 分]

【适用平台】华为云

【题目 1】3.2.1 云容器引擎[1 分]

【题目 2】3.2.2 云容器管理[1 分]

【题目 3】3.2.3 使用 kubectl 操作集群[2 分]

【题目 4】3.2.4 安装 helm[2 分]

【题目 5】3.2.5 chartmuseum 仓库部署[2 分]

【题目 6】3.2.6 WordPress 应用部署[2 分]

【任务 3】公有云运维开发[10 分]

【适用平台】华为云

【题目 1】3.3.1 开发环境搭建[1 分]

【题目 2】3.3.2 密钥对管理[2 分]

【题目 3】3.3.3 云硬盘管理[2 分]

【题目 4】3.3.4 云主机管理[3 分]

【题目 5】3.3.5 基于 FastAPI 框架封装华为云 VPC 服务 Restful APIs 接口[2 分]

【赛程名称】模块四边缘计算;

【任务 4】边缘计算系统运维[10 分]

【适用平台】私有云

【题目 1】4.1.1 KubeEdge cloudcore 云端模块部署与配置[3 分]

【题目 2】4.1.2 KubeEdge edgecore 边端模块部署与配置[4 分]

【题目 3】4.1.3 KubeEdge 应用部署-部署计数器应用[3 分]

【任务 5】边缘计算云应用开发[5.0 分]

【适用平台】私有云

【题目 1】5.1.1 开发环境构建与用户注册服务开发[1 分]

【题目 2】5.1.2 AI 检测服务与网关服务开发[1 分]

【题目 3】5.1.3 设备与设备模型管理服务开发[1 分]

【题目 4】5.1.4 云边数据协同开发[1 分]

【题目 5】5.1.5 云端节点管理开发[1 分]


模块一私有云;

【任务 1】私有云服务搭建[5 分] 

【适用平台】私有云

前置工作:

 挂载CD/DVD

1. 创建挂载点目录

你需要先准备一个目录用于挂载 ISO:

mkdir -p /mnt/cdrom

常见挂载点目录也可以是:/run/media /media/cdrom/mnt/iso

2. 挂载 ISO 镜像文件

假设镜像文件路径为:

  • /root/CentOS-7-x86_64-DVD.iso

mount -t iso9660 /root/CentOS-7-x86_64-DVD-2009.iso  /opt/centos

mount -t iso9660 /root/chinaskills_cloud_iaas_v2.0.3.iso /opt/iaas

查看挂载情况:df -h

完成。

 删除联网yum更新源配置

rm -f /etc/yum.repos.d/*
 vsftp安装(在挂载好之后安装,如果已安装则此步骤省略)

Controller控制节点挂载完成后需要安装vsftpd服务,开启ftp服务,以便compute计算节点可以直接使用更新源。

yum install vsftpd -y

修改配置文件:

vim /etc/vsftpd/vsftpd.conf

在配置文件最底下新增ftp目录:

anon_root=/opt/

调整权限:

chmod o-w /opt

启动ftp服务

systemctl start vsftpd
关闭SELinux
setenforce 0
关闭防火墙
systemctl stop firewalld
systemctl disable firewalld

前置环境初始化完成


【题目 1】1.1.1 基础环境配置[0.2 分] 

1.控制节点主机名为 controller,设置计算节点主机名为 compute;

2.hosts 文件将 IP 地址映射为主机名。

        使用提供的用户名密码,登录提供的 OpenStack 私有云平台,在当前租户下,使用 CentOS7.9 镜像,创建两台云主机,云主机类型使用 4vCPU/12G/100G_50G 类型。当前租户 下默认存在一张网卡,自行创建第二张网卡并连接至 controller 和 compute 节点(第二张 网卡的网段为 10.10.X.0/24,X 为工位号,不需要创建路由)。自行检查安全组策略,以 确保网络正常通信与 ssh 连接,然后按以下要求配置服务器:

1.设置控制节点主机名为 controller,设置计算节点主机名为 compute;

hostnamectl set-hostname controller 
bash

hostnamectl set-hostname compute
bash

2.修改 hosts 文件将 IP 地址映射为主机名; 完成后提交控制节点的用户名、密码和 IP 地址到答题框。

    【题目 2】1.1.2 Yum 源配置[0.2 分]

            使用提供的 http 服务地址,分别设置 controller 节点和 compute 节点的 yum 源文件 http.repo。         

            使用提供的 http 服务地址,在 http 服务下,存在 centos7.9 和 iaas 的网络 yum 源, 使用该 http 源作为安装 iaas 平台的网络源。分别设置 controller 节点和 compute 节点的 yum 源文件 http.repo。完成后提交控制节点的用户名、密码和 IP 地址到答题框。

    repo更新源文件目录:/etc/yum.repos.d/ ,在更新源文件目录下,新建http.repo文件,写入基本信息:

    vi /etc/yum.repos.d/http.repo

    Controller控制节点文件内容:

    [centos]
    name=centos
    baseurl=file:///opt/centos
    gpgcheck=0
    enabled=1
    
    [iaas]
    name=iaas
    baseurl=file:///opt/iaas/iaas-repo
    gpgcheck=0
    enabled=1

    解析:

    当前文件中的更新源为本地挂载的cd/dvd磁盘文件,file:///  三条杠的意思为主机,ftp://、http://两条杠为网络地址,gpgcheck的意思是不验证gpg密钥,

    Compute计算节点:

    计算节点将采用ftp更新源形式:

    [centos]
    name=centos
    baseurl=ftp://controller/centos
    gpgcheck=0
    enabled=1
    
    [iaas]
    name=iaas
    baseurl=ftp://controller/iaas/iaas-repo
    gpgcheck=0
    enabled=1

    完成。


    【题目 3】1.1.3 配置无秘钥 ssh[0.2 分] 

    配置 controller 节点可以无秘钥访问 compute 节点。

    配置 controller 节点可以无秘钥访问 compute 节点,配置完成后,尝试 ssh 连接 compute 节点的 hostname 进行测试。完成后提交 controller 节点的用户名、密码和 IP 地 址到答题框。

    两个节点都生成密钥:

    ssh-keygen

    一直回车即可:

    • 拷贝公钥到两个节点,注意,节点自身也需要拷贝,两个节点都执行:
    ssh-copy-id controller 
    ssh-copy-id compute

    copy执行后输入对方的ssh连接密码即可。

    测试:

    完成。

    故障类型:配置密钥访问后依然需要输入密码:

    # 确保家目录不是全局可写
    chmod 750 /root
    
    # .ssh 目录必须是 700
    chmod 700 /root/.ssh
    
    # authorized_keys 文件必须是 600
    chmod 600 /root/.ssh/authorized_keys

    【题目 4】1.1.4 基础安装[0.2 分] 

    在控制节点和计算节点上分别安装 openstack-iaas 软件包。

    在控制节点和计算节点上分别安装 openstack-iaas 软件包,根据表 2 配置两个节点脚 本文件中的基本变量(配置脚本文件为/etc/openstack/openrc.sh)。

    完成后提交控制节点的用户名、密码和 IP 地址到答题框。

    实验需求:计算节点密码均为root,与题目中不同,在此告示

    基础服务搭建

    安装搭建软件包

    所有节点执行:

    • 安装搭建脚本
    yum install openstack-iaas -y

    Controller节点:

    Compute节点:

    • 配置环境变量

    环境变量文件讲解:

    填写节点的IP地址与密码、填写时钟同步的网段、填写所有服务的密码等。

    参考配置文件:

    #--------------------system Config--------------------##
    #Controller Server Manager IP. example:x.x.x.x
    HOST_IP=192.168.100.128 #Controller控制节点管理网段IP
    
    #Controller HOST Password. example:000000 
    HOST_PASS=000000    #Controller控制节点密码
    
    #Controller Server hostname. example:controller
    HOST_NAME=controller   #Controller控制节点主机名
    
    #Compute Node Manager IP. example:x.x.x.x
    HOST_IP_NODE=192.168.100.129   #Compute计算节点管理网段IP
    
    #Compute HOST Password. example:000000 
    HOST_PASS_NODE=000000      #Compute计算节点密码
    
    #Compute Node hostname. example:compute
    HOST_NAME_NODE=compute    #Compute计算节点主机名
    
    #--------------------Chrony Config-------------------##
    #Controller network segment IP.  example:x.x.0.0/16(x.x.x.0/24)
    network_segment_IP=192.168.100.0/24  #私有云管理网网段
    
    #--------------------Rabbit Config ------------------##
    #user for rabbit. example:openstack
    RABBIT_USER=openstack
    
    #Password for rabbit user .example:000000
    RABBIT_PASS=000000
    
    #--------------------MySQL Config---------------------##
    #Password for MySQL root user . exmaple:000000
    DB_PASS=000000
    
    #--------------------Keystone Config------------------##
    #Password for Keystore admin user. exmaple:000000
    DOMAIN_NAME=demo
    ADMIN_PASS=000000
    DEMO_PASS=000000
    
    #Password for Mysql keystore user. exmaple:000000
    KEYSTONE_DBPASS=000000
    
    #--------------------Glance Config--------------------##
    #Password for Mysql glance user. exmaple:000000
    GLANCE_DBPASS=000000
    
    #Password for Keystore glance user. exmaple:000000
    GLANCE_PASS=000000
    
    #--------------------Placement Config----------------------##
    #Password for Mysql placement user. exmaple:000000
    PLACEMENT_DBPASS=000000
    
    #Password for Keystore placement user. exmaple:000000
    PLACEMENT_PASS=000000
    
    #--------------------Nova Config----------------------##
    #Password for Mysql nova user. exmaple:000000
    NOVA_DBPASS=000000
    
    #Password for Keystore nova user. exmaple:000000
    NOVA_PASS=000000
    
    #--------------------Neutron Config-------------------##
    #Password for Mysql neutron user. exmaple:000000
    NEUTRON_DBPASS=000000
    
    #Password for Keystore neutron user. exmaple:000000
    NEUTRON_PASS=000000
    
    #metadata secret for neutron. exmaple:000000
    METADATA_SECRET=000000
    
    #External Network Interface. example:eth1
    INTERFACE_NAME=ens34
    
    #External Network The Physical Adapter. example:provider
    Physical_NAME=provider
    
    #First Vlan ID in VLAN RANGE for VLAN Network. exmaple:101
    minvlan=1
    
    #Last Vlan ID in VLAN RANGE for VLAN Network. example:200
    maxvlan=200
    
    #--------------------Cinder Config--------------------##
    #Password for Mysql cinder user. exmaple:000000
    CINDER_DBPASS=000000
    
    #Password for Keystore cinder user. exmaple:000000
    CINDER_PASS=000000
    
    #Cinder Block Disk. example:md126p3
    BLOCK_DISK=sdb1
    
    #--------------------Swift Config---------------------##
    #Password for Keystore swift user. exmaple:000000
    SWIFT_PASS=000000
    
    #The NODE Object Disk for Swift. example:md126p4.
    OBJECT_DISK=sdb2
    
    #The NODE IP for Swift Storage Network. example:x.x.x.x.
    STORAGE_LOCAL_NET_IP=192.168.100.129  #Swift存储网络的节点IP地址,一般填写计算节点IP
    
    #--------------------Trove Config----------------------##
    #Password for Mysql trove user. exmaple:000000
    TROVE_DBPASS=000000
    
    #Password for Keystore trove user. exmaple:000000
    TROVE_PASS=000000
    
    #--------------------Heat Config----------------------##
    #Password for Mysql heat user. exmaple:000000
    HEAT_DBPASS=000000
    
    #Password for Keystore heat user. exmaple:000000
    HEAT_PASS=000000
    
    #--------------------Ceilometer Config----------------##
    #Password for Gnocchi ceilometer user. exmaple:000000
    CEILOMETER_DBPASS=000000
    
    #Password for Keystore ceilometer user. exmaple:000000
    CEILOMETER_PASS=000000
    
    #--------------------AODH Config----------------##
    #Password for Mysql AODH user. exmaple:000000
    AODH_DBPASS=000000
    
    #Password for Keystore AODH user. exmaple:000000
    AODH_PASS=000000
    
    #--------------------ZUN Config----------------##
    #Password for Mysql ZUN user. exmaple:000000
    ZUN_DBPASS=000000
    
    #Password for Keystore ZUN user. exmaple:000000
    ZUN_PASS=000000
    
    #Password for Keystore KURYR user. exmaple:000000
    KURYR_PASS=000000
    
    #--------------------OCTAVIA Config----------------##
    #Password for Mysql OCTAVIA user. exmaple:000000
    OCTAVIA_DBPASS=000000
    
    #Password for Keystore OCTAVIA user. exmaple:000000
    OCTAVIA_PASS=000000
    
    #--------------------Manila Config----------------##
    #Password for Mysql Manila user. exmaple:000000
    MANILA_DBPASS=000000
    
    #Password for Keystore Manila user. exmaple:000000
    MANILA_PASS=000000
    
    #The NODE Object Disk for Manila. example:md126p5.
    SHARE_DISK=sdb3
    
    #--------------------Cloudkitty Config----------------##
    #Password for Mysql Cloudkitty user. exmaple:000000
    CLOUDKITTY_DBPASS=000000
    
    #Password for Keystore Cloudkitty user. exmaple:000000
    CLOUDKITTY_PASS=000000
    
    #--------------------Barbican Config----------------##
    #Password for Mysql Barbican user. exmaple:000000
    BARBICAN_DBPASS=000000
    
    #Password for Keystore Barbican user. exmaple:000000
    BARBICAN_PASS=000000
    
    ################################################################
    ######在vi编辑器中执行:%s/^.\{1\}//  删除每行前1个字符(#号)#####
    ################################################################

    在vi编辑器中执行:%s/^.\{1\}//  删除每行前1个字符(#号),或者手动检查删除都可,删除多余#号字符操作提示在文件最末尾需要补全的信息均有备注,其余默认即可。

    需要修改项:

    #--------------------system Config--------------------##

    #Controller Server Manager IP. example:x.x.x.x

    HOST_IP=192.168.100.128

    #Controller HOST Password. example:000000

    HOST_PASS=000000

    #Controller Server hostname. example:controller

    HOST_NAME=controller

    #Compute Node Manager IP. example:x.x.x.x

    HOST_IP_NODE=192.168.100.129

    #Compute HOST Password. example:000000

    HOST_PASS_NODE=000000

    #Compute Node hostname. example:compute

    HOST_NAME_NODE=compute

    #--------------------Chrony Config-------------------##

    #Controller network segment IP.  example:x.x.0.0/16(x.x.x.0/24)

    network_segment_IP=192.168.100.0/24

    #--------------------Swift Config---------------------##

    #Password for Keystore swift user. exmaple:000000

    SWIFT_PASS=000000

    #The NODE Object Disk for Swift. example:md126p4.

    OBJECT_DISK=sdb2

    #The NODE IP for Swift Storage Network. example:x.x.x.x.

    STORAGE_LOCAL_NET_IP=192.168.100.129

    开始编辑初始化脚本,将上述内容填入:

    vi /etc/openstack/openrc.sh

    Controller:

    完成后复制给Compute节点:

    scp /etc/openstack/openrc.sh compute:/etc/openstack/openrc.sh

    check:

    完成。

    运行初始化脚本

    所有节点执行:

    iaas-pre-host.sh

    执行完成后退出重新连接

    搭建数据库服务

    控制节点执行:

    iaas-install-mysql.sh

    安装途中不要任何操作,等待进度条跑完

    完成,检查运行状态:

    systemctl status mariadb

    完成。

    搭建Keystone认证组件

    控制节点执行:

    iaas-install-keystone.sh

    完成

    安装完成后在控制节点检查服务状态:

    source /etc/keystone/admin-openrc.sh
    
    openstack user list
    

    有输出即可。

    如遇报错:

    [root@controller ~]# iaas-install-keystone.sh
    ERROR 1045 (28000): Access denied for user 'root'@'localhost' (using password: YES)
    ERROR 1045 (28000): Access denied for user 'root'@'localhost' (using password: YES)
    ERROR 1045 (28000): Access denied for user 'root'@'localhost' (using password: YES)
    已加载插件:fastestmirror, langpacks
    Loading mirror speeds from cached hostfile
     * epel: pubmirror1.math.uh.edu
    软件包 1:openstack-keystone-16.0.1-1.el7.noarch 已安装并且是最新版本
    软件包 httpd-2.4.6-97.el7.centos.x86_64 已安装并且是最新版本
    软件包 mod_wsgi-3.4-18.el7.x86_64 已安装并且是最新版本
    无须任何处理
    /usr/local/bin/iaas-install-keystone.sh:行13: openstack-config: 未找到命令
    /usr/local/bin/iaas-install-keystone.sh:行14: openstack-config: 未找到命令
    ln: 无法创建符号链接"/etc/httpd/conf.d/wsgi-keystone.conf": 文件已存在
    /usr/local/bin/iaas-install-keystone.sh:行37: openstack: 未找到命令
    /usr/local/bin/iaas-install-keystone.sh:行38: openstack: 未找到命令
    /usr/local/bin/iaas-install-keystone.sh:行39: openstack: 未找到命令
    /usr/local/bin/iaas-install-keystone.sh:行40: openstack: 未找到命令
    /usr/local/bin/iaas-install-keystone.sh:行50: openstack: 未找到命令
    /usr/local/bin/iaas-install-keystone.sh:行51: openstack: 未找到命令
    /usr/local/bin/iaas-install-keystone.sh:行55: openstack: 未找到命令
    /usr/local/bin/iaas-install-keystone.sh:行56: openstack: 未找到命令
    /usr/local/bin/iaas-install-keystone.sh:行60: openstack: 未找到命令
    /usr/local/bin/iaas-install-keystone.sh:行62: openstack: 未找到命令
    /usr/local/bin/iaas-install-keystone.sh:行63: openstack: 未找到命令
    /usr/local/bin/iaas-install-keystone.sh:行65: openstack: 未找到命令
    /usr/local/bin/iaas-install-keystone.sh:行66: openstack: 未找到命令
    /usr/local/bin/iaas-install-keystone.sh:行67: openstack: 未找到命令
    /usr/local/bin/iaas-install-keystone.sh:行92: openstack: 未找到命令

    数据库运行情况正常:

    systemctl status mariadb
    ● mariadb.service - MariaDB 10.3 database server
       Loaded: loaded (/usr/lib/systemd/system/mariadb.service; enabled; vendor preset: disabled)
       Active: active (running) since 三 2025-11-26 19:44:31 CST; 31min ago
         Docs: man:mysqld(8)
               https://mariadb.com/kb/en/library/systemd/
     Main PID: 4783 (mysqld)
       Status: "Taking your SQL requests now..."
        Tasks: 31
       CGroup: /system.slice/mariadb.service
               └─4783 /usr/libexec/mysqld --basedir=/usr
    
    11月 26 19:44:30 controller mysql-prepare-db-dir[4676]: Please report any problems at http://mariadb...ra
    11月 26 19:44:30 controller mysql-prepare-db-dir[4676]: The latest information about MariaDB is avai.../.
    11月 26 19:44:30 controller mysql-prepare-db-dir[4676]: You can find additional information about th...t:
    11月 26 19:44:30 controller mysql-prepare-db-dir[4676]: http://dev.mysql.com
    11月 26 19:44:30 controller mysql-prepare-db-dir[4676]: Consider joining MariaDB's strong and vibran...y:
    11月 26 19:44:30 controller mysql-prepare-db-dir[4676]: https://mariadb.org/get-involved/
    11月 26 19:44:31 controller mysqld[4783]: 2025-11-26 19:44:31 0 [Note] /usr/libexec/mysqld (mysqld... ...
    11月 26 19:44:31 controller mysqld[4783]: 2025-11-26 19:44:31 0 [Warning] Could not increase numbe...035)
    11月 26 19:44:31 controller mysqld[4783]: 2025-11-26 19:44:31 0 [Warning] Changed limits: max_open...000)
    11月 26 19:44:31 controller systemd[1]: Started MariaDB 10.3 database server.
    Hint: Some lines were ellipsized, use -l to show in full.

    数据库初始化问题,解决:

    mysql -u root
    ALTER USER 'root'@'localhost' IDENTIFIED BY '000000';
    FLUSH PRIVILEGES;
    EXIT;

    安装缺失:

     yum install -y openstack-utils python-openstackclient

    重新执行:iaas-install-keystone.sh即可。

    搭建镜像服务Glance

    控制节点执行:

    iaas-install-glance.sh

    安装完成后在控制节点检查服务状态:

    source /etc/keystone/admin-openrc.sh
    
    openstack image list

    无报错即可。

    如出现报错:

    错误:软件包:tkinter-2.7.5-90.el7.x86_64 (iaas)
              需要:python = 2.7.5-90.el7
              已安装: python-2.7.5-94.el7_9.x86_64 (@updates)
                  python = 2.7.5-94.el7_9
              可用: python-2.7.5-89.el7.x86_64 (centos)
                  python = 2.7.5-89.el7
              可用: python-2.7.5-90.el7.x86_64 (iaas)
                  python = 2.7.5-90.el7
     您可以尝试添加 --skip-broken 选项来解决该问题
     您可以尝试执行:rpm -Va --nofiles --nodigest
    [Errno 2] No such file or directory: '/etc/glance/glance-api.conf'
    [Errno 2] No such file or directory: '/etc/glance/glance-api.conf'
    [Errno 2] No such file or directory: '/etc/glance/glance-api.conf'
    [Errno 2] No such file or directory: '/etc/glance/glance-api.conf'
    [Errno 2] No such file or directory: '/etc/glance/glance-api.conf'
    [Errno 2] No such file or directory: '/etc/glance/glance-api.conf'
    [Errno 2] No such file or directory: '/etc/glance/glance-api.conf'
    [Errno 2] No such file or directory: '/etc/glance/glance-api.conf'
    [Errno 2] No such file or directory: '/etc/glance/glance-api.conf'
    [Errno 2] No such file or directory: '/etc/glance/glance-api.conf'
    [Errno 2] No such file or directory: '/etc/glance/glance-api.conf'
    [Errno 2] No such file or directory: '/etc/glance/glance-api.conf'
    [Errno 2] No such file or directory: '/etc/glance/glance-api.conf'
    [Errno 2] No such file or directory: '/etc/glance/glance-api.conf'
    [Errno 2] No such file or directory: '/etc/glance/glance-registry.conf'
    [Errno 2] No such file or directory: '/etc/glance/glance-registry.conf'
    [Errno 2] No such file or directory: '/etc/glance/glance-registry.conf'
    [Errno 2] No such file or directory: '/etc/glance/glance-registry.conf'
    [Errno 2] No such file or directory: '/etc/glance/glance-registry.conf'
    [Errno 2] No such file or directory: '/etc/glance/glance-registry.conf'
    [Errno 2] No such file or directory: '/etc/glance/glance-registry.conf'
    [Errno 2] No such file or directory: '/etc/glance/glance-registry.conf'
    [Errno 2] No such file or directory: '/etc/glance/glance-registry.conf'
    [Errno 2] No such file or directory: '/etc/glance/glance-registry.conf'
    [Errno 2] No such file or directory: '/etc/glance/glance-registry.conf'
    su: user glance does not exist
    Failed to execute operation: No such file or directory
    Failed to restart openstack-glance-api.service: Unit not found.
    Failed to restart openstack-glance-registry.service: Unit not found.

    此为兼容性问题,执行:

    yum downgrade python-2.7.5-90.el7

    然后重新执行:

    iaas-install-glance.sh

    即可。


    搭建Nova计算服务

    搭建只能先执行控制节点脚本再执行计算节点

    控制节点执行:

    iaas-install-placement.sh

    iaas-install-nova-controller.sh

    计算节点执行:

    iaas-install-nova-compute.sh

    安装完成后在控制节点检查服务状态:

    openstack compute service list

    有、、服务同时输出各个服务状态为与即可。nova-computenova-schedulernova-conductorenabledup


    搭建Neutron网络服务

    控制节点执行:

    如报错:

    --> 解决依赖关系完成
    错误:软件包:libvirt-client-4.5.0-36.el7_9.3.x86_64 (iaas)
              需要:libvirt-libs = 4.5.0-36.el7_9.3
              已安装: libvirt-libs-4.5.0-36.el7_9.5.x86_64 (@updates)
                  libvirt-libs = 4.5.0-36.el7_9.5
              可用: libvirt-libs-4.5.0-36.el7.x86_64 (centos)
                  libvirt-libs = 4.5.0-36.el7
              可用: libvirt-libs-4.5.0-36.el7_9.3.x86_64 (iaas)
                  libvirt-libs = 4.5.0-36.el7_9.3
    错误:软件包:libibumad-22.4-5.el7.x86_64 (centos)
              需要:rdma-core(x86-64) = 22.4-5.el7
              已安装: rdma-core-22.4-6.el7_9.x86_64 (@updates)
                  rdma-core(x86-64) = 22.4-6.el7_9
              可用: rdma-core-22.4-5.el7.x86_64 (centos)
                  rdma-core(x86-64) = 22.4-5.el7
    错误:软件包:tkinter-2.7.5-90.el7.x86_64 (iaas)
              需要:python = 2.7.5-90.el7
              已安装: python-2.7.5-94.el7_9.x86_64 (@updates)
                  python = 2.7.5-94.el7_9
              可用: python-2.7.5-89.el7.x86_64 (centos)
                  python = 2.7.5-89.el7
              可用: python-2.7.5-90.el7.x86_64 (iaas)
                  python = 2.7.5-90.el7
     您可以尝试添加 --skip-broken 选项来解决该问题
     您可以尝试执行:rpm -Va --nofiles --nodigest
    [Errno 2] No such file or directory: '/etc/nova/nova.conf'
    [Errno 2] No such file or directory: '/etc/nova/nova.conf'
    [Errno 2] No such file or directory: '/etc/nova/nova.conf'
    [Errno 2] No such file or directory: '/etc/nova/nova.conf'
    [Errno 2] No such file or directory: '/etc/nova/nova.conf'
    [Errno 2] No such file or directory: '/etc/nova/nova.conf'
    [Errno 2] No such file or directory: '/etc/nova/nova.conf'
    [Errno 2] No such file or directory: '/etc/nova/nova.conf'
    [Errno 2] No such file or directory: '/etc/nova/nova.conf'
    [Errno 2] No such file or directory: '/etc/nova/nova.conf'
    [Errno 2] No such file or directory: '/etc/nova/nova.conf'
    [Errno 2] No such file or directory: '/etc/nova/nova.conf'
    [Errno 2] No such file or directory: '/etc/nova/nova.conf'
    [Errno 2] No such file or directory: '/etc/nova/nova.conf'
    [Errno 2] No such file or directory: '/etc/nova/nova.conf'
    [Errno 2] No such file or directory: '/etc/nova/nova.conf'
    [Errno 2] No such file or directory: '/etc/nova/nova.conf'
    [Errno 2] No such file or directory: '/etc/nova/nova.conf'
    [Errno 2] No such file or directory: '/etc/nova/nova.conf'
    [Errno 2] No such file or directory: '/etc/nova/nova.conf'
    [Errno 2] No such file or directory: '/etc/nova/nova.conf'
    [Errno 2] No such file or directory: '/etc/nova/nova.conf'
    [Errno 2] No such file or directory: '/etc/nova/nova.conf'
    [Errno 2] No such file or directory: '/etc/nova/nova.conf'
    [Errno 2] No such file or directory: '/etc/nova/nova.conf'
    [Errno 2] No such file or directory: '/etc/nova/nova.conf'
    [Errno 2] No such file or directory: '/etc/nova/nova.conf'
    [Errno 2] No such file or directory: '/etc/nova/nova.conf'
    [Errno 2] No such file or directory: '/etc/nova/nova.conf'
    [Errno 2] No such file or directory: '/etc/nova/nova.conf'
    Failed to execute operation: No such file or directory
    Failed to restart openstack-nova-compute.service: Unit not found.
    
    Found 2 cell mappings.
    Skipping cell0 since it does not contain hosts.
    Getting computes from cell 'cell1': ee2ca86c-8f5d-4907-83b7-ec5325f2c06b
    Found 0 unmapped computes in cell: ee2ca86c-8f5d-4907-83b7-ec5325f2c06b
    [root@compute ~]# 

    资源准备中......完整资料可后台联系获取

    Logo

    腾讯云面向开发者汇聚海量精品云计算使用和开发经验,营造开放的云计算技术生态圈。

    更多推荐