【问题标题】:Output lookup variables to a json file with ansible使用 ansible 将查找变量输出到 json 文件
【发布时间】:2019-01-10 14:59:29
【问题描述】:

我需要从 ansible 查找中输出多个变量(键值对)并将它们保存到 json 文件中。我的 json 文件应该是这样的:

{
  "name": "name1",
  "password": "pass1",
  "creationDate": 2019-01-01 00:44:35
}

我的 ansible playbook 中有以下代码:

- 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
}

查找中的名称和密码值缺失。

【问题讨论】:

    标签: json ansible lookup


    【解决方案1】:

    你的剧本中有一个错字,我完全不知道你的剧本是如何工作的,因为 ansible 2.7 和 pyyaml 都 :fu: 当给定语法时:

    - hosts: localhost
      vars:
        my_variables:
          "name": "{{ lookup('env', 'name') }}", # <-- should not end with a comma
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-07-21
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多