在先前的教程中,介绍了安装openstack及其相关组件的具体过程,本文介绍如何创建实例并完成访问。
在按照本教程操作之前,请确保完成以下配置:
【Openstack Train安装】一、虚拟机创建
【Openstack Train安装】二、NTP安装
【Openstack Train安装】三、openstack安装
【Openstack Train安装】四、MariaDB/RabbitMQ 安装
【Openstack Train安装】五、Memcached/Etcd安装
【Openstack Train安装】六、Keystone安装
【Openstack Train安装】七、glance安装
【Openstack Train安装】八、placement安装
【Openstack Train安装】九、Nova安装
【Openstack Train安装】十、Neutron安装
【Openstack Train安装】十一、Dashboard 安装
【Openstack Train安装】十二、Cinder安装
安装环境如下
VMware Workstation | V17.0 |
本机系统 | win11 |
虚拟机系统 | CentOS 7.5 |
注意:本教程采用selfservice方式创建网络,采用provider方式创建的网络请参考官方文档。
在控制节点完成以下操作。
创建selfservice网络前,先创建provider网络。provider网络用于访问互联网。
登录admin:
. admin-openrc
创建provider网络:
openstack network create --share --external --provider-physical-network provider --provider-network-type flat provider
如下图:
创建子网(注意网关设置和【Openstack Train安装】一、虚拟机创建中一致):
openstack subnet create --network provider --allocation-pool start=192.168.59.101,end=192.168.59.250 --dns-nameserver 114.114.114.114 --gateway 192.168.59.2 --subnet-range 192.168.59.0/24 provider
如下图:
provider网络配置完毕。
登录普通用户账号:
. demo-openrc
创建selfservice网络:
openstack network create selfservice
如下图:
在selfservice网络上创建子网(子网的网络号是172.16.1.0):
openstack subnet create --network selfservice --dns-nameserver 114.114.114.114 --gateway 172.16.1.1 --subnet-range 172.16.1.0/24 selfservice
如下图:
创建虚拟路由器:
openstack router create router
如下图:
在路由上添加子网接口:
openstack router add subnet router selfservice
在路由器设置provider网络的网关:
openstack router set router --external-gateway provider
登录admin:
. admin-openrc
查看网络的命名空间:
ip netns
如下图(2个qdhcp和1个qrouter):
查看路由器的端口信息(172.16.1.1是selfservice网络的网关,192.168.59.138是路由器访问外网的IP地址):
openstack port list --router router
如下图:
查看是否可以ping通外网网关(由于DHCP服务的存在,每个人分配的网关可能不同,我的网关是192.168.59.138,要ping自己的网关地址):
ping -c 4 192.168.59.138
如下图:
网络配置完成。
以下步骤在控制节点运行。
本教程使用cirros创建实例,先创建flavor:
openstack flavor create --id 0 --vcpus 1 --ram 64 --disk 1 m1.nano
如下图:
添加安全组规则,允许ping:
openstack security group rule create --proto icmp default
允许ssh访问:
openstack security group rule create --proto tcp --dst-port 22 default
在控制节点运行以下操作。
登录普通用户:
. demo-openrc
查看flavor列表:
openstack flavor list
如下图:
查看镜像列表:
openstack image list
如下图:
查看网络列表(记住selfservice的ID,后面有用):
openstack network list
如下图:
查看安全组规则:
openstack security group list
如下图:
创建实例(net-id改成自己的selfservice网络的ID):
openstack server create --flavor m1.nano --image cirros --nic net-id=ffde4fe3-eade-4d21-8e6a-36b07a7da4d1 --security-group default selfservice-instance
如下图:
查看服务列表:
openstack server list
如下图:
在控制节点操作。
创建实例的URL访问链接:
openstack console url show selfservice-instance
如下图(如果使用电脑无法识别controller这个域名,请把链接中的controller更换为controller的IP地址:192.168.59.20):
访问上图中的链接,每个人的链接可能不同(无法访问):
查看 /var/log/nova/nova-novncproxy.log,可以看到以下报错:
编辑/usr/share/novnc/core/websock.js,将231行修改为 以下内容,保存:
重启相关服务:
systemctl restart openstack-nova-conductor.service openstack-nova-novncproxy.service openstack-nova-scheduler.service
重启浏览器(如果不行就清除浏览器缓存或者换个浏览器),再次访问“openstack console url show selfservice-instance”生成的链接,如下图(更换了浏览器可以进去了):
进入cirros,账号cirros,密码gocubsgo:
ping 百度试一下能否访问外网:
实例创建成功。