community.digitalocean.digital_ocean_droplet 模块 – 创建和删除 DigitalOcean Droplet
注意
此模块是 community.digitalocean 集合(版本 1.27.0)的一部分。
如果您正在使用 ansible
包,则可能已经安装了此集合。它不包含在 ansible-core
中。要检查是否已安装,请运行 ansible-galaxy collection list
。
要安装它,请使用:ansible-galaxy collection install community.digitalocean
。
要在 playbook 中使用它,请指定:community.digitalocean.digital_ocean_droplet
。
概要
在 DigitalOcean 中创建和删除 droplet,并可选择等待其激活。
参数
参数 |
注释 |
---|---|
指示是否应启用自动备份。 选项
|
|
DigitalOcean API 基本 URL。 默认值: |
|
要应用于 Droplet 的防火墙名称数组。 省略当前应用于 droplet 的防火墙名称将删除它。 |
|
您要操作的 Droplet ID。 |
|
这是您希望用于创建 Droplet 的映像的 slug。 |
|
为 Droplet 启用 IPv6。 选项
|
|
指示是否安装用于监控的 DigitalOcean 代理。 选项
|
|
这是 Droplet 的名称。 必须按主机名规则格式化。 |
|
DigitalOcean OAuth 令牌。 还有其他几个环境变量可用于提供此值。 例如,- |
|
向 Droplet 添加额外的私有网络接口(用于 Droplet 之间的通信)。 选项
|
|
要将资源分配到的项目(项目名称,而不是 UUID)。 默认为帐户的默认项目(空字符串)。 目前仅在创建时支持。 默认值: |
|
这是您希望在其中创建 Droplet 的区域的 slug。 |
|
是否在调整大小时增加磁盘大小。 仅在 Droplet 选项
|
|
这是您希望用于创建 Droplet 的大小的 slug。 请参阅 https://slugs.do-api.dev/ 以获取当前 slug。 |
|
在操作和状态检查之间 默认值为 10 秒;这应该小于 默认值: |
|
您希望添加到 Droplet 的 SSH 密钥指纹数组。 |
|
指示目标所需的状态。
选项
|
|
一个字符串形式的标签名称列表,用于在 Droplet 创建后应用。 标签名称可以是已存在的标签,也可以是新标签。 |
|
用于轮询 DigitalOcean API 的超时时间(秒)。 默认值: |
|
要求唯一的主机名。 默认情况下,DigitalOcean 允许具有相同名称的多个主机。 将其设置为 对幂等性很有用。 选项
|
|
传递给 Droplet 的不透明数据块。 |
|
如果设置为 仅应在个人控制的使用自签名证书的站点上将其设置为 选项
|
|
一个列表,包含要附加到 Droplet 的每个块存储卷的唯一字符串标识符。 |
|
一个字符串,指定将 Droplet 分配到的 VPC 的 UUID。 如果排除,Droplet 将分配给该区域帐户的默认 VPC。 |
|
在返回之前等待 Droplet 变为活动状态。 如果 wait 为 选项
|
|
在创建 Droplet 时, 默认值: |
示例
- name: Create a new Droplet
community.digitalocean.digital_ocean_droplet:
state: present
oauth_token: "{{ lookup('ansible.builtin.env', 'DO_API_TOKEN') }}"
name: mydroplet
size: s-1vcpu-1gb
region: sfo3
image: ubuntu-20-04-x64
wait_timeout: 500
ssh_keys: [ .... ]
register: my_droplet
- name: Show Droplet info
ansible.builtin.debug:
msg: |
Droplet ID is {{ my_droplet.data.droplet.id }}
First Public IPv4 is {{ (my_droplet.data.droplet.networks.v4 | selectattr('type', 'equalto', 'public')).0.ip_address | default('<none>', true) }}
First Private IPv4 is {{ (my_droplet.data.droplet.networks.v4 | selectattr('type', 'equalto', 'private')).0.ip_address | default('<none>', true) }}
- name: Create a new Droplet (and assign to Project "test")
community.digitalocean.digital_ocean_droplet:
state: present
oauth_token: "{{ lookup('ansible.builtin.env', 'DO_API_TOKEN') }}"
name: mydroplet
size: s-1vcpu-1gb
region: sfo3
image: ubuntu-20-04-x64
wait_timeout: 500
ssh_keys: [ .... ]
project: test
register: my_droplet
- name: Ensure a Droplet is present
community.digitalocean.digital_ocean_droplet:
state: present
oauth_token: "{{ lookup('ansible.builtin.env', 'DO_API_TOKEN') }}"
id: 123
name: mydroplet
size: s-1vcpu-1gb
region: sfo3
image: ubuntu-20-04-x64
wait_timeout: 500
- name: Ensure a Droplet is present and has firewall rules applied
community.digitalocean.digital_ocean_droplet:
state: present
oauth_token: "{{ lookup('ansible.builtin.env', 'DO_API_TOKEN') }}"
id: 123
name: mydroplet
size: s-1vcpu-1gb
region: sfo3
image: ubuntu-20-04-x64
firewall: ['myfirewall', 'anotherfirewall']
wait_timeout: 500
- name: Ensure a Droplet is present with SSH keys installed
community.digitalocean.digital_ocean_droplet:
state: present
oauth_token: "{{ lookup('ansible.builtin.env', 'DO_API_TOKEN') }}"
id: 123
name: mydroplet
size: s-1vcpu-1gb
region: sfo3
ssh_keys: ['1534404', '1784768']
image: ubuntu-20-04-x64
wait_timeout: 500
返回值
常见的返回值已记录在这里,以下是此模块特有的字段
键 |
描述 |
---|---|
分配状态 (ok, not_found, assigned, already_assigned, service_down) 返回: changed 示例: |
|
一个 DigitalOcean Droplet 返回: changed 示例: |
|
执行期间遇到的信息或错误消息 返回: changed 示例: |
|
项目中涉及的资源分配 返回: changed 示例: |