具有连续性的Ansible剧本> 1和run_once

时间:2016-06-02 04:02:00

标签: ansible

我正在编写简单的两个任务ansible playbook来从Internet下载更新文件并将其推送到托管服务器,类似于:

- hosts: all
  serial: 10

  tasks:
  - name: Download update file
    get_url: url=http://f.q.d.n/path/to/file dest=/tmp/
    connection: local
    run_once: true

  - name: Copy update file to all servers
    copy: src=/tmp/file dest=/path/to/file mode="..."

第一个任务应该只在localhost上运行一次,其余的在10个串行批次中运行。 但是根据ansible文档,任务标记为" run_once"将在每个序列批次中的一个主机上运行。

我不能使用文档中提到的解决方法,在条件中使用inventory_hostname,因为实际目标主机可能不同,例如,受限于 - 限制等。
设计这个剧本的正确方法是什么? pre_task在这里有用吗?

1 个答案:

答案 0 :(得分:1)

- hosts: localhost

  tasks:
  - name: Download update file
    get_url: url=http://f.q.d.n/path/to/file dest=/tmp/


- hosts: all
  serial: 10

  tasks:
  - name: Copy update file to all servers
    copy: src=/tmp/file dest=/path/to/file mode="..."