У меня есть playbook, где я настраиваю веб-серверы. И в этой книге я хочу знать IP-адрес локальной сети сервера db.
Все эти серверы есть у меня в инвентаре.
Как я могу это сделать?
Я пробовал использовать hostvars, но у них есть только данные о локальном сервере.
Можно ссылаться на переменные на удаленных серверах с помощью hostvars. Например, предположим, что вы запускаете игру на сервере в своей группе веб-серверов. Вы можете ссылаться на переменные на вашем db-сервере в playbook следующим образом:
{{ hostvars['db-server.example.com']['ansible_default_ipv4']['address'] }}
Имейте в виду, что для того, чтобы это сработало, вы должны уже поговорить с db-server.example.com в текущей игре или в другой игре, расположенной выше в книге. Ansible 1.8 (все еще находящийся в разработке на момент написания) исправит это путем реализации необязательного кеширование фактов, что позволит вам сохранять факты между запусками playbook.