2015-03-16 2 views
0

Я работаю над проектом с использованием Ansible, который требует от меня записать некоторые данные в файл с помощью одной пьесы, а затем прочитать данные из того же файла с помощью другой пьесы.Последовательное чтение после операций с файлами в книгах с файлами

пьес будет что-то вроде этого test1.yml

--- 
- hosts: localhost 
    connection: local 
    gather_facts: no 
    tasks: 
    - name: Writing data to test file 
    local_action: shell echo "data:" {{ 100 |random(step=10) }} > test.txt 
- include: test2.yml 

и должны читать его с помощью test2.yml

--- 
- hosts: localhost 
    connection: local 
    gather_facts: no 
    vars_files: 
    - test.txt 
    tasks: 
    - name: Writing data to test file 
    local_action: shell echo "{{ data }}" > result.txt 

Однако

Второй сборник пьес не способный читать данные latest, публикуемые первой книжкой.

Если я просматриваю данные, записанные в test.txt и result.txt, то они оба разные. Есть ли способ достичь согласованности между результатами вызовов в плей-листах ????

ответ

1

Эти две пьесы называются отдельно? Если они включены в мастер-книгу, это объясняет это. Все, что включено в мастер-книгу, разрешаются до выполнения, поэтому Ansible уже прочитал бы как плейеры, так и vars_file, прежде чем кто-либо из них будет выполнен. Вы должны решить эту проблему динамически, включая файл vars во время игры с модулем include_vars.

Если я ошибался в своих предположениях, и вы не включаете в них плей-книжки в родительской тетради: что именно вы подразумеваете под «разными»? Это совершенно разные данные или проблема с форматированием? Я озадачен тем, как данные вообще не могут быть согласованы между вызовами. В письме и чтении из файла нет магии. Это должно теоретически работать.

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