У меня проблемы с запуском полной пьесы, потому что некоторые факты, от которых зависят более поздние игры, были изменены в более ранних играх, но ansible не обновляет факты в середине.
Запуск ansible somehost -m setup
, когда вся playbook запускается на новом VPS:
"ansible_selinux": {
"status": "disabled"
},
Моя книга воспроизведения содержит игру, которая устанавливает SELinux и перезагружает сервер (в то время как ожидаемые ожидания_for), а более поздняя задача использует условный when: ansible_selinux.status != 'disabled'
. Однако даже несмотря на то, что SELinux теперь установлен и принудительно (что потребовало перезагрузки), факты для системы по-прежнему показывают, что SELinux отключен, поэтому условный сбой и задача пропускается.
Разумеется, запуск сценария снова работает, потому что факты обновляются и теперь возвращаются:
"ansible_selinux": {
"config_mode": "enforcing",
"mode": "enforcing",
"policyvers": 28,
"status": "enabled",
"type": "targeted"
}
Есть ли способ обновить факты в середине учебника? Может, хакнуть самому set_fact
на ansible_selinux.status после перезагрузки?
Обновление: это было слишком просто, благодаря BruceP я добавил эту задачу для получения обновленных фактов в конце моей игры в SELinux.
- name: SELinux - Force ansible to regather facts
setup: filter='ansible_selinux'