在 ansible playbook 中为一项任务设置叉子

Tod*_*man 7 ansible

我的剧本中有一项任务,我只想一次在一台主机上运行。其余的任务我想兑现 --forks 选项。这可能吗?

Pet*_*026 5

是的,检查滚动更新

具体来说,您可以为播放添加“serial: x”参数,其中 x 是分叉数

  • 这不完全是我想要的。我想限制仅 1 个任务的并行执行数量,而不是整个剧本。 (3认同)

max*_*zig 5

是的,这可以通过使用throttle关键字来实现:

限制任务、块和剧本级别上运行的并发任务数量。这与分叉和串行设置无关,但设置不能高于这些限制。例如,如果forks设置为10,throttle设置为15,则最多并行操作10台主机。

例子:

---

- hosts: all
  tasks:
      - name: wait in parallel
        command: sleep 20
      - name: wait  in serial
        command: sleep 30
        throttle: 1
Run Code Online (Sandbox Code Playgroud)

自 2.9 版本起,throttle关键字在 Ansible 中可用。