community.general.packet_ip_subnet 模块 – 将 IP 子网分配给裸金属服务器

注意

此模块是 community.general 集合(版本 10.1.0)的一部分。

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

要安装它,请使用:ansible-galaxy collection install community.general。您需要进一步的要求才能使用此模块,请参阅 要求 了解详细信息。

要在 playbook 中使用它,请指定:community.general.packet_ip_subnet

community.general 0.2.0 中的新增功能

概要

  • 将 IPv4 或 IPv6 子网分配给 Packet 主机中的设备或从设备取消分配。

  • IPv4 子网必须来自已保留的块。

  • IPv6 子网必须来自您的项目的可公开路由的 /56 块。

  • 有关 IP 块保留的更多信息,请参阅 https://support.packet.com/kb/articles/elastic-ips

要求

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

  • packet-python >= 1.35

参数

参数

注释

auth_token

字符串

Packet API 令牌。您也可以在环境变量 PACKET_API_TOKEN 中提供它。

cidr

别名:name

字符串 / 必需

您要管理的 IPv4 或 IPv6 子网。 它必须来自 Packet Host 中为您的项目保留的块。

device_count

整数

要从项目中检索的设备数量。允许的最大值为 1000。

有关更多信息,请参阅 https://www.packet.com/developers/api/#retrieve-all-devices-of-a-project

默认值: 100

device_id

字符串

要向其分配/删除子网的设备的 UUID。

hostname

字符串

要向其分配/删除子网的设备的主机名。

project_id

字符串

要向其分配/删除子网的设备的项目的 UUID。

state

字符串

指定设备上 IP 子网的所需状态。

对于 state=present,您必须指定 hostnamedevice_id。然后,具有给定 CIDR 的子网将分配给指定的设备。

对于 state=absent,您可以指定 hostnamedevice_id。子网将从指定的设备中删除。

如果您将 hostnamedevice_id 都保留为空,则子网将从其分配到的任何设备中删除。

选项

  • "present" ← (默认)

  • "absent"

属性

属性

支持

描述

check_mode

支持:完整

可以在 check_mode 模式下运行,并返回更改状态预测,而无需修改目标。

diff_mode

支持:

在 diff 模式下,将返回已更改的内容(或在 check_mode 中可能需要更改的内容)的详细信息。

示例

# All the examples assume that you have your Packet API token in env var PACKET_API_TOKEN.
# You can also pass it to the auth_token parameter of the module instead.

- name: Create 1 device and assign an arbitrary public IPv4 subnet to it
  hosts: localhost
  tasks:

  - packet_device:
      project_id: 89b497ee-5afc-420a-8fb5-56984898f4df
      hostnames: myserver
      operating_system: ubuntu_16_04
      plan: baremetal_0
      facility: sjc1
      state: active

# Pick an IPv4 address from a block allocated to your project.

  - community.general.packet_ip_subnet:
      project_id: 89b497ee-5afc-420a-8fb5-56984898f4df
      hostname: myserver
      cidr: "147.75.201.78/32"

# Release IP address 147.75.201.78

- name: Unassign IP address from any device in your project
  hosts: localhost
  tasks:
  - community.general.packet_ip_subnet:
      project_id: 89b497ee-5afc-420a-8fb5-56984898f4df
      cidr: "147.75.201.78/32"
      state: absent

返回值

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

描述

changed

布尔值

如果 IP 地址分配以任何方式被更改(创建或删除),则为 True。

返回:成功

示例: true

device_id

字符串

与指定 IP 地址关联的设备的 UUID。

返回:成功

子网

字典

包含有关处理的 IP 子网数据的字典。

返回:成功

示例: {"address": "147.75.90.241", "address_family": 4, "assigned_to": {"href": "/devices/61f9aa5e-0530-47f5-97c2-113828e61ed0"}, "cidr": 31, "created_at": "2017-08-07T15:15:30Z", "enabled": true, "gateway": "147.75.90.240", "href": "/ips/31eda960-0a16-4c0f-b196-f3dc4928529f", "id": "1eda960-0a16-4c0f-b196-f3dc4928529f", "manageable": true, "management": true, "netmask": "255.255.255.254", "network": "147.75.90.240", "public": true}

作者

  • Tomas Karasek (@t0mk)

  • Nurfet Becirevic (@nurfet-becirevic)