openstack.cloud.port 模块 – 从 OpenStack 云添加/更新/删除端口。

注意

此模块是 openstack.cloud 集合(版本 2.3.0)的一部分。

如果您正在使用 ansible 包,您可能已经安装了此集合。它不包含在 ansible-core 中。要检查是否已安装,请运行 ansible-galaxy collection list

要安装它,请使用:ansible-galaxy collection install openstack.cloud。您需要其他要求才能使用此模块,有关详细信息,请参阅要求

要在 playbook 中使用它,请指定:openstack.cloud.port

概要

  • 从 OpenStack 云添加、更新或删除端口。

要求

以下要求需要在执行此模块的主机上满足。

  • python >= 3.6

  • openstacksdk >= 1.0.0

参数

参数

注释

allowed_address_pairs

列表 / 元素=字典

允许的地址对列表。 允许的地址对支持字典结构。 例如,allowed_address_pairs: - ip_address: 10.1.0.12 mac_address: ab:cd:ef:12:34:56 - ip_address: …

如果未指定所有子选项(例如,当给定 ip_address 但未给定 mac_address 时),端口将在更新期间更改。

ip_address

字符串

IP 地址。

mac_address

字符串

MAC 地址。

api_timeout

整数

套接字层在 API 调用超时之前应等待多长时间。 如果省略此项,则不会将任何内容传递给 requests 库。

auth

字典

包含云的身份验证插件策略所需的身份验证信息的字典。 对于默认的 *password* 插件,这将包含 *auth_url*、*username*、*password*、*project_name* 以及有关域的任何信息(例如,如果云支持它们,则为 *user_domain_name* 或 *project_domain_name*)。 对于其他插件,此参数将需要包含该身份验证插件所需的任何参数。 如果提供了命名的云或存在 OpenStack OS_* 环境变量,则不需要此参数。

auth_type

字符串

要使用的身份验证插件的名称。 如果云使用密码身份验证以外的其他方式,则应在此处指示插件的名称,并相应地更新 *auth* 参数的内容。

binding_profile

字典

应使用其创建端口的绑定配置文件字典。

binding_vnic_type

别名: vnic_type

字符串

应创建的端口类型

选项

  • "normal"

  • "direct"

  • "direct-physical"

  • "macvtap"

  • "baremetal"

  • "virtio-forwarder"

ca_cert

别名: cacert

字符串

可以作为验证 SSL API 请求的一部分使用的 CA 证书包的路径。

client_cert

别名: cert

字符串

用作 SSL 事务一部分的客户端证书的路径。

client_key

别名: key

字符串

用作 SSL 事务一部分的客户端密钥的路径。

cloud

任意

要操作的命名云或云配置。 如果 *cloud* 是一个字符串,它会引用 OpenStack clouds.yaml 文件中定义的命名云配置。 为 *auth* 和 *auth_type* 提供默认值。 如果提供了 *auth* 或存在 OpenStack OS_* 环境变量,则不需要此参数。 如果 *cloud* 是一个字典,它包含一个完整的云配置,就像 clouds.yaml 的一个部分一样。

description

字符串

端口的描述。

device_id

字符串

使用此端口的设备的设备 ID。

device_owner

字符串

使用此端口的实体的 ID。

dns_domain

字符串

端口的 dns 域(仅在启用 dns 集成的情况下)

dns_name

字符串

端口的 dns 名称(仅在启用 dns 集成的情况下)

extra_dhcp_opts

列表 / 元素=字典

要分配给此端口的额外 dhcp 选项。 额外选项支持字典结构。 请注意,只能更新选项,而不能删除。 例如,extra_dhcp_opts: - ip_version: 4 opt_name: bootfile-name opt_value: pxelinux.0 - opt_name: …

如果未指定所有子选项(例如,当给定 opt_name 但未给定 ip_version 时),端口将在更新期间更改。

ip_version

整数 / 必需

此 DHCP 选项适用的 IP 版本。

opt_name

字符串 / 必需

要设置的 DHCP 选项的名称。

opt_value

字符串 / 必需

要设置的 DHCP 选项的值。

fixed_ips

列表 / 元素=字典

此端口所需的 IP 和/或子网。 子网由 subnet_id 引用,IP 由 ip_address 引用。

如果未指定所有子选项(例如,当给定 ip_address 但未给定 subnet_id 时),端口将在更新期间更改。

ip_address

字符串 / 必需

要尝试分配的固定 IP 地址。

subnet_id

字符串

要将 IP 地址附加到的子网。

