Как добавить запись A только в DigitalOcean DNS, используя Ansible? - PullRequest
0 голосов
/ 27 марта 2020

Как добавить запись A в существующий DNS-домен DigitalOcean, используя Ansible?

Я попробовал следующее:

---
- hosts: localhost
  connection: local
  gather_facts: no

  tasks:
    - digital_ocean_domain:
        state: present
        name: my.example.com

    - digital_ocean_domain:
        state: present
        name: test1.my.example.com
        ip: 127.0.0.1

Но вторая задача добавляет полный домен test1.my.example.com (с записями NS) вдоль записи A для test1.my.example.com.

Я хотел добавить только запись A для test1.my.example.com в домен, созданный в первом задании.

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

1 Ответ

0 голосов
/ 29 марта 2020

Не существует такого ansible модуля (хотя был , который пробирался через PR, через три репо переименовывает , но он был закрыт командой ansible), но есть открытый выпуск , который вы можете отслеживать.

Тем временем вы можете выполнить sh через API записи домена , который можно упаковать в "playbook local" модуль, если вас так беспокоит yaml.

- uri:
    url: "https://api.digitalocean.com/v2/domains/{{ dns_domain }}/records"
    headers:
      accept: application/json
      authorization: Bearer {{ oauth2_token }}
    return_content: yes
  register: domain_records_resp

- when: domain_host not in (domain_records_resp.domain_records | map(attribute="name") | list)
  uri:
    method: POST
    url: "https://api.digitalocean.com/v2/domains/{{ dns_domain }}/records"
    headers:
      authorization: Bearer {{ oauth2_token }}
    body: '{{ create_record | to_json }}'
    body_format: json
    return_content: yes
  vars:
    create_record:
        data: 127.0.0.1
        flags: null
        name: '{{ domain_host }}'
        port: null
        priority: null
        tag: null
        ttl: 1800
        type: A
        weight: null
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...