2020 ~ 2022 云计算先电 2.4 私有云 IaaS 最小化部署 & 创建 PaaS 实验云主机环境

版本说明

前言

  • 本帖的安装环境为 虚拟机,使用版本为 VMware Workstation Pro 16
  • 若使用真实 服务器 搭建需配合三层交换机使用,请自行更改网卡等参数,下面有详细的注释

本帖仅涉及云计算 OpenStack 先电版基础搭建内容,内容与最新改革试点赛 ChinaSkills(国基北盛)版一致,更多有关完整部署、实战、运维内容请参考其他作者的优秀文章

镜像如何下载详见评论区


一、硬件环境

1. 网卡

虚拟机网卡配置

2. 配置

  • Controller 节点:
    虚拟机控制节点配置
  • Compute节点:
    虚拟机计算节点配置
  • 所有节点处理器开启虚拟化:
    虚拟机处理器虚拟化

注: 内存处理器 根据个人而定,硬盘容量建议 250G 以上;此处计算节点的 第二块硬盘 是给 CinderSwift 服务预留的,最小化部署可先不加;两台虚拟机处理器需要开启 虚拟化 功能;真实 服务器 请根据实际情况作出调整,且需要配合交换机使用。


二、系统安装

1. 加载镜像

  • CentOS-7-x86_64-DVD-1804.iso

下载镜像:CentOS 官方开源镜像站

2. 选择安装软件包

  • 默认最小化安装
    软件包安装

3. 磁盘配置

  • 选择手动配置
    磁盘配置-主界面
  • 点击自动创建
    磁盘配置-手动配置引导
  • 删除 /home 用户分区
    磁盘配置-分配资源1
  • 将可用空间最大化分配给 / 根分区
    磁盘配置-分配资源2

    友情提示:可参考左下角 Available Space 数值。

  • 接受更改
    磁盘配置-接受更改

4. 其它安装前配置

其它安装前配置

语言:英语(US)
时区:中国/上海
KDUMP:关闭


三、配置 CentOS

1. 更改主机名

  • Controller 节点:

    hostnamectl set-hostname controller
    bash
    
  • Compute 节点:

    hostnamectl set-hostname compute
    bash
    

    注:更改完主机名后在执行部署脚本前请 重启 环境,否则 RabbitMQ 服务可能会报错导致部署失败。(重要)

2. 配置网卡

节点名称内部 IP 地址(网卡1)外部 IP 地址(网卡2 )子网掩码网关
controller192.168.100.10192.168.200.1024192.168.100.1
compute192.168.100.20192.168.200.2024192.168.100.1
vi /etc/sysconfig/network-scripts/ifcfg-<网卡名> # 修改配置文件命令
  • Controller 节点:

    ## ens32(网卡1)
    BOOTPROTO=static 
    ONBOOT=yes
    IPADDR=192.168.100.10 
    PREFIX=24 
    GATEWAY=192.168.100.1 
    
    ## ens33(网卡2)
    BOOTPROTO=static 
    ONBOOT=yes
    IPADDR=192.168.200.10
    PREFIX=24 
    
  • Compute 节点:

    ## ens32(网卡1)
    BOOTPROTO=static 
    ONBOOT=yes
    IPADDR=192.168.100.20 
    PREFIX=24 
    GATEWAY=192.168.100.1 
    
    ## ens33(网卡2)
    BOOTPROTO=static 
    ONBOOT=yes
    IPADDR=192.168.200.10
    PREFIX=24 
    

    注:服务器 自行对照更改参数 。

  • 所有节点上执行:

    systemctl restart network # 重启网卡使配置生效
    

3. 基础配置

  • 所有节点上执行:

    • 关闭防火墙和SELINUX

      systemctl disable --now firewalld
      sed -i "7c SELINUX=disabled" /etc/selinux/config
      setenforce 0
      
    • 添加解析记录

      echo "192.168.100.10 controller" >> /etc/hosts
      echo "192.168.100.20 compute" >> /etc/hosts
      

