ansible - как передать локальный DNS-сервер при запуске ansible-playbook для разрешения имени хоста

Я использую ansible (ansible 1.9.0.1).

Я запускаю ansible-playbook для выполнения некоторых операций на целевом / удаленном компьютере, используя его имя хоста.

В моем файле инвентаризации есть запись для имени хоста, т.е. appserver01.newdomainname.com

Когда я запускаю ansible-playbook просто для простоты (пример hello world), он не разрешает имя хоста. Если в файле инвентаризации у меня есть xxxx IP, то это работает!!!!

Таким образом, кажется, что сервер имен или поиск в /etc/resolv.conf моей исходной машины не разрешает удаленное имя хоста, используя его полное доменное имя, т.е. appserver01.newdomainname.com

Можно ли как-нибудь вызвать ansible-playbook и передать новый / локальный DNS-сервер, чтобы ansible мог сначала разрешить имя хоста (в файле инвентаризации) из этого DNS (вместо чтения / разрешения его из /etc/resolv.conf)).

PS: я не могу добавить этот новый / локальный DNS-сервер имен xx.xx.yy.zz в /etc/resolv.conf.

1 ответ

Один из способов обойти это - использовать атрибут ansible_ssh_host в вашем файле инвентаря. Это не то же самое, что подключение к вашему локальному DNS, но это все равно, что транспортировать записи DNS с вашим инвентарем. Таким образом, вы все равно можете ссылаться на свои серверы по их именам хостов, и вам не нужно ничего помещать в файл хостов ваших серверов. Так это будет выглядеть так:

[myservers] appserver01.newdomainname.com ansible_ssh_host=x.x.x.x

Вы даже можете переместить эти сопоставления в файл host_vars и сохранить разные списки IP-адресов для каждой среды развертывания.

Другие вопросы по тегам