赞
踩
本帖仅涉及云计算 OpenStack 先电版基础搭建内容,内容与最新改革试点赛 ChinaSkills(国基北盛)版一致,更多有关完整部署、实战、运维内容请参考其他作者的优秀文章
镜像如何下载详见评论区
注: 内存 和 处理器 根据个人而定,硬盘容量建议 250G 以上;此处计算节点的 第二块硬盘 是给
Cinder
和Swift
服务预留的,最小化部署可先不加;两台虚拟机处理器需要开启 虚拟化 功能;真实 服务器 请根据实际情况作出调整,且需要配合交换机使用。
下载镜像:CentOS 官方开源镜像站
/home
用户分区/
根分区友情提示:可参考左下角 Available Space 数值。
语言:
英语(US)
时区:中国/上海
KDUMP:关闭
Controller 节点:
hostnamectl set-hostname controller
bash
Compute 节点:
hostnamectl set-hostname compute
bash
注:更改完主机名后在执行部署脚本前请 重启 环境,否则
RabbitMQ
服务可能会报错导致部署失败。(重要)
节点名称 | 内部 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 # 重启网卡使配置生效
所有节点上执行:
关闭防火墙和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
所有节点上执行:
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 节点:
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
友情提示:您可以在此处创建关于 初始环境 的快照,以缓解在实验学习中经常遇到报错需要重搭的问题
所有节点上执行:
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 # 使环境变量生效
所有节点上执行:
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 私有云基础运维,实际生产环境中一般使用图形界面代替命令操作
## 更改配置文件并重启 nova-compute 服务
crudini --set /etc/nova/nova.conf libvirt virt_type qemu
systemctl restart libvirtd.service openstack-nova-compute.service
注:这里的两条命令是为了解决 虚拟机 环境下的 QEMU模拟器错误 导致云主机无法使用的问题,旧版本先电v2.2不存在此问题,真实 服务器 请忽略。
glance image-create --name "CentOS7.5" --disk-format qcow2 --container-format bare --progress < /opt/iaas/images/CentOS_7.5_x86_64_XD.qcow2
创建外部网络:
注:若使用 虚拟机 搭建,外部网络类型请选择
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 服务 |
创建路由
openstack router create ext-router
绑定外部网络
openstack router set ext-router --external-gateway ext-net
连接内部网络子网
openstack router add subnet ext-router int-subnet1
创建安全组,名称为 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
,否则会报错导致安全组功能不可用。
注:下面的一些命令固定了 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
上面的内容您都学会了吗?下面的技巧可能会对您有所帮助。
如果您在学习实验中经常遇到报错导致平台崩溃,推荐使用作者编写的一键部署脚本
2020 ~ 2022 云计算先电 2.4(私有云 IaaS 最小化部署 + 创建PaaS实验云主机环境)Shell 一键部署脚本模板
虚拟机管理器资源不够用怎么办?我们可通过下面的方法将控制节点主机加入到虚拟机管理器资源中,以解决本地环境资源不足的问题。
请在 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
最终效果:
每次安装完系统后如何快速更换国内软件源?推荐使用下面的一键换源脚本
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。