Назад | Перейти на главную страницу

Ansible Digital Ocean APIv2 работает слишком быстро?

Я получаю смешанные результаты здесь, предоставляя новые капли с некоторым новым кодом. Похоже, что, возможно, Ansible неправильно ожидает, пока сервер получит IP-адрес. Я предпринял несколько попыток исправить это безуспешно, и произвольное время ожидания не масштабируется. Может ли кто-нибудь увидеть, сделал ли я ошибку в коде, которая вызывает такое странное поведение. Прямо сейчас playbook предназначен для того, чтобы брать имена хостов из группы PROVISION, запускать виртуальные машины, отвечать с их IP-адресами, а затем добавлять новые адреса в группу DROPLETS. Обычно только часть IP-адресов попадает в группу DROPLETS.

Вот файл hosts:

[DIGITALOCEAN]
localhost ansible_connection=local

[PROVISION]
TEST1
TEST2
TEST3

[DROPLETS]
TEST1 ansible_ssh_host=x.x.x.x
TEST2 ansible_ssh_host=y.y.y.y
See, this one didn't make it in... Not always this one... and they get unordered sometimes.

Вот инструкция:

---
- hosts: PROVISION
  gather_facts: no

  vars:
    do_token: TOKEN

  tasks:
  - name: Create new droplet
    digital_ocean: >
      state=present
      command=droplet
      name={{ inventory_hostname }}
      unique_name=yes
      size_id=512mb
      region_id=nyc3
      image_id=ubuntu-18-04-x64
      ssh_key_ids=KEY
      api_token={{ do_token }}
      wait=yes
      wait_timeout=500
    register: hostname
    delegate_to: localhost

  - name: Add host to Ansible config
    lineinfile:
      dest: "/etc/ansible/hosts"
      insertafter: '^\[DROPLETS\]'
      state: present
      line: "{{ hostname.droplet.name }} ansible_ssh_host={{ hostname.droplet.ip_address }}"
    delegate_to: localhost