interface

别名: endpoint_type

字符串

要从服务目录中获取的端点 URL 类型。

选项

  • "admin"

  • "internal"

  • "public" ← (默认)

is_admin_state_up

别名: admin_state_up

布尔值

设置管理状态。

选项

  • false

  • true

is_port_security_enabled

别名: port_security_enabled

布尔值

是否在网络上启用或禁用端口安全性。

选项

  • false

  • true

mac_address

字符串

此端口的 MAC 地址。

name

字符串 / 必需

必须为端口指定的名称。

此端口属性无法更新。

network

字符串

此端口所属网络的 ID 或名称。

创建新端口时必需。

创建端口时必须是名称。

此端口属性无法更新。

no_security_groups

布尔值

不将安全组与此端口关联。

已弃用。 使用 *security_groups*: [] 代替 *no_security_groups*: true

选项

  • false ← (默认)

  • true

region_name

字符串

区域的名称。

sdk_log_level

字符串

OpenStackSDK 的日志级别

选项

  • "INFO" ← (默认)

  • "DEBUG"

sdk_log_path

字符串

OpenStackSDK 日志文件的路径。 如果为空,则不写入日志

security_groups

列表 / 元素=字符串

与端口关联的安全组 ID 或名称。

状态

字符串

资源应该存在还是不存在。

选项

  • "present" ← (默认)

  • "absent"

超时

整数

Ansible应该等待请求的资源多长时间。

默认值: 180

validate_certs

别名: verify

布尔值

是否应该验证SSL API请求。

在Ansible 2.3之前,默认值为true

选项

  • false

  • true

等待

布尔值

Ansible是否应该等待直到请求的资源完成。

选项

  • false

  • true ← (默认)

注释

注意

  • 可以使用标准的OpenStack环境变量,例如 OS_USERNAME,而不是提供显式的值。

  • 身份验证信息由openstacksdk驱动,这意味着值可以来自/etc/ansible/openstack.yaml、/etc/openstack/clouds.yaml或~/.config/openstack/clouds.yaml中的yaml配置文件,然后来自标准环境变量,最后来自play中的显式参数。更多信息可以在https://docs.openstack.org/openstacksdk/找到

示例

# Create a port
- openstack.cloud.port:
    state: present
    auth:
      auth_url: https://identity.example.com
      username: admin
      password: admin
      project_name: admin
    name: port1
    network: foo

# Create a port with a static IP
- openstack.cloud.port:
    state: present
    auth:
      auth_url: https://identity.example.com
      username: admin
      password: admin
      project_name: admin
    name: port1
    network: foo
    fixed_ips:
      - ip_address: 10.1.0.21

# Create a port with No security groups
- openstack.cloud.port:
    state: present
    auth:
      auth_url: https://identity.example.com
      username: admin
      password: admin
      project_name: admin
    name: port1
    network: foo
    no_security_groups: True

# Update the existing 'port1' port with multiple security groups (version 1)
- openstack.cloud.port:
    state: present
    auth:
      auth_url: https://identity.example.com
      username: admin
      password: admin
      project_name: admin
    name: port1
    security_groups: 1496e8c7-4918-482a-9172-f4f00fc4a3a5,057d4bdf-6d4d-472...

# Update the existing 'port1' port with multiple security groups (version 2)
- openstack.cloud.port:
    state: present
    auth:
      auth_url: https://identity.example.com
      username: admin
      password: admin
      project_name: admin
    name: port1
    security_groups:
      - 1496e8c7-4918-482a-9172-f4f00fc4a3a5
      - 057d4bdf-6d4d-472...

# Create port of type 'direct'
- openstack.cloud.port:
    state: present
    auth:
      auth_url: https://identity.example.com
      username: admin
      password: admin
      project_name: admin
    name: port1
    network: foo
    binding_vnic_type: direct

# Create a port with binding profile
- openstack.cloud.port:
    state: present
    auth:
      auth_url: https://identity.example.com
      username: admin
      password: admin
      project_name: admin
    name: port1
    network: foo
    binding_profile:
      pci_slot: "0000:03:11.1"
      physical_network: "provider"

返回值

常见的返回值记录在这里,以下是此模块特有的字段

描述

端口

字典

描述端口的字典。

返回值:statepresent时成功返回。

allowed_address_pairs

列表 / 元素=字符串

允许的地址对。

返回值: 成功

示例: []

binding_host_id

字符串

分配端口的主机的ID。在某些情况下,不同的实现可以在不同的主机上运行。

