Ansible adhoc命令按顺序排列

Cha*_*yak 4 ansible ansible-2.x ansible-ad-hoc

我想在EC2实例列表上运行ansible adhoc命令.我希望ansible按顺序运行它,但是ansible随机运行它们.例如:

13:42:21 @cnayak ansible :? ansible aws -a "hostname"
ec2 | SUCCESS | rc=0 >>
ip-172-31-36-255

ec3 | SUCCESS | rc=0 >>
ip-172-31-45-174

13:42:26 @cnayak ansible :? ansible aws -a "hostname"
ec3 | SUCCESS | rc=0 >>
ip-172-31-45-174

ec2 | SUCCESS | rc=0 >>
ip-172-31-36-255
Run Code Online (Sandbox Code Playgroud)

有什么方法让它们按顺序运行?

bja*_*ski 10

默认情况下,ansible并行运行任务.如果您希望它们以串行方式执行,那么您可以使用"--forks"选项限制同时运行的工作人员数量.

在ansible调用中添加"--forks 1"应该在所有主机上按顺序运行命令(按库存定义的顺序).


Arb*_*zar 5

您可以在剧本中使用forkswith with adhoc命令serial: 1

在即席命令上:

ansible aws -a "hostname" --forks=1
Run Code Online (Sandbox Code Playgroud)

剧本内部:

- hosts: aws
  become: yes
  gather_facts: yes
  serial: 1
  tasks:
    - YOUR TASKS HERE
Run Code Online (Sandbox Code Playgroud)