附:如果你在学习实验中经常遇到报错导致平台崩溃,推荐使用本人编写的一键部署脚本
2020云计算先电2.4(最小化+云主机环境)一键部署Shell脚本模板
注: 内存 和 处理器 根据个人而定,硬盘容量建议200G以上;此处计算节点的 第二块硬盘 是给
cinder
和swift
服务预留的,最小化部署可先不加;两台虚拟机处理器一定要开启 虚拟化 功能。
附:官方镜像站种子下载链接
时区:
中国/上海
KDUMP:关闭
主机名:controller/compute
#Controller:
hostnamectl set-hostname controller
bash
#Compute:
hostnamectl set-hostname compute
bash
注:更改完主机名后一定要 重启,否则
RABBIT
会报错。(重要)
1)配置防火墙和SELINUX
systemctl disable --now firewalld
setenforce 0
2)添加解析记录
echo "192.168.100.10 controller" >> /etc/hosts
echo "192.168.100.20 compute" >> /etc/hosts
/root
目录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/sysconfig/network-scripts/ifcfg-xxx
节点 | 网卡 1 IP地址 | 网卡 2 IP地址 |
---|---|---|
controller | 192.168.100.10 | 192.168.200.10 |
compute | 192.168.100.20 | 192.168.200.20 |
网卡1
# vi /etc/sysconfig/network-scripts/ifcfg-32
BOOTPROTO=static
ONBOOT=yes
IPADDR=192.168.100.10
PREFIX=24
GATEWAY=192.168.100.1
网卡2
# vi /etc/sysconfig/network-scripts/ifcfg-33
BOOTPROTO=static
ONBOOT=yes
IPADDR=192.168.200.10
PREFIX=24
网卡1
# vi /etc/sysconfig/network-scripts/ifcfg-32
BOOTPROTO=static
ONBOOT=yes
IPADDR=192.168.100.20
PREFIX=24
GATEWAY=192.168.100.1
网卡2
# vi /etc/sysconfig/network-scripts/ifcfg-33
BOOTPROTO=static
ONBOOT=yes
IPADDR=192.168.200.10
PREFIX=24
rm -rf /etc/yum.repos.d/* #删除原有官方源
# touch/etc/yum.repos.d/local.repo
# 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
# touch/etc/yum.repos.d/ftp.repo
# 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 -y install vsftpd
echo "anon_root=/opt" >> /etc/vsftpd/vsftpd.conf
systemctl enable --now vsftpd
yum makecache #建立缓存
yum install -y iaas-xiandian #安装先电软件包
vi /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
!
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
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
iaas-install-nova-compute.sh
iaas-install-neutron-compute.sh
注:控制节点脚本全部运行完毕后再运行计算节点脚本,不可同时进行。
#更改配置文件并重启nova-compute服务
crudini --set /etc/nova/nova.conf libvirt virt_type qemu
systemctl restart libvirtd.service openstack-nova-compute.service
注:这里的两条命令是为了解决在VMware虚拟机环境下的QEMU模拟器错误导致云主机无法使用的问题,真实服务器请忽略。
glance image-create --name "CentOS7.5" --disk-format qcow2 --container-format bare --progress < /opt/iaas/images/CentOS_7.5_x86_64_XD.qcow2
#创建外部网络
openstack network create ext-net --provider-physical-network provider --provider-network-type flat --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
注:这里是使用 虚拟机 搭建的,外部网络类型选择
Flat
;若使用 服务器 搭建,外部网络类型请选择VLAN
,下面是参考命令。
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 | 外部网络 |
子网参数 | 含义用法 |
---|---|
network | <网络名> |
gateway | <网关IP地址> |
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
,否则会报错导致安全组功能不可用。
名称 | 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 | |
security-groups | <安全组名> |
poll | 显示进度 |
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
openstack server add floating ip master 192.168.200.104
openstack server add floating ip node 192.168.200.105
注:上面的一些命令固定了IP地址,可自行更改。
1.更改变量配置文件信息
vi /etc/xiandian/openrc.sh
名称 | 值 |
---|---|
HOST_IP | 192.168.100.10 |
HOST_PASS | 000000 |
HOST_NAME | controller |
HOST_IP_NODE | 192.168.100.10 |
HOST_PASS_NODE | 000000 |
HOST_NAME_NODE | controller |
2.执行命令
#使变量配置文件生效
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
如果您觉得这篇帖子不错的话可以在左下方动手点个赞吗?感谢!