Spec-Zone.ru › Ansible

Модуль community.digitalocean.digital_ocean_droplet — Создание и удаление виртуальной машины DigitalOcean

Примечание

Этот модуль входит в коллекцию community.digitalocean (версия 1.27.0).

У вас, возможно, уже установлена эта коллекция, если вы используете пакет ansible. Она не включена в ansible-core. Чтобы проверить её установку, выполните ansible-galaxy collection list.

Для установки используйте: ansible-galaxy collection install community.digitalocean.

Для использования в плейбуке укажите: community.digitalocean.digital_ocean_droplet.

  • Описание
  • Параметры
  • Примеры
  • Возвращаемые значения

Описание

  • Создание и удаление виртуальной машины в DigitalOcean, а также (по желанию) ожидание её активации.

Параметры

Параметр

Комментарии

backups

boolean

Указывает, следует ли включить автоматическое создание резервных копий.

Выбор:

  • false ← (по умолчанию)
  • true

baseurl

string

Базовый URL API DigitalOcean.

По умолчанию: "https://api.digitalocean.com/v2"

firewall

list / elements=string

Массив имен брандмауэров, которые нужно применить к Droplet.

Пропуск имени брандмауэра, который в настоящее время применяется к виртуальной машине, удалит его.

id

aliases: droplet_id

integer

Идентификатор Droplet, на котором нужно выполнить операцию.

image

aliases: image_id

string

Это идентификатор образа, с которым вы хотите создать Droplet.

ipv6

boolean

Включить IPv6 для Droplet.

Выбор:

  • false ← (по умолчанию)
  • true

monitoring

boolean

Указывает, следует ли установить агент DigitalOcean для мониторинга.

Выбор:

  • false ← (по умолчанию)
  • true

name

string

Это имя Droplet.

Должно соответствовать правилам для имени хоста.

oauth_token

aliases: api_token

string

Токен аутентификации DigitalOcean.

Существуют и другие переменные окружения, которые можно использовать для предоставления этого значения.

Например, - DO_API_TOKEN, DO_API_KEY, DO_OAUTH_TOKEN и OAUTH_TOKEN.

private_networking

boolean

Добавить дополнительный частный сетевой интерфейс к Droplet (для межвиртуальных взаимодействий).

Выбор:

  • false ← (по умолчанию)
  • true

project_name

aliases: project

string

Проект, которому нужно назначить ресурс (имя проекта, а не UUID).

По умолчанию используется по умолчанию проект учетной записи (пустая строка).

В настоящее время поддерживается только при создании.

По умолчанию: ""

region

aliases: region_id

string

Это идентификатор региона, в котором вы хотите создать Droplet.

resize_disk

boolean

Увеличивать ли размер диска при изменении размера.

Используется только в том случае, если unique_name равно true.

Droplet size должен указывать на увеличение.

Выбор:

  • false ← (по умолчанию)
  • true

size

aliases: size_id

string

Это идентификатор размера, с которым вы хотите создать Droplet.

См. https://slugs.do-api.dev/ для текущих идентификаторов.

sleep_interval

integer

Время ожидания между действием и проверкой статуса.

По умолчанию 10 секунд; должно быть меньше wait_timeout и отличным от нуля.

По умолчанию: 10

ssh_keys

list / elements=string

Массив отпечатков ключей SSH, которые вы хотите добавить к Droplet.

состояние

строка

Укажите желаемое состояние целевого объекта.

present будет создавать указанную каплю; имейте в виду параметр unique_name.

absent удалит указанную каплю, если она существует.

active создаст указанную каплю (если она не существует) и убедится, что она включена.

inactive создаст указанную каплю (если она не существует) и убедится, что она выключена.

Варианты:

  • "present" ← (по умолчанию)
  • "absent"
  • "active"
  • "inactive"

метки

список / элементы=строка

Список имен меток в виде строк, которые следует применить к капле после ее создания.

Имена меток могут быть существующими или новыми метками.

таймаут

целое число

Таймаут в секундах, используемый для опроса API DigitalOcean.

По умолчанию: 30

уникальное_имя

логическое

Требовать уникальные имена хостов.

По умолчанию DigitalOcean разрешает несколько хостов с одинаковым именем.

Установка этого параметра в true позволяет иметь только один хост на имя.

Полезно для идемпотентности.

Варианты:

  • false ← (по умолчанию)
  • true

пользовательские_данные

строка

Непрозрачный блок данных, доступный для капли.

проверить_сертификаты

логическое

Если установлено no, сертификаты SSL не будут проверяться.

Это следует установить в no только для сайтов, контролируемых лично, использующих самозаверяющие сертификаты.

Варианты:

  • false
  • true ← (по умолчанию)

тома

список / элементы=строка

Список, включающий уникальный строковый идентификатор каждого тома хранилища блоков, который необходимо подключить к капле.

vpc_uuid

строка

добавлено в community.digitalocean 0.1.0

Строка, определяющая UUID VPC, к которому будет назначена капля.

Если этот параметр не указан, капля будет назначена к VPC по умолчанию для учетной записи в регионе.

ждать

логическое

Подождать, пока капля не станет активной, прежде чем возвращаться.

Если wait — false, IP-адрес может не быть возвращен.

Варианты:

  • false
  • true ← (по умолчанию)

таймаут_ожидания

целое число

Сколько времени пройдет, прежде чем wait прекратит попытки, в секундах, при создании капли.

По умолчанию: 120

Примеры

- 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

Значения возврата

Общие значения возврата описаны здесь, следующие поля уникальны для данного модуля:

Ключ

Описание

assign_status

строка

Статус назначения (ok, not_found, assigned, already_assigned, service_down)

Возвращается: changed

Пример: "assigned"

данные

словарь

Капля DigitalOcean

Возвращается: changed

Пример: {"droplet": {"backup_ids": [], "created_at": "2014-11-14T16:36:31Z", "disk": 20, "features": ["virtio"], "id": 3164494, "image": {}, "kernel": {"id": 2233, "name": "Ubuntu 14.04 x64 vmlinuz-3.13.0-37-generic", "version": "3.13.0-37-generic"}, "locked": true, "memory": 512, "name": "example.com", "networks": {}, "region": {}, "size": {}, "size_slug": "512mb", "snapshot_ids": [], "status": "new", "tags": ["web"], "vcpus": 1, "volume_ids": []}, "ip_address": "104.248.118.172", "ipv6_address": "2604:a880:400:d1::90a:6001", "private_ipv4_address": "10.136.122.141"}

сообщение

строка

Информационное или сообщение об ошибке, возникшее во время выполнения

Возвращается: changed

Пример: "No project named test2 found"

ресурсы

словарь

Ресурсы, участвующие в назначении проекта

Возвращается: changed

Пример: {"assigned_at": "2021-10-25T17:39:38Z", "links": {"self": "https://api.digitalocean.com/v2/droplets/3164494"}, "status": "assigned", "urn": "do:droplet:3164494"}

Авторы

  • Gurchet Rai (@gurch101)
  • Mark Mercado (@mamercad)

Ссылки на коллекцию

  • Отслеживание проблем
  • Репозиторий (источники)

© 2012–2018 Michael DeHaan
© 2018–2024 Red Hat, Inc.
Licensed under the GNU General Public License version 3.
https://docs.ansible.com/ansible/latest/collections/community/digitalocean/digital_ocean_droplet_module.html

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API