返回值: 成功

示例: "b4bd682d-234a-4091-aa5b-4b025a6a7759"

binding_profile

字典

一个字典,使运行在指定主机上的应用程序能够将特定的vif端口信息传递给插件并从插件接收。

返回值: 成功

示例: {}

binding_vif_details

字典

一个字典,使应用程序能够传递有关网络API提供的功能的信息。

返回值: 成功

binding_vif_type

字典

端口的VIF类型。

返回值: 成功

binding_vnic_type

字符串

绑定到neutron端口的虚拟网络接口卡(vNIC)类型。

返回值: 成功

示例: "normal"

created_at

字符串

端口创建时的时间戳。

返回值: 成功

示例: "2022-02-03T13:28:25Z"

data_plane_status

字符串

端口底层数据平面的状态。

返回值: 成功

description

字符串

端口描述。

返回值: 成功

device_id

字符串

此端口的设备ID。

返回值: 成功

示例: "b4bd682d-234a-4091-aa5b-4b025a6a7759"

device_owner

字符串

此端口的设备所有者,例如 network:dhcp

返回值: 成功

示例: "network:router_interface"

device_profile

字符串

此端口的设备配置文件,引用Cyborg设备配置文件:https://docs.openstack.org/api-ref/accelerator/v2/index.html# device-profiles。

返回值: 成功

dns_assignment

列表 / 元素=字符串

端口的DNS分配。

返回值: 成功

dns_domain

字符串

分配给端口的DNS域。

返回值: 成功

dns_name

字符串

端口的DNS名称。

返回值: 成功

extra_dhcp_opts

列表 / 元素=字符串

一组零个或多个额外的DHCP选项对。一个选项对由一个选项值和一个名称组成。

返回值: 成功

示例: []

fixed_ips

列表 / 元素=字符串

端口的IP地址。包括IP地址和子网ID。

返回值: 成功

id

字符串

端口ID。

返回值: 成功

示例: "3ec25c97-7052-4ab8-a8ba-92faf84148de"

ip_allocation

字符串

ip_allocation指示端口何时使用延迟的、立即的或不分配IP。

返回值: 成功

is_admin_state_up

布尔值

端口的管理状态,即启动 True 或关闭 False

返回值: 成功

示例: true

is_port_security_enabled

布尔值

端口安全状态,即启用 True 或禁用 False

返回值: 成功

示例: false

mac_address

字符串

允许的地址对的MAC地址。

返回值: 成功

示例: "00:00:5E:00:53:42"

name

字符串

端口名称。

返回值: 成功

示例: "port_name"

network_id

字符串

附加网络的ID。

返回值: 成功

示例: "dd1ede4f-3952-4131-aab6-3b8902268c7d"

numa_affinity_policy

字符串

为此端口定义的NUMA亲缘性策略。

返回值: 成功

示例: "required"

project_id

字符串

拥有该网络的项目的ID。

返回值: 成功

示例: "aa1ede4f-3952-4131-aab6-3b8902268c7d"

布尔值

是否传播端口的上行链路状态。

返回值: 成功

示例: false

qos_network_policy_id

字符串

绑定端口的网络所附加的QoS策略的ID。

返回值: 成功

示例: "1e4f3958-c0c9-4dec-82fa-ed2dc1c5cb34"

qos_policy_id

字符串

附加到端口的QoS策略的ID。

返回值: 成功

示例: "b20bb47f-5d6d-45a6-8fe7-2c1b44f0db73"

resource_request

字符串

端口资源请求向Nova和Placement公开端口请求的Placement资源(即:minimum-bandwidth)和特性(即:vnic-type,physnet)。

返回值: 成功

revision_number

整数

资源的修订号。

返回值: 成功

示例: 0

security_group_ids

列表 / 元素=字符串

任何附加的安全组的ID。

返回值: 成功

status

字符串

端口状态。值为ACTIVEDOWN

返回值: 成功

示例: "ACTIVE"

tags

列表 / 元素=字符串

资源上的标签列表。

返回值: 成功

示例: []

tenant_id

字符串

project_id相同。已弃用。

返回值: 成功

示例: "51fce036d7984ba6af4f6c849f65ef00"

trunk_details

字典

指向此父端口及其子端口的中继。如果加载了trunk-details扩展,则对于中继父端口存在。

返回值: 成功

updated_at

字符串

端口最后更新时的时间戳。

返回值: 成功

示例: "2022-02-03T13:28:25Z"

作者

  • OpenStack Ansible SIG