运行攻略时,Ansible随机将节点设置为第一、第二和第三。
TASK [setup] ********
ok: [node-p02]
ok: [node-p03]
ok: [node-p01]我如何配置Ansible以确保它以排序的顺序与主机一起执行?示例:
TASK [setup] ********
ok: [node-p01]
ok: [node-p02]
ok: [node-p03]Serial: 1不是一个选项,因为它减慢了游戏的速度,而我的攻略意味着在一个游戏中有3个节点。
发布于 2018-09-03 16:49:48
适用于Ansible 2.4及更高版本:
这现在是默认行为,ansible将按照inventory文件中提到的顺序播放主机。Ansible还提供了一些内置的方法,你可以用order来控制它:
- hosts: all
order: sorted
gather_facts: False
tasks:
- debug:
var: inventory_hostnameorder的可能值为:
时,主机随机排序
来源:https://docs.ansible.com/ansible/latest/user_guide/playbooks_intro.html#hosts-and-users
发布于 2017-03-01 17:27:13
编辑:最好的解决方案是在dubes的answer中,但这个解决方案给了你更多的自由,以防特定的操作必须应用于主机列表,或者你不能使用Ansible 2.4。
从Ansible 2.2开始,您可以使用ansible_play_hosts或ansible_play_batch并对其执行sort操作:
---
- hosts: "{{ ansible_play_hosts | sort() }}"
ansible_play_hosts是当前实演中仍处于活动状态的所有主机的完整列表。
ansible_play_batch提供了一组主机名列表,这些主机名列在该游戏的当前“批处理”范围内。批量大小由serial定义,未设置时等同于整个播放(与ansible_play_hosts相同)。
发布于 2017-02-28 23:21:28
我认为另一种可能性是使用hosts中的确切主机名作为列表,而不是组。然而,其他答案更符合Ansible方法。
---
- hosts:
- node-p01
- node-p02
- node-p03https://stackoverflow.com/questions/42506865
复制相似问题