我需要在远程主机上创建或覆盖文件。模块lineinfile
或blockinfile
在更新文件时非常有用,但不能从头创建或完全覆盖现有文件。
显而易见的解决方案是使用copy
,但我希望尽可能多地使用独立的剧本,而不需要文件。 是否可以在Playbook中包含要创建的文件的内容?
也许有一些变量与文件内容有关,可以用作src=
的{{1}}参数(我试过这个但是它不能用作{{1}期望一个本地文件)
答案 0 :(得分:27)
复制内容:
tasks:
- copy:
content: |
This is some
not too complex
cotent for a file
dest: content.txt
但按照Ansible doc:
这是针对简单值,对于任何复杂或格式化的内容,请切换到模板模块。
答案 1 :(得分:2)
template - 模块是实现目标的好方法。