Ubuntu ansible剧本的价值如何;s变量是否用于另一个工资薄?
我有两个不同的剧本,分别命名为demo1.yml和demo2.yml 在demo1.yml中有一个play,play的返回值存储在名为results的寄存器变量中。变量结果包含以下内容: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
"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