OpenStack的获取使用Ansible新创建的端口ID

问题描述 投票:1回答:1

使用os_port模块我已经当前创建一个NIC端口,现在我试图让新创建的端口的ID,并在Ansible接下来的任务中使用它。

  - os_port:
       state: present
       fixed_ips:
        - ip_address: 172.30.137.138
       allowed_address_pairs:
        - ip_address: 172.30.137.128/27
       name: port-3
       security_groups: sg_default
       network: nw1
    register: port3
    tags: neutron_ports

我怎样才能访问Ansible新创建的端口的ID?我曾尝试类似:{{port3.port_id}},但它不工作。我需要这个ID的下一个任务来使用它。

EDIT1

我发现该端口ID是port3.id,但是当我尝试下一个功能(使用特定端口VM创建),我得到一个错误:

- name: Create a VM
    os_server: 
      state: present
      flavor: m1.small  
      name: vm1
      image: cirros
      availability_zone: internal 
      nics: 
      - port-id: port3.id
    tags: vm1

错误:

致命的:本地主机]:失败! => { “改变”:假 “extra_data”:空, “msg” 中: “BadRequestException:400:为URL客户端错误:http://192.168.111.130:8774/v2.1/4f8c49b18a4347df90f28cbe39414f0e/servers,{\” 错误请求\ “:{\” 消息\ “:\” 无效输入字段/属性端口。价值:port3.id。 u'port3.id”是无效在任何给定的模式的\‘\‘代码\’:400}}’

EDIT2:我还没有介绍里面的“{{}}”的变量。此后,Ansible脚本运行,但我正在逐渐与实例创建JSON数据量巨大的错误,但在最后一排,它说:

出错创建服务器

如果我期待到仪表板,我看到的情况,但其状态为“错误”。在VM内,我有以下消息:与500码“没有有效的主机被发现”。当我在看的主机,所有的人都在运行,可供选择:

[dante@localhost roles(keystone_admin)]$ nova service-list
+--------------------------------------+------------------+-----------------------+----------+---------+-------+----------------------------+-----------------+-------------+
| Id                                   | Binary           | Host                  | Zone     | Status  | State | Updated_at                 | Disabled Reason | Forced down |
+--------------------------------------+------------------+-----------------------+----------+---------+-------+----------------------------+-----------------+-------------+
| 21ac1600-fc5a-481e-a725-3e12265bdb66 | nova-conductor   | localhost.localdomain | internal | enabled | up    | 2018-08-07T17:08:38.000000 | -               | False       |
| 6d9393da-42ea-4290-83f6-af4af2c377e3 | nova-scheduler   | localhost.localdomain | internal | enabled | up    | 2018-08-07T17:08:40.000000 | -               | False       |
| 6eb82482-d6df-4fb7-ad77-46bdacf442de | nova-consoleauth | localhost.localdomain | internal | enabled | up    | 2018-08-07T17:08:38.000000 | -               | False       |
| 46b5e512-da96-4066-b45e-57336da6cfec | nova-compute     | localhost.localdomain | nova     | enabled | up    | 2018-08-07T17:08:40.000000 | -               | False       |

任何想法是错误的?

非常感谢,

罗马

ansible openstack id
1个回答
0
投票

尝试这个:

更改:

- port-id: port3.id

至:

- port-id: "{{ port3.id }}"
© www.soinside.com 2019 - 2024. All rights reserved.