我想使用 ansible 来了解 docker stack 是否已部署。在 shell 中,我会执行以下操作:docker stack services -q my_stack_name
。
我可以使用该shell
模块,但是我必须手动处理错误和幂等性。
是否有这个模块?(我查看了文档,docker_swarm_info
但不合适。)
答案1
您可以提供一个当地事实提供该信息的。
#!/bin/sh
# /etc/ansible/facts.d/docker_stack
echo "{\"info\": \"`docker stack services -q my_stack_name`\"}"
然后,您可以在剧本中使用该ansible_local.docker_stack.info
变量。
(当然,将其制作成返回结构化 JSON 数据的 Python 脚本可能会比返回丑陋的、可能是多行的字符串更有效。)
请注意,这不会注意到剧本运行期间发生的任何变化。