Ansible - 根据字典键设置文件内容

时间:2015-10-28 13:53:49

标签: jinja2 ansible

目标:根据我通过FACT检索的字典值设置文件的内容。

换句话说,我的字典有:

clients:
  client0:
    bar: my stuff

我从FACT学习客户端名称,我想使用客户端名称索引到字典和retrive栏并设置为文件的内容。

- name: Copy Client File Content
  copy:
    dest="/opt/myfile"
    content=clients[{{client_name}}].bar
    owner=root
    group=root
    mode=0600
    no_log: true

文件的预期内容是:我的东西

1 个答案:

答案 0 :(得分:0)

这对我有用:

- hosts: localhost
  vars:
    clients:
      client0:
        bar: my stuff
    client_name: client0
  tasks:
    - name: copy client file content
      copy:
        dest: ./myfile.txt
        content: "{{clients[client_name].bar}}"

您的问题是您似乎试图在Jinja2变量替换之外执行变量解引用;将所有内容放在{{...}}内是使这项工作成功的原因。