8.5. 验证 Overcloud
Overcloud 使用 Tempest 进行一组集成测试。以下展示了如何使用 Tempest 来验证 Overcloud。如果从 Undercloud 运行这个测试,需要确保 Undercloud 主机可以访问 Overcloud 的内部 API 网络。例如,在 Undercloud 主机上添加一个临时的 VLAN(ID: 201)来访问内部 API 网络,使用 172.16.0.201/24 地址:
source ~/stackrc sudo ovs-vsctl add-port br-ctlplane vlan201 tag=201 -- set interface vlan201 type=internal sudo ip l set dev vlan201 up; sudo ip addr add 172.16.0.201/24 dev vlan201
$ source ~/stackrc
$ sudo ovs-vsctl add-port br-ctlplane vlan201 tag=201 -- set interface vlan201 type=internal
$ sudo ip l set dev vlan201 up; sudo ip addr add 172.16.0.201/24 dev vlan201
在运行 Tempest 前,检查
heat_stack_owner 角色存在于 Overcloud:
如果角色不存在,则创建它:
keystone role-create --name heat_stack_owner
$ keystone role-create --name heat_stack_owner
在
stack 用户的家目录中设置一个 tempest 目录,并安装一个本地版本的 Tempest 套件:
mkdir ~/tempest cd ~/tempest /usr/share/openstack-tempest-liberty/tools/configure-tempest-directory
$ mkdir ~/tempest
$ cd ~/tempest
$ /usr/share/openstack-tempest-liberty/tools/configure-tempest-directory
这会创建一个本地版本的 Tempest 工具集。
在 Overcloud 创建过程完成后,director 会创建一个名为
~/tempest-deployer-input.conf 的文件。这个文件会提供一组和您的 Overcloud 相关的 Tempest 配置选项。运行以下命令来使用这个文件来配置 Tempest:
tools/config_tempest.py --deployer-input ~/tempest-deployer-input.conf --debug --create identity.uri $OS_AUTH_URL identity.admin_password $OS_PASSWORD --network-id d474fe1f-222d-4e32-9242-cd1fefe9c14b
$ tools/config_tempest.py --deployer-input ~/tempest-deployer-input.conf --debug --create identity.uri $OS_AUTH_URL identity.admin_password $OS_PASSWORD --network-id d474fe1f-222d-4e32-9242-cd1fefe9c14b
$OS_AUTH_URL 和 $OS_PASSWORD 这两个环境变量使用 overcloudrc 中设置的值。--network-id 是在 第 8.2 节 “创建 Overcloud External 网络” 中创建的外部网络的 UUID。
重要
这个配置脚本从 Tempest 测试中下载 Cirros 镜像。请确保这个目录可以直接访问互联网或通过代理服务器访问互联网。如果命令行操作需要通过代理进行,需要设置
http_proxy 环境变量。
使用以下命令运行整个 Tempest 测试:
tools/run-tests.sh
$ tools/run-tests.sh
注意
完整运行整个 Tempest 测试可能会需要佷长时间。您可以使用
'.*smoke' 选项来只运行其中一部分的测试。
tools/run-tests.sh '.*smoke'
$ tools/run-tests.sh '.*smoke'
每个测试会针对 Overcloud 运行,它们的输出会显示每个测试以及它们的结果。在相同的目录中会产生一个包括更多测试信息的文件
tempest.log。例如,输出结果可能会显示以下失败的测试:
{2} tempest.api.compute.servers.test_servers.ServersTestJSON.test_create_specify_keypair [18.305114s] ... FAILED
{2} tempest.api.compute.servers.test_servers.ServersTestJSON.test_create_specify_keypair [18.305114s] ... FAILED
这会包括一个相关的、包括更多信息的日志条目。在日志中搜索使用冒号分隔的测试命名空间的最后两个部分。在这个示例中,搜索
ServersTestJSON:test_create_specify_keypair:
注意
使用
-A 4 选项会显示接下来的 4 行内容,它们通常是请求的 header 和 body,以及返回的 header 和 body。
在验证完成后,删除所有到 Overcloud 的内部 API 的临时连接。在这个示例中,使用以下命令删除以前在 Undercloud 中创建的 VLAN:
source ~/stackrc sudo ovs-vsctl del-port vlan201
$ source ~/stackrc
$ sudo ovs-vsctl del-port vlan201