是否可以在剧本中包含文件内容?

时间:2016-07-20 11:00:15

标签: ansible ansible-playbook

我需要在远程主机上创建或覆盖文件。模块lineinfileblockinfile在更新文件时非常有用,但不能从头创建或完全覆盖现有文件。

显而易见的解决方案是使用copy,但我希望尽可能多地使用独立的剧本,而不需要文件。 是否可以在Playbook中包含要创建的文件的内容?

也许有一些变量与文件内容有关,可以用作src=的{​​{1}}参数(我试过这个但是它不能用作{{1}期望一个本地文件)

2 个答案:

答案 0 :(得分:27)

复制内容:

  tasks:
    - copy:
        content: |
                 This is some
                 not too complex
                 cotent for a file
        dest: content.txt

但按照Ansible doc

  

这是针对简单值,对于任何复杂或格式化的内容,请切换到模板模块。

答案 1 :(得分:2)

template - 模块是实现目标的好方法。