Если вы вдруг столкнулись с этой ошибкой, произнесите в рабочей среде и ничего не изменилось, попробуйте следующие 4 элемента в следующем порядке, чтобы узнать, исправляется ли это.
С помощью Ansible 2.0+ вы можете обновить среднюю игру вашего инвентаря, выполнив задачу :
- meta: refresh_inventory
Взгляните на add_host .
Он добавляет хост (и, альтернативно, группу) в инвентарь памяти in-memorybook in-memory
add_host
- это вариант, который мне не нравится (подробнее см. Комментарии выше)
– Vladimir Chervanev
9 October 2015 в 11:36
Ansible в настоящее время не поддерживает это. Если вы посмотрите на исходный код команд ansible
или ansible-playbook
, вы увидите, что инвентарь загружен первым, а затем объект инвентаризации передается команде ansible, которая запускает задание или playbook. Перемещение обработки инвентаря, чтобы оно происходило внутри обработчиков задач / игровых автоматов, вероятно, было бы довольно серьезным делом по ряду причин.
Лучше всего делать то, что нужно сделать, это просто разбить свою игру на две и оберните их вызовы в сценарии оболочки, который вам нужно только один раз вызвать.
Я обнаружил, что meta: refresh_inventory
недостаточно. Я должен был сначала добавить явный вызов ec2.py --refresh-cache
.
- name: refresh inventory hosts: localhost connection: local gather_facts: False tasks: - name: Refresh EC2 cache command: /etc/ansible/ec2.py --refresh-cache - name: Refresh in-memory EC2 cache meta: refresh_inventory
inventory/rax.py --list --refresh-cache
– Tim N
22 September 2016 в 14:48
{{inventory_dir}}/ec2.py --refresh-cache
– apines
18 May 2017 в 14:56
post_task
в свою пьесу, а затем продолжил другие пьесы. Супер полезно. Это не так много документации, но если вы проверите репозиторий github для него, вы увидите его там. Другой способ добиться этого - запустить файл ec2.py с помощью--refresh-cache
. – Ryan-Neal Mes 29 January 2016 в 13:59./ec2.py --refresh-cache
, которая заставляет обновлять кеш. Я обнаружил, что мне пришлось снизить (или, более конкретно, полностью отключить) кэширование ресурсов. Вы делаете это, установивcache_max_age = 0
в ec2.ini. – Liam 26 February 2016 в 08:49meta: refresh_inventory
, не работает для инвентаря vCenter. Любая идея о том, как обновить динамическую инвентаризацию VMware? – Chethan S. 4 September 2016 в 14:23