我有一本可在许多服务器上运行的剧本(例如10本)。前三个任务将在远程服务器上运行。合并的最后一个任务是在localhost(可运行的服务器)上完成的 当我运行此剧本时,每次都会发生10次合并。我希望仅在所有服务器上完成上述所有任务后,一次执行合并任务。请告知。
---
- name: Find the location
....
- name: Extract details
....
- name: Create csv file
....
- name: Merge files
....
delegate_to: localhost
答案 0 :(得分:0)
创建一个在远程服务器上运行的包含“查找”,“提取”,“创建”的块, 另一个包含“合并”的块仅在本地主机上运行
首选方法是为第一个块创建一个角色,为第二个块创建另一个角色并在剧本中使用:
- hosts: my_servers
roles:
- find_extract_create
- hosts: local_node
roles:
- merge
答案 1 :(得分:0)
- hosts: a.whole.bunch
tasks:
- name: do this on every host
command: hostname
- name: do this once on localhost
command: hostname
delegate_to: localhost
run_once: true