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 版本
- 原因:
更新模块以移除外部依赖项并增强功能。
- 替代方案:
概要
在 DigitalOcean 中创建/删除 Droplet,并可选择等待其变为“运行”状态,或部署 SSH 密钥。
要求
执行此模块的主机需要以下要求。
python >= 2.6
dopy
参数
参数 |
注释 |
---|---|
DigitalOcean API 令牌。 |
|
可选,布尔值,启用 Droplet 的备份。 选项
|
|
您要操作的目标。 选项
|
|
数值,您要操作的 Droplet ID。 |
|
这是您要用来创建 Droplet 的镜像的 slug。 |
|
可选,布尔值,为您的 Droplet 启用 IPv6。 选项
|
|
字符串,这是 Droplet 的名称 - 必须符合主机名规则,或者 SSH 密钥的名称。 |
|
布尔值,为 Droplet 添加额外的专用网络接口,用于 Droplet 之间的通信。 选项
|
|
这是您要创建服务器的区域的 slug。 |
|
这是您要用来创建 Droplet 的大小的 slug。 |
|
可选,您要添加到服务器的 SSH 密钥 (数字) ID 数组。 |
|
您要添加到帐户的公共 SSH 密钥。 |
|
指示目标的所需状态。 选项
|
|
布尔值,要求唯一的主机名。默认情况下,DigitalOcean 允许使用相同名称的多个主机。将其设置为“yes”仅允许每个名称一个主机。对幂等性很有用。 选项
|
|
提供给 Droplet 的不透明数据块 |
|
布尔值,在 Droplet 中启用 virtio 驱动程序,以提高网络和存储 I/O 性能。 选项
|
|
等待 Droplet 处于“运行”状态后再返回。如果 wait 为“no”,则可能不会返回 ip_address。 选项
|
|
wait 超时前的时间(秒)。 默认值: |
备注
注意
可以使用两个环境变量 DO_API_KEY 和 DO_API_TOKEN。它们都指 v2 令牌。
从 Ansible 1.9.5 和 2.0 开始,使用 DigitalOcean API 的 2 版,这将
client_id
和api_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 版本中移除。[已弃用]
有关更多信息,请参见 已弃用。