Я хочу использовать 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`\"}"
В своем учебнике вы можете затем использовать ansible_local.docker_stack.info
переменная.
(Конечно, было бы более эффективно сделать это сценарием Python, который возвращает структурированные данные JSON, а не беспорядочную, возможно, многострочную строку.)
Обратите внимание, что это не заметит никаких изменений, происходящих во время запуска playbook.