++./stack.sh:main:1351 devstack ./stack.sh 失败

++./stack.sh:main:1351 devstack ./stack.sh fails

I 运行 ./stack.sh 在控制器节点(虚拟机 ubuntu 14.04 lts)上安装 devstack 用于多节点实验室设置。脚本失败,日志如下:

2017-02-16 09:50:14.632 | +[3242m./stack.sh:main:1349                     (B[m [[ -x /home/stack/devstack/local.sh ]]

2017-02-16 09:50:14.647 | +[3242m./stack.sh:main:1350                     (B[m echo 'Running user script /home/stack/devstack/local.sh'

2017-02-16 09:50:14.647 | Running user script /home/stack/devstack/local.sh

2017-02-16 09:50:14.661 | +[3242m./stack.sh:main:1351                     (B[m /home/stack/devstack/local.sh

2017-02-16 09:50:14.666 | /home/stack/devstack/local.sh: line 11: /opt/stack/nova/bin/nova-manage: No such file or directory

2017-02-16 09:50:14.667 | /home/stack/devstack/local.sh: line 11: /opt/stack/nova/bin/nova-manage: No such file or directory

2017-02-16 09:50:14.667 | /home/stack/devstack/local.sh: line 11: /opt/stack/nova/bin/nova-manage: No such file or directory

2017-02-16 09:50:14.668 | /home/stack/devstack/local.sh: line 11: /opt/stack/nova/bin/nova-manage: No such file or directory

2017-02-16 09:50:14.669 | /home/stack/devstack/local.sh: line 11: /opt/stack/nova/bin/nova-manage: No such file or directory

2017-02-16 09:50:14.672 | /home/stack/devstack/local.sh: line 11: /opt/stack/nova/bin/nova-manage: No such file or directory

2017-02-16 09:50:14.672 | /home/stack/devstack/local.sh: line 11: /opt/stack/nova/bin/nova-manage: No such file or directory

2017-02-16 09:50:14.673 | /home/stack/devstack/local.sh: line 11: /opt/stack/nova/bin/nova-manage: No such file or directory

2017-02-16 09:50:14.674 | /home/stack/devstack/local.sh: line 11: /opt/stack/nova/bin/nova-manage: No such file or directory

2017-02-16 09:50:15.057 | WARNING: setting legacy OS_TENANT_NAME to support cli tools.

2017-02-16 09:50:15.067 | WARNING: setting legacy OS_TENANT_NAME to support cli tools.

2017-02-16 09:50:28.646 | +----------------------------+----------+
2017-02-16 09:50:28.646 | | Field                      | Value    |
2017-02-16 09:50:28.646 | +----------------------------+----------+
2017-02-16 09:50:28.646 | | OS-FLV-DISABLED:disabled   | False    |
2017-02-16 09:50:28.646 | | OS-FLV-EXT-DATA:ephemeral  | 0        |
2017-02-16 09:50:28.647 | | disk                       | 0        |
2017-02-16 09:50:28.647 | | id                         | 6        |
2017-02-16 09:50:28.647 | | name                       | m1.micro |
2017-02-16 09:50:28.647 | | os-flavor-access:is_public | True     |
2017-02-16 09:50:28.647 | | properties                 |          |
2017-02-16 09:50:28.647 | | ram                        | 128      |
2017-02-16 09:50:28.647 | | rxtx_factor                | 1.0      |
2017-02-16 09:50:28.647 | | swap                       |          |
2017-02-16 09:50:28.647 | | vcpus                      | 1        |
2017-02-16 09:50:28.647 | +----------------------------+----------+

2017-02-16 09:50:34.052 | More than one SecurityGroup exists with the name 'default'.

2017-02-16 09:50:36.188 | More than one SecurityGroup exists with the name 'default'.

2017-02-16 09:50:36.285 | ++[3242m./stack.sh:main:1351                     (B[m err_trap

2017-02-16 09:50:36.328 | ++[3242m./stack.sh:err_trap:517                  (B[m local r=1

2017-02-16 09:50:36.405 | stack.sh failed: full log in /opt/stack/logs/stack.sh.log.2017-02-16-150336

2017-02-16 09:50:36.408 | Error on exit

存在多个名为 default 的安全组,但在 运行 nova s​​ecgroup-list 上我得到以下信息:

stack@user-VirtualBox:~/devstack$ nova secgroup-list

/usr/local/lib/python2.7/dist-packages/novaclient/client.py:278: UserWarning: The 'tenant_id' argument is deprecated in Ocata and its use may result in errors in future releases. As 'project_id' is provided, the 'tenant_id' argument will be ignored.
warnings.warn(msg)
WARNING: Command secgroup-list is deprecated and will be removed after Nova 15.0.0 is released. Use python-neutronclient or openstackclient instead.
+--------------------------------------+---------+------------------------+
| Id                                   | Name    | Description            |
+--------------------------------------+---------+------------------------+
| de21f869-215e-46c0-9e36-28da003c2d7a | default | Default security group |
+--------------------------------------+---------+------------------------+

我需要在此虚拟机的控制器设置中安装 devstack,此错误导致 ./stack.sh 失败。

问题已解决。当 ./stack.sh 调用 local.sh 为默认安全组创建规则时会发生错误。由于每个租户都存在默认安全组,因此发生此错误。 解决方案是注释掉 local.sh 中处理这些规则创建的部分,然后通过提及安全组的 ID 而不是名称来明确创建它们以避免任何冲突。