community.digitalocean.digital_ocean 模块 – 在 DigitalOcean 中创建/删除 Droplet/SSH 密钥

注意

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

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

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

要在 playbook 中使用它,请指定:community.digitalocean.digital_ocean

已弃用

在以下版本中移除:

2.0.0 版本

原因:

更新模块以移除外部依赖项并增强功能。

替代方案:

改用 community.digitalocean.digital_ocean_droplet

概要

  • 在 DigitalOcean 中创建/删除 Droplet,并可选择等待其变为“运行”状态,或部署 SSH 密钥。

要求

执行此模块的主机需要以下要求。

  • python >= 2.6

  • dopy

参数

参数

注释

api_token

别名:API_TOKEN

字符串

DigitalOcean API 令牌。

backups_enabled

布尔值

可选,布尔值,启用 Droplet 的备份。

选项

  • false ← (默认)

  • true

command

字符串

您要操作的目标。

选项

  • "droplet" ← (默认)

  • "ssh"

id

别名:droplet_id

整数

数值,您要操作的 Droplet ID。

image_id

字符串

这是您要用来创建 Droplet 的镜像的 slug。

ipv6

布尔值

可选,布尔值,为您的 Droplet 启用 IPv6。

选项

  • false ← (默认)

  • true

name

字符串

字符串,这是 Droplet 的名称 - 必须符合主机名规则,或者 SSH 密钥的名称。

private_networking

布尔值

布尔值,为 Droplet 添加额外的专用网络接口,用于 Droplet 之间的通信。

选项

  • false ← (默认)

  • true

region_id

字符串

这是您要创建服务器的区域的 slug。

size_id

字符串

这是您要用来创建 Droplet 的大小的 slug。

ssh_key_ids

列表 / 元素=字符串

可选,您要添加到服务器的 SSH 密钥 (数字) ID 数组。

ssh_pub_key

字符串

您要添加到帐户的公共 SSH 密钥。

state

字符串

指示目标的所需状态。

选项

  • "present" ← (默认)

  • "active"

  • "absent"

  • "deleted"

unique_name

布尔值

布尔值,要求唯一的主机名。默认情况下,DigitalOcean 允许使用相同名称的多个主机。将其设置为“yes”仅允许每个名称一个主机。对幂等性很有用。

选项

  • false ← (默认)

  • true

user_data

字符串

提供给 Droplet 的不透明数据块

virtio

布尔值

布尔值,在 Droplet 中启用 virtio 驱动程序,以提高网络和存储 I/O 性能。

选项

  • false

  • true ← (默认)

wait

布尔值

等待 Droplet 处于“运行”状态后再返回。如果 wait 为“no”,则可能不会返回 ip_address。

选项

  • false

  • true ← (默认)

wait_timeout

整数

wait 超时前的时间(秒)。

默认值: 300

备注

注意

  • 可以使用两个环境变量 DO_API_KEY 和 DO_API_TOKEN。它们都指 v2 令牌。

  • 从 Ansible 1.9.5 和 2.0 开始,使用 DigitalOcean API 的 2 版,这将 client_idapi_key 选项替换为 api_token

  • 如果您运行的是 Ansible 1.9.4 或更早版本,则可能无法使用此模块的包含版本,因为所使用的 API 版本已被弃用。升级 Ansible,或者如果无法升级,请尝试从 github 下载此模块的最新版本并将其放入“library”目录。

示例

# Ensure a SSH key is present
# If a key matches this name, will return the ssh key id and changed = False
# If no existing key matches this name, a new key is created, the ssh key id is returned and changed = False

- name: Ensure a SSH key is present
  community.digitalocean.digital_ocean:
    state: present
    oauth_token: "{{ lookup('ansible.builtin.env', 'DO_API_TOKEN') }}"
    command: ssh
    name: my_ssh_key
    ssh_pub_key: 'ssh-rsa AAAA...'

# Will return the droplet details including the droplet id (used for idempotence)
- name: Create a new Droplet
  community.digitalocean.digital_ocean:
    state: present
    oauth_token: "{{ lookup('ansible.builtin.env', 'DO_API_TOKEN') }}"
    command: droplet
    name: mydroplet
    size_id: 2gb
    region_id: ams2
    image_id: fedora-19-x64
    wait_timeout: 500
  register: my_droplet

- debug:
    msg: "ID is {{ my_droplet.droplet.id }}"

- debug:
    msg: "IP is {{ my_droplet.droplet.ip_address }}"

# Ensure a droplet is present
# If droplet id already exist, will return the droplet details and changed = False
# If no droplet matches the id, a new droplet will be created and the droplet details (including the new id) are returned, changed = True.

- name: Ensure a droplet is present
  community.digitalocean.digital_ocean:
    state: present
    oauth_token: "{{ lookup('ansible.builtin.env', 'DO_API_TOKEN') }}"
    command: droplet
    id: 123
    name: mydroplet
    size_id: 2gb
    region_id: ams2
    image_id: fedora-19-x64
    wait_timeout: 500

# Create a droplet with ssh key
# The ssh key id can be passed as argument at the creation of a droplet (see ssh_key_ids).
# Several keys can be added to ssh_key_ids as id1,id2,id3
# The keys are used to connect as root to the droplet.

- name: Create a droplet with ssh key
  community.digitalocean.digital_ocean:
    state: present
    oauth_token: "{{ lookup('ansible.builtin.env', 'DO_API_TOKEN') }}"
    ssh_key_ids: 123,456
    name: mydroplet
    size_id: 2gb
    region_id: ams2
    image_id: fedora-19-x64

状态

  • 此模块将在 2.0.0 版本中移除。[已弃用]

  • 有关更多信息,请参见 已弃用

作者

  • Vincent Viallet (@zbal)