【问题标题】:How to make ansible loop over hosts sequentially如何按顺序在主机上进行ansible循环
【发布时间】:2019-06-25 11:23:15
【问题描述】:

我有一组任务,我想在一组主机上按顺序执行。

示例如下。

hosts: all
tasks:
- name: do some work
  include_tasks: tasks_here.yml
  loop: "{{ vars[play_hosts] }}"

ansible-playbook main.yml --limit myhosts

我希望这组任务将在第一台主机上执行,然后在第二台主机上等......但实际上这些任务正在“限制”中的所有主机上同时执行。 我怀疑它正在发生,因为我使用了限制,但在我的情况下我需要它。

那我该怎么办?

【问题讨论】:

    标签: ansible ansible-2.x ansible-inventory


    【解决方案1】:

    默认情况下,指定here:

    plays 以线性策略运行,所有主机将在任何主机开始下一个任务之前运行每个任务。

    您可以使用serial: 1策略在每个主机上按顺序执行任务。

    例如:

    - hosts: all
      serial: 1
      tasks:
        ...
    

    【讨论】:

    • 谢谢。因此,如果我使用 'serial:1' 执行策略,我根本不需要循环。我说的对吗?
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2015-02-03
    • 2022-01-11
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多