版本说明
- 先电版本:v2.4
- 操作系统:CentOS 7.5 1804
- IaaS 版本:OpenStack Queens v3.4.15
- PaaS 版本:
- Docker Engine:19.03.13
- Docker Compose:1.25.5
- Kubernetes:1.18.1
前言
- 本帖的安装环境为 虚拟机,使用版本为 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
- 关闭防火墙和SELINUX
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注:控制节点脚本全部运行完毕后再运行计算节点脚本,不要同时进行,如果遇到报错请检查是否缺漏执行脚本。
四、最小化部署完成
浏览器访问:http://192.168.100.10/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-physical-network provider --provider-network-type flat --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 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>实例类型id> nic
,
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 - 最终效果:

七、推广
- 每次安装完系统后如何快速更换国内软件源?推荐使用下面的一键换源脚本
GNU/Linux 一键更换国内软件源
发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/229236.html原文链接:https://javaforall.net
