Nathan
Nathan

Reputation: 7709

Include external yaml file in ansible task

I am creating an ecs_taskdefinition in ansible, but I would like the task-defintion in a sperate file. Can I somehow do something like this:

ecs_taskdefintion:
  containers: {{ load_external_yaml containers.yaml }}
  volumes: {{ load_external_yaml_volumes.yaml }}

So I want to load the yaml data from external files.

Upvotes: 8

Views: 15678

Answers (2)

Thomas Decaux
Thomas Decaux

Reputation: 22681

Since your file is YAML, you may use include_vars from https://docs.ansible.com/ansible/latest/collections/ansible/builtin/include_vars_module.html :

- name: Setup vars
  tags: ["always"]
  include_vars:
    file: "./vars/tintin.yaml"
    name: tintin

Use tintin as a normal var everywhere!

Upvotes: 5

Konstantin Suvorov
Konstantin Suvorov

Reputation: 68289

You may try to combine file lookup and from_yaml filter like this:

{{ lookup('file','containers.yaml') | from_yaml }}

Remember that lookups are local, so containers.yaml should be on ansible control host.

Upvotes: 22

Related Questions