Я хочу использовать ansible, чтобы узнать, развернут ли стек докеров. В оболочке я бы сделал что-то вроде: docker stack services -q my_stack_name
.
Я мог бы использовать модуль shell
, но тогда мне придется вручную обрабатывать ошибки и идемпотентность.
Есть ли модуль для этого? (Я просмотрел документы docker_swarm_info
, но это не подходит.)
Вы можете предоставить локальный факт, который предоставляет эту информацию.
#!/bin/sh
# /etc/ansible/facts.d/docker_stack
echo "{\"info\": \"`docker stack services -q my_stack_name`\"}"
В своей игровой книге вы можете использовать asible_local. docker_stack.info
переменная.
(Конечно, скорее всего, будет более эффективным сделать это Python скрипт, который возвращает структурированные JSON данные, а не ошибочную, возможно, многострочную строку.)
Обратите внимание, что это не заметит никаких изменений, которые произойдут во время выполнения плейбука.
.