Используйте ansible для вставки в файл et c hosts - PullRequest
0 голосов
/ 13 июля 2020

Я хочу вставить следующую запись в файл / etc / hosts каким-то образом, используя Ansible.

10.33.5.44 ip-10-33-5-44

Здесь схема такова, что ip должен иметь псевдоним соответствующий IP, с префиксом ip- и где точка . будет заменена на da sh -.

Но чтобы получить этот IP, я могу думать только о выполнении команды host по DNS-имени, например,

host euwest2-test-box.company.com
> euwest2-test-box.company.com has address 10.33.5.44

Может ли кто-нибудь подсказать, как заставить это работать? Возможно ли это?

1 Ответ

0 голосов
/ 13 июля 2020

Для этого можно использовать поиск dig. Затем добавьте строки в файл хостов с lineinefile.

Обратите внимание , что модулю dig требуется Python библиотека dnspython для работы . Так что вы можете также захотеть установить его с Ansible.

Итак, учитывая playbook:

- hosts: all
  gather_facts: no
  
  tasks:
    - package:
        name: py-dnspython
        state: present
    - lineinfile:
        path: /etc/hosts
        line: "{{ item }} ip-{{ item | replace('.', '-') }}"
      loop: "{{ lookup('dig', 'stackoverflow.com.').split(',') }}"

Это дает резюме:

PLAY [all] *********************************************************************************************

TASK [package] *****************************************************************************************
changed: [localhost]

TASK [lineinfile] **************************************************************************************
changed: [localhost] => (item=151.101.1.69)
changed: [localhost] => (item=151.101.65.69)
changed: [localhost] => (item=151.101.129.69)
changed: [localhost] => (item=151.101.193.69)

PLAY RECAP *********************************************************************************************
localhost                  : ok=2    changed=2    unreachable=0    failed=0    skipped=0    rescued=0    ignored=0

И заполните файл hosts соответственно:

127.0.0.1   localhost
::1 localhost ip6-localhost ip6-loopback
fe00::0 ip6-localnet
ff00::0 ip6-mcastprefix
ff02::1 ip6-allnodes
ff02::2 ip6-allrouters
172.17.0.3  21eef8264e0c
151.101.1.69 ip-151-101-1-69
151.101.65.69 ip-151-101-65-69
151.101.129.69 ip-151-101-129-69
151.101.193.69 ip-151-101-193-69
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...