第 4 章 测试部署
4.1. 执行基本测试 复制链接链接已复制到粘贴板!
基本测试会验证实例可以相互 ping。测试还会检查 浮动 IP SSH 访问。本例描述了如何从 undercloud 执行此测试。
这个过程要求您遵循大量独立步骤。为方便起见,这个过程被分成较小的部分。但是,您必须按照以下顺序执行所有步骤。
In this setup, a flat network is used to create the _External_ network, and _VXLAN_ is used for the _Tenant_ networks. _VLAN External_ networks and _VLAN Tenant_ networks are also supported, depending on the desired deployment.
4.1.1. 为测试创建新网络 复制链接链接已复制到粘贴板!
提供用于访问 overcloud 的凭据:
$ source /home/stack/overcloudrc创建一个外部 neutron 网络,以便从 overcloud 外部访问实例:
$ openstack network create --external --project service --external --provider-network-type flat --provider-physical-network datacentre external为您在上一步中创建的新外部网络创建对应的 neutron 子网:
$ openstack subnet create --project service --no-dhcp --network external --gateway 192.168.37.1 --allocation-pool start=192.168.37.200,end=192.168.37.220 --subnet-range 192.168.37.0/24 external-subnet下载要用于创建 overcloud 实例的 cirros 镜像:
$ wget http://download.cirros-cloud.net/0.3.4/cirros-0.3.4-x86_64-disk.img将 overcloud 上的 cirros 镜像上传到 glance:
$ openstack image create cirros --public --file ./cirros-0.3.4-x86_64-disk.img --disk-format qcow2 --container-format bare创建要用于 overcloud 实例的
tiny类别:$ openstack flavor create m1.tiny --ram 512 --disk 1 --public创建 VXLAN 租户网络来托管实例:
$ openstack network create net_test --provider-network-type=vxlan --provider-segment 100为您在上一步中创建的租户网络创建一个子网:
$ openstack subnet create --network net_test --subnet-range 123.123.123.0/24 test查找和存储租户网络的 ID:
$ net_mgmt_id=$(openstack network list | grep net_test | awk '{print $2}')创建一个实例
cirros1,并将它附加到net_test网络和SSH安全组:$ openstack server create --flavor m1.tiny --image cirros --nic net-id=$vlan1 --security-group SSH --key-name RDO_KEY --availability-zone nova:overcloud-novacompute-0.localdomain cirros1创建名为
cirros2的第二个实例,也连接到net_test网络和SSH安全组:$ openstack server create --flavor m1.tiny --image cirros --nic net-id=$vlan1 --security-group SSH --key-name RDO_KEY --availability-zone nova:overcloud-novacompute-0.localdomain cirros2
4.1.2. 在测试环境中设置网络 复制链接链接已复制到粘贴板!
查找和存储 admin 项目的 ID:
$ admin_project_id=$(openstack project list | grep admin | awk '{print $2}')查找和存储 admin 项目的默认安全组:
$ admin_sec_group_id=$(openstack security group list | grep $admin_project_id | awk '{print $2}')为 admin default 安全组添加一条规则,以允许 ICMP 流量入站流量:
$ openstack security group rule create $admin_sec_group_id --protocol icmp --ingress为 admin default 安全组添加一条规则,以允许 ICMP 流量出站:
$ openstack security group rule create $admin_sec_group_id --protocol icmp --egress为 admin default 安全组添加一条规则,以允许 SSH 流量入口:
$ openstack security group rule create $admin_sec_group_id --protocol tcp --dst-port 22 --ingress为 admin default 安全组添加一条规则,以允许 SSH 流量出站:
$ openstack security group rule create $admin_sec_group_id --protocol tcp --dst-port 22 --egress
4.1.3. 测试连接 复制链接链接已复制到粘贴板!
-
从 horizon,您应该能够访问实例的 novnc 控制台。使用 overcloudrc 中的密码以 admin 用户身份登录 horizon。cirros 镜像的默认凭证是用户名
cirros和 passwordcubswin:)。 从 novnc 控制台,验证实例是否收到 DHCP 地址:
$ ip addr show注意您也可以从 undercloud 运行
nova console-log <instance id> 命令,以验证实例是否收到 DHCP 地址。- 对所有其他实例重复 1 和 2 步。
- 从一个实例,尝试对其他实例发出 ping 命令。这将验证 overcloud 中基本的 租户网络 连接。
- 使用浮动 IP 地址,验证您可以访问 其他实例。
4.1.4. 创建设备 复制链接链接已复制到粘贴板!
在外部网络上创建一个浮动 IP,它将与
cirros1实例关联:$ openstack floating ip create external创建一个路由器,在浮动 IP 和
cirros1租户 IP 之间处理 NAT:$ openstack router create test将路由器的网关设置为外部网络:
$ openstack router set test --external-gateway external在附加到租户网络的路由器中添加接口:
$ openstack router add subnet test test查找并存储您在第 1 步中创建的浮动 IP:
$ floating_ip=$(openstack floating ip list | head -n -1 | grep -Eo '[0-9]+\.[0-9]+\.[0-9]+\.[0-9]+')将浮动 IP 与
cirros1实例关联:$ openstack server add floating ip cirros1 $floating_ip从具有外部网络访问权限的节点,尝试登录实例:
$ ssh cirros@$floating_ip