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

Is it possible to include file content in a playbook?

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

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

也许有一个带有文件内容的变量可以用作 copysrc= 参数(我试过这个但它不起作用 src 需要一个本地文件)

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

复制内容:

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

但根据 Ansible doc:

This is for simple values, for anything complex or with formatting please switch to the template module.