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

字符串

CA 证书捆绑包的路径,可用作验证 SSL API 请求的一部分。

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地址。

名称

字符串 / 必需

必须赋予端口的名称。

此端口属性无法更新。

网络

字符串

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

创建新端口时必填。

创建端口时必须为名称。

此端口属性无法更新。

no_security_groups

布尔值

不要将安全组与该端口关联。

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

选项

  • false ← (默认)

  • true

区域名称

字符串

区域名称。

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"

名称

字符串

端口名称。

返回值:成功

示例: "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资源(例如:最小带宽)和特性(例如:vnic类型、physnet)。

返回值:成功

revision_number

整数

资源的修订号。

返回值:成功

示例: 0

security_group_ids

列表 / 元素=字符串

任何附加安全组的ID。

返回值:成功

状态

字符串

端口状态。值为ACTIVEDOWN

返回值:成功

示例: "ACTIVE"

标签

列表 / 元素=字符串

资源上的标签列表。

返回值:成功

示例: []

tenant_id

字符串

project_id相同。已弃用。

返回值:成功

示例: "51fce036d7984ba6af4f6c849f65ef00"

trunk_details

字典

引用此父端口及其子端口的Trunk。如果加载了trunk-details扩展,则对于Trunk父端口存在。

返回值:成功

updated_at

字符串

上次更新端口的时间戳。

返回值:成功

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

作者

  • OpenStack Ansible SIG