我需要从ansible查找中输出多个变量(键-值对)并将它们保存到json文件中。我的json文件应如下所示:
{
"name": "name1",
"password": "pass1",
"creationDate": 2019-01-01 00:44:35
}
我的ansible剧本中包含以下代码:
- hosts: localhost
vars:
my_variables:
"name": "{{ lookup('env', 'name') }}",
"password": "{{ lookup('env', 'password') }}",
"creationDate": "{{ '%Y-%m-%d %H:%M:%S'| strftime(ansible_date_time.epoch) }}"
tasks:
- name: Create /tmp/{{ lookup('env', 'name') }}.json
file:
name: '/tmp/{{ lookup('env', 'name') }}.json'
state: touch
- name: Write my_variables to /tmp/{{ lookup('env', 'name') }}.json
copy:
content: "{{ my_varibles | to_nice_json }}"
dest: "/tmp/{{ lookup('env', 'name') }}.json"
我能够创建/tmp/name1.json文件。但是,我的name1.json文件看起来像这样:
{
"name": "",
"password": "",
"creationDate": 2019-01-01 00:44:35
}
查找的名称和密码值丢失。
答案 0 :(得分:0)
您的剧本中有错字,而我绝对不知道您的剧本是如何工作的,因为当使用该语法时,ansible 2.7和pyyaml都:fu:
- hosts: localhost
vars:
my_variables:
"name": "{{ lookup('env', 'name') }}", # <-- should not end with a comma