Задать вопрос
@Nikon_NLG

Что не так с dynamic inventory?

Здравствуйте. Внутри компании используются собственные имена хостов, типа dev-nginx, dev-memcached и т.д.
Создал dynamic inventory, который возвращает примерно такой список:
{
    "_meta": {
        "hostvars": {
            "dev-nginx": {
                "ansible_ssh_host": "ip-192-168-1-1.internal.tld",
                "ec2_private_dns_name": "ip-192-168-1-1.internal.tld"
            },
            "dev-memcached": {
                "ansible_ssh_host": "ip-192-168-1-2.internal.tld",
                "ec2_private_dns_name": "ip-192-168-1-2.internal.tld"
            },
        }
    }
....
    "dev-nginx": [
        "ip-192-168-1-1.internal.tld"
    ],
    "dev-memcached": [
        "ip-192-168-1-2.internal.tld"
    ],


При попытке воспроизвести простейший playbook:
---
- host: dev-nginx
  - name echo memcached
  - shell: echo {{ hostvars[groups['dev-memcached']][0]['ansible_fqdn'] }}


Падает с ошибкой
fatal: [ip-192-168-1-1.internal.tld] => One or more undefined variables: ansible.runner.HostVars object has no element [u'ip-192-168-1-2.internal.tld']


В _meta.hostvars так же добавлял ip-192-168-1-2.internal.tld, но не помогло. Как всё таки заставить playbook заработать? Или я неправильно ip-192-168-1-2.internal.tld добавлял?
  • Вопрос задан
  • 262 просмотра
Подписаться 1 Оценить Комментировать
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы