版本说明
- 先电版本:v2.4
- 操作系统:CentOS 7.5 1804
- IaaS 版本:OpenStack Queens v3.4.15
- PaaS 版本:
前言
- 本帖的安装环境为 虚拟机,使用版本为 VMware Workstation Pro 16
- 若使用真实 服务器 搭建需配合三层交换机使用,请自行更改网卡等参数,下面有详细的注释
本帖仅涉及云计算 OpenStack 先电版基础搭建内容,内容与最新改革试点赛 ChinaSkills(国基北盛)版一致,更多有关完整部署、实战、运维内容请参考其他作者的优秀文章
镜像如何下载详见评论区
一、硬件环境
1. 网卡
2. 配置
- Controller 节点:
- Compute节点:
- 所有节点处理器开启虚拟化:
注: 内存 和 处理器 根据个人而定,硬盘容量建议 250G 以上;此处计算节点的 第二块硬盘 是给
Cinder
和Swift
服务预留的,最小化部署可先不加;两台虚拟机处理器需要开启 虚拟化 功能;真实 服务器 请根据实际情况作出调整,且需要配合交换机使用。
二、系统安装
1. 加载镜像
- CentOS-7-x86_64-DVD-1804.iso
下载镜像:CentOS 官方开源镜像站
2. 选择安装软件包
- 默认最小化安装
3. 磁盘配置
- 选择手动配置
- 点击自动创建
- 删除
/home
用户分区
- 将可用空间最大化分配给
/
根分区
友情提示:可参考左下角 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 ) | 子网掩码 | 网关 |
---|---|---|---|---|
controller | 192.168.100.10 | 192.168.200.10 | 24 | 192.168.100.1 |
compute | 192.168.100.20 | 192.168.200.20 | 24 | 192.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
友情提示:您可以在此处创建关于 初始环境 的快照,以缓解在实验学习中经常遇到报错需要重搭的问题
- 配置 FTP 源:
四、部署 IaaS 私有云
1. 安装并配置先电软件包
-
所有节点上执行:
yum install -y iaas-xiandian vim # 安装先电软件包
-
Controller 节点:
vim /etc/xiandian/openrc.sh # 修改配置文件命令
变量名称 变量的值 HOST_IP 192.168.100.10 HOST_PASS 000000 HOST_NAME controller HOST_IP_NODE 192.168.100.20 HOST_PASS_NODE 000000 HOST_NAME_NODE compute network_segment_IP 192.168.100.0/24 RABBIT_USER openstack RABBIT_PASS 000000 DB_PASS 000000 DOMAIN_NAME demo ADMIN_PASS 000000 DEMO_PASS 000000 KEYSTONE_DBPASS 000000 GLANCE_DBPASS 000000 GLANCE_PASS 000000 NOVA_DBPASS 000000 NOVA_PASS 000000 NEUTRON_DBPASS 000000 NEUTRON_PASS 000000 METADATA_SECRET 000000 INTERFACE_IP 192.168.100.10
(填入对应节点IP,这里很容易出错,看注释)INTERFACE_NAME ens33
(计算节点的第二块网卡名)Physical_NAME provider
(默认)minvlan 101
(默认)maxvlan 200
(默认)CINDER_DBPASS 000000 CINDER_PASS 000000 BLOCK_DISK sdb1 SWIFT_PASS 000000 OBJECT_DISK sdb2 STORAGE_LOCAL_NET_IP 192.168.100.20 HEAT_DBPASS 000000 HEAT_PASS 000000 ZUN_DBPASS 000000 ZUN_PASS 000000 KURYR_DBPASS 000000 KURYR_PASS 000000 CEILOMETER_DBPASS 000000 CEILOMETER_PASS 000000 AODH_DBPASS 000000 AODH_PASS 000000 BARBICAN_DBPASS 000000 BARBICAN_PASS 000000 注:
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
注:控制节点脚本全部运行完毕后再运行计算节点脚本,不要同时进行,如果遇到报错请检查是否缺漏执行脚本。
四、最小化部署完成
五、创建云主机环境
下面的内容包含 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-pool
start=<始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数 master 1 12G 100G 6个 node 2 8G 100G 4个 注: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. 一键部署脚本
-
如果您在学习实验中经常遇到报错导致平台崩溃,推荐使用作者编写的一键部署脚本
2020 ~ 2022 云计算先电 2.4(私有云 IaaS 最小化部署 + 创建PaaS实验云主机环境)Shell 一键部署脚本模板
2. 虚拟机管理器添加控制节点
-
虚拟机管理器资源不够用怎么办?我们可通过下面的方法将控制节点主机加入到虚拟机管理器资源中,以解决本地环境资源不足的问题。
-
请在 Controller 控制节点进行如下操作:
- 更改变量配置文件信息
vim /etc/xiandian/openrc.sh
变量名称 变量的值 HOST_IP_NODE 192.168.100.10 HOST_PASS_NODE 000000 HOST_NAME_NODE controller - 执行命令
## 使变量配置文件生效 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
-
最终效果:
七、推广
-
每次安装完系统后如何快速更换国内软件源?推荐使用下面的一键换源脚本