【发布时间】:2023-02-04 06:22:10
【问题描述】:
我正在尝试读取一个 csv 文件。但是,在打印期间,它不是逐行读取,而是遍历一些内部循环并复制结果。
- name: read csv
read_csv:
path: /u00/app/monitor/newrelic_test.csv
key: Application
register: newrelic
- name: Print newrelic var
ansible.builtin.debug:
var: newrelic.list
输出如下所示:
[testserver1] =>
"newrelic.list":
"Application": "Microsoft",
"env": "Test",
"Datacenter": "DC1",
"Hostname": "testserver1",
},
"Application": "Apple",
"env": "Test",
"Datacenter": "DC2",
"Hostname": "testserver2",
}
[testserver2] => {
"newrelic.list":
{
"Application": "Microsoft",
"env": "Test",
"Datacenter": "DC1",
"Hostname": "testserver1",
},
"Application": "Apple",
"env": "Test",
"Datacenter": "DC2",
"Hostname": "testserver2",
}
]
.csv 文件:
Application,env,Datacenter,Hostname
Microsoft,Test,DC1,testserver1
Apple,Test,DC2,testserver2
预期结果应为:
[testserver1] =>
"newrelic.list":
"Application": "Microsoft",
"env": "Test",
"Datacenter": "DC1",
"Hostname": "testserver1",
}
[testserver2] => {
"newrelic.list":
{
"Application": "Apple",
"env": "Test",
"Datacenter": "DC2",
"Hostname": "testserver2",
}
]
编辑:-下一个块
- name: copy template
template:
src: /u00/ansible/Playbooks/files/infra-config.yml_template
dest: /u00/app/monitor/infra-config.yml
loop: "{{ newrelic.list }}"
loop_control:
loop_var: item
问题:如果未使用newrelic.list,则会出现如下错误:
[testserver1]: FAILED! => {"msg": "Invalid data passed to 'loop', it requires a list, got this instead: {'dict':
我尝试添加 dict2items 但随后模板无法读取项目。
【问题讨论】:
-
如果您可以将问题中的 Ansible 输出替换为不包含所有终端格式代码的输出,将会有所帮助。
-
larsks - 我已经删除了来自 Jenkins 的终端格式。
标签: ansible