I have a simple playbook which creates ECS Taskdefinition. example:
#variable file, vars.yml
---
containers:
- name: nash-test
essential: true
image: nash-test
memory: 256
portMappings:
- containerPort: 8080
hostPort: 80
protocol: tcp
environment:
- name: USERNAME
value: test-user
name: PASSWORD
value: pass123
name: MYSQL
value: mysqldb.com:3306
Below is the Playbook execution file main.yml
---
- hosts: localhost
connection: local
gather_facts: true
vars_files:
- ["vars.yml"]
tasks:
- name: Create task definition for ECS Cluster
ecs_taskdefinition:
state: present
family: avinash-environment
containers: "{{containers}}"
region: us-east-1
register: ecs_taskdef
This above model works fine....but i want to make some variables be used dynamically or pre-generated is also fine.
In my case, i have below file in my local directory
#containers_variables
name: USERNAME
value: test-user
name: PASSWORD
value: pass123
name: MYSQL
value: mysqldb.com:3306
then ansible variable file expected to look like this
#variable file, vars.yml
---
containers:
- name: nash-test
essential: true
image: nash-test
memory: 256
portMappings:
- containerPort: 8080
hostPort: 80
protocol: tcp
environment:
- #the values from container_variables have to be populated or dynamically read for this list purpose
Is there any simplistic solution to this ?? i tried using ansible lookup module but im failing with formatting errors, which says "type=list" is being expected. Any ideas on these guys ???
it was a simple fix.... ;) i just changed the below and it worked, considering the source is in json format.