Intereting Posts
Как запустить новый дистрибутив Linux? ALSA: Zoom H4n не работает в качестве источника звука USB на ПК Библиотеки и linux-ядро 2.6 Создание deb: Как поместить архивные файлы в отдельный пакет .deb? Метод http неожиданно умер! Проблема установки возвышенного текста 3.0 Почему меньше хранит свою конфигурацию в двоичном файле? Как исправить «Файл» * .service «настраивает межсетевой экран IP (IPAddressDeny = любой), но локальная система не поддерживает межсетевой экран на основе BPF / cgroup»? Безопасное извлечение usb из устройства linux Я хочу увеличить размер кнопки закрытия в openbox Обновить поврежденный GRUB; Не удается загрузить Узнайте, какое конкретное устройство является запоминающим устройством USB скопировать заголовок в каждую ячейку своей строки Apt-get, файл sudoers libvirt и virt-manager – Невозможно завершить установку: «внутренняя ошибка: неподдерживаемая входная шина usb» Boot-Repair висит, возможно альтернатива?

В Ansible динамической инвентаризации JSON я могу «рендерить» hostvars на основе имени хоста?

Документация Ansible дает пример здесь о том, как вернуть инвентарь в формате JSON:

{ "databases" : { "hosts" : [ "host1.example.com", "host2.example.com" ], "vars" : { "a" : true } }, "webservers" : [ "host2.example.com", "host3.example.com" ], "atlanta" : { "hosts" : [ "host1.example.com", "host4.example.com", "host5.example.com" ], "vars" : { "b" : false }, "children": [ "marietta", "5points" ] }, "marietta" : [ "host6.example.com" ], "5points" : [ "host7.example.com" ] } 

и добавив ниже, что хосты для одного хоста могут быть установлены с использованием:

 { # results of inventory script as above go here # ... "_meta" : { "hostvars" : { "moocow.example.com" : { "asdf" : 1234 }, "llama.example.com" : { "asdf" : 5678 }, } } } 

Теперь я использую Ansible 1.9.1 и хочу использовать хосты или отдельные хосты. Однако некоторые из хостваров следуют шаблону. Наиболее заметно ansible_ssh_host будет следовать шаблону *.mydomain.tld , там подстановочный знак заменяется коротким именем хоста.

Есть ли способ сократить JSON, указав шаблон, который будет отображаться как шаблон Jinja2, например? Регулировка части приведенного выше примера:

 { "atlanta" : { "hosts" : [ "host1", "host4", "host5" ], "vars" : { "ansible_ssh_host" : "{{hostname}}.example.com", "b" : false } } 

Что-нибудь подобное в формате Ansible ожидает? Я не нашел документацию, упоминающую об этом.

В этом случае вы можете использовать магические переменные inventory_hostname .

 { "atlanta" : { "hosts" : [ "host1", "host4", "host5" ], "vars" : { "ansible_ssh_host" : "{{inventory_hostname}}.example.com", "b" : false } }