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-адресов для каждой среды развертывания.