仅在本地主机上运行一次任务

Smi*_*ily 4 ansible

我有一本将在许多服务器(比如说十台)上运行的剧本。前三个任务将在远程服务器上运行。最后一个合并任务是在 localhost(Ansible 控制器)上完成的。

当我运行这个剧本时,每次都会发生合并(即:十次)。
我只想在所有服务器上完成上述所有任务后只执行一次合并任务。

---
- name: Find the location 
  debug: 
 
- name: Extract details
  debug: 

- name: Create csv file
  debug:

- name: Merge files
  debug:
  delegate_to: localhost 
Run Code Online (Sandbox Code Playgroud)

小智 12

使用以下方法run_once来实现此目的:

- hosts: all

  tasks:
  - name: do this on every host
    debug:

  - name: do this once on localhost
    debug:
    delegate_to: localhost
    run_once: true
Run Code Online (Sandbox Code Playgroud)