Я пытаюсь создать набор авторизованных ключей SSH для группы пользователей в Ansible. У меня есть users
переменная, настроенная так:
users:
- { username: root, name: 'root' }
- { username: user, name: 'User' }
В той же роли у меня также есть набор файлов авторизованных ключей в files/public_keys
каталоге, по одному файлу на авторизованный ключ:
roles/common/files/public_keys/home
roles/common/files/public_keys/work
Я хочу скопировать каждый открытый ключ каждому пользователю.
Я попытался использовать следующую задачу:
- name: copy authorized keys
authorized_key: user={{ item.0.username }} key={{ item.1 }}
with_nested:
- users
- lookup('fileglob', 'public_keys/*')
Однако item.1
содержит буквенную строку "lookup('fileglob', 'public_keys/*')"
, а не каждый путь к файлу files/public_keys
.
Есть ли способ получить список files/public_keys
каталогов и скопировать каждый открытый ключ каждому пользователю?
Возможно, вам придется значительно переписать вашу команду, но есть возможность зацикливаться на файловых глобах
из примера:
Другими многообещающими вариантами являются Looping over Subelements, который на самом деле иллюстрируется SSH-ключами.
источник
with_fileglob
; Я просто не уверен, как использовать это в сочетании с вложенным циклом. Циклы по подэлементам могут работать, но я надеюсь, что мне не нужно вручную указывать весь список ключей, которые я хочу скопировать, так как я должен просто иметь возможность получить его в виде списка (используяwith_fileglob
).#ansible
наirc.freenode.net
и посмотреть , если гуру там есть какие - либо яркие идеи.