Naf*_*Kay 3 jinja2 ansible ansible-template
我有一个相当简单的剧本,可authorized_keys在Ansible中为给定的用户创建条目:
- name: chat user authorized keys
authorized_key:
user: chat
key: |
{% for filename in lookup('fileglob', 'public_keys/*.pub') %}
# {{ filename }}
{{ lookup('file', filename ) }}
{% endfor %}
exclusive: true
Run Code Online (Sandbox Code Playgroud)
我在该目录中大约有六个公钥文件。我正在尝试使用换行符分隔的所有键来格式化单个文件内容。
独家
是否从authorized_keys文件中删除所有其他未指定的密钥。可以通过换行符将多个键指定在单个键字符串值中。此选项不是循环感知的,因此,如果使用
with_,则它将在循环的每次迭代中独占,如果要在文件中包含多个键,则需要key如上所述将它们全部传递给一个批处理。
如何在这里使用fileglob将所有匹配的文件连接public_keys/*.pub到单个密钥中,以便我可以保持排他性并在必要时适当地删除密钥?
这将串联多个文件,并用换行符分隔其内容:
{% for filename in lookup('fileglob', 'public_keys/*.pub', wantlist=true) -%}
{{ lookup('file', filename) }}
{% endfor %}
Run Code Online (Sandbox Code Playgroud)
使用默认的Ansible / Jinja2设置,无论*.pub文件是否以尾行结尾,输出都将仅由一个换行符分隔。
-%} 在第一个表达式中,防止在每行的开头添加空格字符。