我有一本剧本,它将设置一个 redis 集群和胡桃夹子作为代理。每个组定义了哪些主机扮演哪些角色。我想在运行任务之前添加一个健全性检查,即:
- 是否只有一个代理?(A组1位主持人)
- 是否至少有一个redis节点(B组>=1个主机)
我已经有了一个解决方案,虽然我认为它很丑陋并且认为必须有更好的东西,但我就是找不到。我目前使用 --list-hosts 参数再次运行本地任务调用 playbook 并检查输出。
- name: Make sure there is only one proxy defined
shell: ansible-playbook -i {{ inventory_file }} redis-cluster.yml --tags "redis-proxy" --list-hosts
register: test
failed_when: test.stdout.find("host count=1\n") == -1
changed_when: 1 == 2
这行得通,但是没有这种额外的调用就没有一种简单的方法来检查组中的主机数量吗?