在ansible任务中包含外部yaml文件

Nat*_*han 3 ansible

我在ansible中创建了一个ecs_taskdefinition,但是我希望在sperate文件中执行任务定义.我能以某种方式做这样的事情:

ecs_taskdefintion:
  containers: {{ load_external_yaml containers.yaml }}
  volumes: {{ load_external_yaml_volumes.yaml }}
Run Code Online (Sandbox Code Playgroud)

所以我想从外部文件加载yaml数据.

Kon*_*rov 11

您可以尝试将文件查找和from_yaml过滤器组合在一起,如下所示:

{{ lookup('file','containers.yaml') | from_yaml }}
Run Code Online (Sandbox Code Playgroud)

请记住,查找是本地的,因此containers.yaml应该位于ansible控制主机上.

  • 如果您在加载的 yaml 文件中使用保管库密码(即 `!vault ...`),则这将不起作用,因为 `from_yaml` 会抱怨它没有相应的构造函数。 (2认同)