Ansible read after write file operations in 剧本

Ansible read after write file operations in playbooks

我正在使用 Ansible 开发一个项目,这需要我使用一个 playbook 将一些数据写入文件,然后使用另一个 playbook 从同一文件读取数据。

剧本将是这样的 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.txtresult.txt中写入的数据,它们都是不同的。有没有办法实现剧本调用结果之间的一致性????

那两个剧本是分开调用的吗?如果它们包含在主剧本中,那么这将解释它。主剧本中的所有内容都在执行前解析,因此 Ansible 在执行任何剧本之前已经阅读了剧本和 vars_file。您应该能够通过在使用 include_vars 模块时动态包含 vars 文件来解决这个问题。

如果我的假设有误并且您没有将这些剧本包括在父剧本中:您所说的 "different" 到底是什么意思?它是完全不同的数据还是格式问题?我很困惑一般情况下数据在调用之间是如何不一致的。写入和读取文件没有什么神奇之处。这在理论上应该可行。