Say Я передаю имена хостов к PlayBook анзибля так:Как получить IP-адрес хоста при передаче в качестве экстра-варов в Ansible?
ansible-playbook ansible/db-playbook.yml --extra-vars "master=mydb-master, slave=mydb-slave"
В сборнике пьес я хочу получить доступ к фактическому IP-адресу mydb-slave
хоста:
- name: Copy ssh key to Slave
command: ... "{{ mydb-slave }}"
В этом случае выходных это строковый литерал mydb-slave
, но мне нужен полный адрес ip
.
Можете ли вы предоставить еще какой-нибудь контекст? Все, что вы делаете, чтобы преобразовать строковый литерал (предположительно имя хоста) в IP, будет либо поиском DNS, либо поиском ваших локальных/etc/hosts или чего-то подобного. Поскольку имя вашей задачи помечено как «копировать ssh-ключ в slave», почему бы просто не закодировать незаменимую копию/rsync/whatever и не разрешить IP-адрес? –
Что вы подразумеваете под "полным IP-адресом"? Какой объект должен разрешить имя? – techraf
Для контекста в моем файле 'hosts' у меня есть' [mydb-slave] 123.456.78.91'. Я хочу передать var 'mydb-slave', используя аргумент' --extra-vars', но я не хочу жестко кодировать хост в playbook. В принципе, я просто хочу получить ip '123.456.78.91' из' mydb-slave' var в playbook. –