Я использую Ansible для установки экземпляров EC2 и развертывания приложения. Там есть хосты script, который собирает теги, связанные с серверами и информацией о группах. Я хотел бы запустить эти действия в виде одной пьесы, поэтому
- При необходимости создаются новые экземпляры
- Хосты script загружают инвентарь (включая факты серверов)
- Развертывание playbook works
Однако ресурсы загружаются заранее, поэтому нет данных о серверах/группах, если серверы созданы/обновлены во время игры. Я могу: 1) отдельные игровые приставки для обеспечения и развертывания; 2) использовать трюк add_host для эмуляции динамических ресурсов при обновлении серверов, но есть недостатки в этих подходах.
Могу ли я заставить Ansible перезагрузить инвентарь? Мои тестовые файлы:
hosts
script:
#!/bin/sh
echo `date` >> log.log
echo "{\"standalone\":[\"localhost\"]}"
Пример playbook.yml
:
---
- hosts: all
tasks:
- name: show inventory_hostname
command: echo {{ inventory_hostname }}
Я запустил его ansible-playbook -i hosts playbook.yml -v
и просмотрел два:
$> cat log.log
Thu Mar 12 09:43:16 SAMT 2015
Thu Mar 12 09:43:16 SAMT 2015
но я не нашел команду, чтобы удвоить его.