我有一个创建 ECS 任务定义的简单剧本。例子:
#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
下面是 Playbook 执行文件 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
上述模型工作正常......但我想让一些变量动态使用或预先生成也很好。
就我而言,我的本地目录中有以下文件
#containers_variables
name: USERNAME
value: test-user
name: PASSWORD
value: pass123
name: MYSQL
value: mysqldb.com:3306
然后 ansible 变量文件预计看起来像这样
#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
有什么简单的解决方案吗?我尝试使用 ansible 查找模块,但我因格式错误而失败,它说“type = list”是预期的。对这些家伙有什么想法吗???