Ubuntu ansible剧本的价值如何;s变量是否用于另一个工资薄?

Ubuntu ansible剧本的价值如何;s变量是否用于另一个工资薄?,ubuntu,ansible,Ubuntu,Ansible,我有两个不同的剧本,分别命名为demo1.yml和demo2.yml 在demo1.yml中有一个play,play的返回值存储在名为results的寄存器变量中。变量结果包含以下内容: "volume_details": { "status": "Ready", "Id": "123456", "name": "test_volume&quo

我有两个不同的剧本,分别命名为demo1.ymldemo2.yml

demo1.yml中有一个play,play的返回值存储在名为results的寄存器变量中。变量结果包含以下内容:

"volume_details": {
    "status": "Ready",
    "Id": "123456",
    "name": "test_volume"
}
我想在另一个剧本的一个剧本中使用
results.volume\u details.Id
results.volume\u details.name

有没有办法使用从上一个剧本到下一个剧本的变量值。我想提前感谢你的努力

您可以创建一个主剧本,并使用

如果这样做,应该可以在第二个剧本中的任务中使用第一个剧本中的注册变量。使用
{{results.volume_details}}

编辑: 要将变量保存到文件中,可以使用copy模块,参数content=

 - copy: 
     content="{{ variable }}" 
     dest=dest_file.yml

要加载此文件,请使用
include\u var
模块

- name: Include var of dest_file.yml into the new_var 
  include_vars:
    file: dest_file.yml
    name: new_var

嗨@yabberth,谢谢你的解决方案,当我说2或3个剧本在执行时,它会起作用,但我有一系列剧本,这个主要剧本会干扰整个序列。
{{results.volume_details}}
是按顺序随机需要的,就像playbook中的requires在第10位一样,然后playbook在顺序文件中的第25位一样。那么,我们是否有其他方法来实现这一点。results变量在创建后会发生变化吗?如果没有,您可以将内容保存到一个临时文件中,并随时在其他剧本中阅读。可能很有趣不,变量不会改变,在创建之后直到删除(这将发生在最后)。保存到临时文件将是一个不错的选择和有趣的。如果你有什么例子的话,我该怎么做,比如把它放进临时文件,然后把它放进即将出版的剧本里,因为我不太清楚。而且我还需要理解ansible doc。
- name: Include var of dest_file.yml into the new_var 
  include_vars:
    file: dest_file.yml
    name: new_var