gpt4 book ai didi

ansible - 如何将具有全局模式的文件连接为单个值?

转载 作者:行者123 更新时间:2023-12-01 11:21:40 25 4
gpt4 key购买 nike

我有一个相当简单的剧本,它创建了 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

我在该目录中有大约六个公钥文件。我正在尝试使用由换行符分隔的所有键来格式化单个文件内容。

这是 what is suggested by the Ansible docs :

exclusive

Whether to remove all other non-specified keys from the authorized_keys file. Multiple keys can be specified in a single key string value by separating them by newlines. This option is not loop aware, so if you use with_ , it will be exclusive per iteration of the loop, if you want multiple keys in the file you need to pass them all to key in a single batch as mentioned above.



如何使用 fileglob 连接所有匹配的文件 public_keys/*.pub在这里插入一个键,以便我可以保持排他性并在必要时正确删除键?

最佳答案

这将连接多个用换行符分隔其内容的文件:

{% for filename in lookup('fileglob', 'public_keys/*.pub', wantlist=true) -%}
{{ lookup('file', filename) }}

{% endfor %}

使用默认的 Ansible/Jinja2 设置,无论 *.pub 是否存在,输出都将被恰好一个换行符分隔。文件是否以尾随行结尾。
-%}在第一个表达式中防止在每行的开头添加空格字符。

关于ansible - 如何将具有全局模式的文件连接为单个值?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41842864/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com