Ansible使得确保每个主机上都运行进程变得非常容易.
我可以这样做:
--- - hosts: app_cluster tasks: - name: Look for the "foo" process shell: ps -ef | grep foo | grep -v grep register: process_list changed_when: false - name: Start "foo" if needed shell: nohup /bin/foo & when: "process_list.stdout.find('foo') == -1"
但是,我需要在整个群集中只有一个特定进程的实例. IE浏览器.它可以在任何主机上运行,只要它在某个地方运行,只要集群中只有一个这样的进程.
可以在ansible playbook中有一个方便的方法吗?
您可以使用run_once参数,如
http://docs.ansible.com/ansible/playbooks_delegation.html#run-once中所述,因此任务将仅在批处理的第一个主机中运行.考虑到你不能指定订单,但它以某种方式“可预测”(更多信息在
https://github.com/ansible/ansible/issues/10964)
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。