2016-06-02 3 views
0

Я пишу простой две задачи анзибль пьес для загрузки файла обновления из Интернета и толкать его на управляемых серверах, что-то похожее на:анзибль Playbook с серийным> 1 и run_once

- 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="..." 

Первая задача должна работать только один раз на локальном хосте, остальные - 10 серийных партий. Однако в соответствии с доступной документацией задачи, отмеченные как «run_once», будут выполняться на одном хосте в каждой последовательной серии.

Я не могу использовать обходное решение, упомянутое в документации, используя resource_hostname в условном выражении, поскольку фактические целевые хосты могут быть разными, например. ограничено с -limit и т. д.
Что было бы правильным способом создания этой пьесы? Здесь используется pre_task?

ответ

0
- 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="..." 
+0

Спасибо! Это работает так же, как и предполагалось, я не знал, что ansible по-прежнему будет соответствовать задачам localhost, даже если playbook выполняется с -limit

Смежные вопросы