4. 配置 YUM 源

  • 所有节点上执行:

    rm -rf /etc/yum.repos.d/* # 删除原有官方源
    
  • Controller 节点:

    • 上传镜像:

      CentOS-7-x86_64-DVD-1804.iso
      XianDian-IaaS-v2.4.iso

    • 挂载镜像:

      ## 挂载镜像至 /opt 目录
      mkdir -p /opt/centos /opt/iaas
      mount -o loop CentOS-7-x86_64-DVD-1804.iso /opt/centos
      mount -o loop XianDian-IaaS-v2.4.iso /opt/iaas
      
    • 配置本地源:

      vi /etc/yum.repos.d/local.repo # 编辑配置文件命令
      
      [centos]
      name=centos
      baseurl=file:///opt/centos
      gpgcheck=0
      enabled=1
      [iaas]
      name=iaas
      baseurl=file:///opt/iaas/iaas-repo
      gpgcheck=0
      enabled=1
      
    • 安装并配置 FTP 服务器:

      rpm -ivh /opt/centos/Packages/vsftpd-3.0.2-22.el7.x86_64
      echo "anon_root=/opt" >> /etc/vsftpd/vsftpd.conf
      systemctl enable --now vsftpd
      
    • 建立本地缓存:

      yum makecache
      
  • Compute 节点:

    • 配置 FTP 源:
      vi /etc/yum.repos.d/ftp.repo # 编辑配置文件命令
      
      [centos]
      name=centos
      baseurl=ftp://controller/centos
      gpgcheck=0
      enabled=1
      [iaas]
      name=iaas
      baseurl=ftp://controller/iaas/iaas-repo
      gpgcheck=0
      enabled=1
      
    • 建立本地缓存:
      yum makecache
      

      友情提示:您可以在此处创建关于 初始环境 的快照,以缓解在实验学习中经常遇到报错需要重搭的问题

四、部署 IaaS 私有云

1. 安装并配置先电软件包

  • 所有节点上执行:

    yum install -y iaas-xiandian vim # 安装先电软件包
    
  • Controller 节点:

    vim /etc/xiandian/openrc.sh # 修改配置文件命令
    
    变量名称变量的值
    HOST_IP192.168.100.10
    HOST_PASS000000
    HOST_NAMEcontroller
    HOST_IP_NODE192.168.100.20
    HOST_PASS_NODE000000
    HOST_NAME_NODEcompute
    network_segment_IP192.168.100.0/24
    RABBIT_USERopenstack
    RABBIT_PASS000000
    DB_PASS000000
    DOMAIN_NAMEdemo
    ADMIN_PASS000000
    DEMO_PASS000000
    KEYSTONE_DBPASS000000
    GLANCE_DBPASS000000
    GLANCE_PASS000000
    NOVA_DBPASS000000
    NOVA_PASS000000
    NEUTRON_DBPASS000000
    NEUTRON_PASS000000
    METADATA_SECRET000000
    INTERFACE_IP192.168.100.10
    (填入对应节点IP,这里很容易出错,看注释)
    INTERFACE_NAMEens33
    (计算节点的第二块网卡名)
    Physical_NAMEprovider
    (默认)
    minvlan101
    (默认)
    maxvlan200
    (默认)
    CINDER_DBPASS000000
    CINDER_PASS000000
    BLOCK_DISKsdb1
    SWIFT_PASS000000
    OBJECT_DISKsdb2
    STORAGE_LOCAL_NET_IP192.168.100.20
    HEAT_DBPASS000000
    HEAT_PASS000000
    ZUN_DBPASS000000
    ZUN_PASS000000
    KURYR_DBPASS000000
    KURYR_PASS000000
    CEILOMETER_DBPASS000000
    CEILOMETER_PASS000000
    AODH_DBPASS000000
    AODH_PASS000000
    BARBICAN_DBPASS000000
    BARBICAN_PASS000000

    注:NTERFACE_IP这里填入对应节点的IP地址,如果是控制节点的配置文件则填入192.168.100.10,如果是计算节点的配置文件则填入192.168.100.20

  • Compute 节点:

    scp root@controller:/etc/xiandian/openrc.sh /etc/xiandian # 从控制节点拷贝变量配置文件
    sed -i "69c INTERFACE_IP=192.168.100.20" /etc/xiandian/openrc.sh # 此条命令对应上面的注释
    
  • 所有节点上执行:

    source /etc/xiandian/openrc.sh # 使环境变量生效
    

2. 执行官方安装脚本

  • 所有节点上执行:

    iaas-pre-host.sh
    
  • Controller 节点:

    iaas-install-mysql.sh
    iaas-install-keystone.sh
    iaas-install-glance.sh
    iaas-install-nova-controller.sh
    iaas-install-neutron-controller.sh
    iaas-install-dashboard.sh
    
  • Compute 节点:

    iaas-install-nova-compute.sh
    iaas-install-neutron-compute.sh
    

    注:控制节点脚本全部运行完毕后再运行计算节点脚本,不要同时进行,如果遇到报错请检查是否缺漏执行脚本。


四、最小化部署完成

浏览器访问:http://192.168.100.10/dashboard
Dashboard


五、创建云主机环境

下面的内容包含 IaaS 私有云基础运维,实际生产环境中一般使用图形界面代替命令操作

  • 虚拟机环境需要在 Compute 节点执行下面的命令: (重要)
    ## 更改配置文件并重启 nova-compute 服务
    crudini --set /etc/nova/nova.conf libvirt virt_type  qemu
    systemctl restart libvirtd.service openstack-nova-compute.service
    

    注:这里的两条命令是为了解决 虚拟机 环境下的 QEMU模拟器错误 导致云主机无法使用的问题,旧版本先电v2.2不存在此问题,真实 服务器 请忽略。

1. 创建镜像

glance image-create --name "CentOS7.5" --disk-format qcow2 --container-format bare --progress < /opt/iaas/images/CentOS_7.5_x86_64_XD.qcow2

镜像列表

2. 创建网络和子网

  • 创建外部网络:

    注:若使用 虚拟机 搭建,外部网络类型请选择Flat;若使用 服务器 搭建,外部网络类型请选择VLAN;注意不要重复执行命令,二选一执行。

    • 虚拟机
      openstack network create ext-net --provider-network-type flat --provider-physical-network provider --external
      
    • 服务器
      openstack network create ext-net --provider-network-type vlan --provider-physical-network provider --provider-segment 1 --external
      
  • 创建外部网络参数解读:

    参数用法
    --provider-network-type<供应商网络类型>
    --provider-physical-network<供应商物理设备名>
    注:创建Flat VLAN网络类型时需要
    --provider-segment<段 ID>
    注:创建VLAN GRE VXLAN Geneve网络类型时需要
    --external外部网络

    注:参数的含义带有<>时,需要在此参数后面跟上对应的值。

  • 创建内部网络:

    openstack network create int-net1 --provider-network-type vxlan --provider-segment 1
    openstack network create int-net2 --provider-network-type vxlan --provider-segment 2
    
  • 创建子网:

    外部网络

    openstack subnet create ext-subnet --network ext-net --gateway 192.168.200.1 --subnet-range 192.168.200.0/24 --allocation-pool start=192.168.200.100,end=192.168.200.200 --dhcp
    

    内部网络

    openstack subnet create int-subnet1 --network int-net1 --gateway 10.0.0.1 --subnet-range 10.0.0.0/24 --dhcp
    openstack subnet create int-subnet2 --network int-net2 --gateway 10.0.1.1 --subnet-range 10.0.1.0/24 --dhcp
    
  • 创建子网参数解读:

    参数用法
    --network<网络名>
    --gateway<网关地址>
    --subnet-range<网络地址>
    --allocation-poolstart=<始IP>,end=<尾IP>
    --dhcp开启 DHCP 服务

    网络列表

3. 创建路由

创建路由

openstack router create ext-router

绑定外部网络

openstack router set ext-router --external-gateway ext-net

连接内部网络子网

openstack router add subnet ext-router int-subnet1

路由列表网络拓扑

4. 创建安全组和规则

创建安全组,名称为 all

openstack security group create all

创建规则

openstack security group rule create --ingress --protocol tcp all
openstack security group rule create --ingress --protocol udp all
openstack security group rule create --ingress --protocol icmp all
openstack security group rule create --egress --protocol tcp all
openstack security group rule create --egress --protocol udp all
openstack security group rule create --egress --protocol icmp all

注:创建安全组后请手动删除自带的两条规则,另外不要尝试删除默认安全组 default,否则会报错导致安全组功能不可用。

安全组规则列表

5. 创建云主机

注:下面的一些命令固定了 IP 地址,可自行更换但需注意地址冲突问题。

  • 创建实例类型:

    名称ID内存硬盘vCPU数
    master112G100G6个
    node28G100G4个

    注:vCPU数根据实际情况而定,内存和硬盘是官方操作手册规定的,物理资源不够可适当缩减。

    nova flavor-create master 1 12288 100 6
    nova flavor-create node 2 8192 100 4
    

    命令格式:nova flavor-create <名字> < ID > <内存> <硬盘容量> < vcpu 数量>

  • 创建云主机:

    nova boot --image CentOS7.5 --flavor 1 --nic net-name=int-net1,v4-fixed-ip=10.0.0.3 --security-groups all --poll master
    nova boot --image CentOS7.5 --flavor 2 --nic net-name=int-net1,v4-fixed-ip=10.0.0.4 --security-groups all --poll node
    
  • 创建云主机参数解读:

    参数用法
    --image<镜像名>
    --flavor<实例类型ID>
    --nic<net-name=网络名>,<v4-fixed-ip=固定IP地址>
    --security-groups<安全组名>
    --poll显示进度
  • 创建浮动IP地址:

    openstack floating ip create ext-net --floating-ip-address 192.168.200.104
    openstack floating ip create ext-net --floating-ip-address 192.168.200.105
    
  • 绑定浮动IP地址至云主机:

    openstack server add floating ip master 192.168.200.104
    openstack server add floating ip node 192.168.200.105
    

六、附录

上面的内容您都学会了吗?下面的技巧可能会对您有所帮助。

1. 一键部署脚本

2. 虚拟机管理器添加控制节点

  • 虚拟机管理器资源不够用怎么办?我们可通过下面的方法将控制节点主机加入到虚拟机管理器资源中,以解决本地环境资源不足的问题。

  • 请在 Controller 控制节点进行如下操作:

    • 更改变量配置文件信息
    vim /etc/xiandian/openrc.sh
    
    变量名称变量的值
    HOST_IP_NODE192.168.100.10
    HOST_PASS_NODE000000
    HOST_NAME_NODEcontroller
    • 执行命令
    ## 使变量配置文件生效
    source /etc/xiandian/openrc.sh
    ## 执行 nova-compute 脚本
    iaas-install-nova-compute.sh
    ## 更改配置文件并重启 nova-compute 服务
    crudini --set /etc/nova/nova.conf libvirt virt_type  qemu
    systemctl restart libvirtd.service openstack-nova-compute.service
    
  • 最终效果:
    虚拟机增加控制节点效果图


七、推广


评论 34
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

孤_存

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值