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

Как получить информацию об удаленных серверах на ansible

У меня есть playbook, где я настраиваю веб-серверы. И в этой книге я хочу знать IP-адрес локальной сети сервера db.

Все эти серверы есть у меня в инвентаре.

Как я могу это сделать?

Я пробовал использовать hostvars, но у них есть только данные о локальном сервере.

Hostvars и удаленные переменные

Можно ссылаться на переменные на удаленных серверах с помощью hostvars. Например, предположим, что вы запускаете игру на сервере в своей группе веб-серверов. Вы можете ссылаться на переменные на вашем db-сервере в playbook следующим образом:

{{ hostvars['db-server.example.com']['ansible_default_ipv4']['address'] }}

Имейте в виду, что для того, чтобы это сработало, вы должны уже поговорить с db-server.example.com в текущей игре или в другой игре, расположенной выше в книге. Ansible 1.8 (все еще находящийся в разработке на момент написания) исправит это путем реализации необязательного кеширование фактов, что позволит вам сохранять факты между запусками playbook.