按升序从 hosts-inventory 中获取主机 - Ansible

Rom*_*lus 3 ansible ansible-playbook ansible-inventory

我在主机清单中有 100 台主机。主机清单如下所示:

[workstations-new]
de001pc[100:201] ansible_connection=ssh ansible_ssh_user=root
Run Code Online (Sandbox Code Playgroud)

当我运行 ansible-playbook 命令时:

ansible-playbook playbooks/linux/uptime.yml -i hosts-inventory --extra-vars "hosts=workstations-new" -k
Run Code Online (Sandbox Code Playgroud)

正在所有主机上运行它,但它不会按升序获取主机。它以非顺序获取主机(103、14、102、100,...)

例子:

TASK: [uptime machine] ******************************************************** 
changed: [de001pc103]
changed: [de001pc104]
changed: [de001pc102]
changed: [de001pc100]
changed: [de001pc101]
changed: [de001pc107]
changed: [de001pc106]
changed: [de001pc108]
changed: [de001pc109]
changed: [de001pc110]
changed: [de001pc116]
changed: [de001pc112]
................................................
Run Code Online (Sandbox Code Playgroud)

如何运行命令以升序获取主机?

Mxx*_*Mxx 5

默认情况下,Ansible 将尝试并行管理一个 play 中引用的许多机器。有些机器的回复速度可能比其他机器稍快。这就是为什么你会在 101 之前看到 103。

如果您希望您的托管机器严格按顺序处理,您应该使用serial: 1参数。但是,请记住,您将显着降低剧本执行速度。如果我的数学计算正确,在 100 台机器上,速度会慢 20 倍。