如何将多个文件的内容连接到一个变量中?
这是问题所在:我正在尝试为远程计算机上的用户设置公钥。几乎可以工作的authorized_key文档中的示例:
- name: Set up authorized_keys for the deploy user
authorized_key: user=deploy
key="{{ item }}"
with_file:
- public_keys/doe-jane
- public_keys/doe-john
但实际上我需要使用exclusive=yes
,所以更新后所有未提供的公钥都被删除。
如果exclusive=yes
提供了,那么只有最后列出的公钥保留在.ssh/authorized_keys
文件中(也报告为错误)。
我目前的做法:
- name: create empty temporary keys file
local_action: "shell > /tmp/auth_keys"
- name: concat keys to temporary file
local_action: "shell echo {{ item }} >> /tmp/auth_keys"
with_file:
- public_keys/doe-jane
- public_keys/doe-john
- name: set up authorized_keys
authorized_key: user=deploy
key="{{ lookup('file', '/tmp/auth_keys') }}"
exclusive=yes
这可行,但前两个命令总是产生“改变”。我也觉得必须有一个更优雅的解决方案。
那么,有没有办法将多个文件的内容连接成一个变量?还是一般来说有更好的方法来完成这项任务?