我正在创建一个简单的角色来动态管理用户SSH密钥。通常的想法是让它读取该目录中的所有files/*.pub
文件,并将它们组合为一个root用户的单个authorized_keys
文件。
在下面的示例中,a.pub
和b.pub
是要添加的两个键。该任务应将这两个都添加到authorized_keys
文件中,并在添加.pub
文件的列表中将其与添加和删除的文件保持同步。因此,如果将c.pub
添加到文件夹,则无需修改任务即可将其添加到authorized_keys
文件。
角色结构:
/-- roles
| |-- ssh
| | |-- files
| | |-- a.pub
| | |-- b.pub
| |-- tasks
| |-- main.yml
|-- site.yml
答案 0 :(得分:0)
您正在寻找的东西是fileglob
lookup,它将用作:
- name: ensure authorized keys
authorized_key:
exclusive: yes
key: >
{% for fn in lookup("fileglob", "files/*.pub") %}
{{ lookup("file", fn) }}
{% endfor %}
# ... whatever other options you want