如何通过Ansible插入远程机器上文件中的变量?

时间:2017-03-31 22:10:56

标签: ansible

我在远程计算机上有一个配置文件,格式为:

key1={{key1}}
key2={{key2}}

我想使用Ansible使用group_vars中的值填充键的值。

如何读取此文件,插入内容并将文件写回?

我不想使用模板,因为不同的配置文件会有不同的密钥,而我对模板的理解是我必须事先知道我需要哪些密钥。

1 个答案:

答案 0 :(得分:1)

你在这里(但我不认为你应该如何管理系统):

---
- hosts: target
  vars:
    key1: "value1"
    key2: "value2"
  tasks:
    - command: cat /path/to/file
      register: cat_file
    - copy:
        content: "{{ cat_file.stdout }}\n"
        dest: /path/to/file

尾部换行符存在问题,而stdoutcat未反映此问题。我认为应该加上它。

可替换地:

---
- hosts: target
  vars:
    key1: "value1"
    key2: "value2"
  tasks:
    - fetch:
        src: /path/to/file
        dest: ./tmp/file
    - template:
        src: ./tmp/file
        dest: /path/to/file