У меня проблема с Ansible Vault.
Команды Vault для копирования файлов работают отлично, но я не могу найти никакого решения, чтобы заставить работать зашифрованные шаблоны.
Моя цель - развернуть SSH-ключ для authorized_keys
с некоторыми комментариями вверху, с {{ ansible_managed }}
сверху, но Ansible просто создает файл, зашифрованный на целевом хосте.
Мое задание:
- name: Copy public RSA key
template: src=id_rsa.pub.j2 dest=/root/.ssh/authorized_keys owner=root mode=600
Результат на целевом сервере:
$ANSIBLE_VAULT;1.1;AES256
66393735343333616637383238643132646134343235633662663262353530663133386439356334
6437633863333434393333336336396239636531306262640a623764303165333035633333643631
6631613234346133386261343162653931643865633139[...]
Кто-нибудь пробовал то же самое и запустил?
Авторизованные ключи - SSH общественный ключи, поэтому вам не нужно хранить их в хранилище.
Как говорится, это похоже на ваш id_rsa.pub.j2
это неверно. Вот пример моей задачи по копированию закрытого ключа ssh на машину:
- name: install ssh key
copy:
content: "{{ssh_key}}"
dest: ~/.ssh/example.pem
owner: "{{ansible_user_id}}"
mode: u=r,g=,o=
ssh_key
тогда определяется в group_vars/all/vars.yaml
:
ssh_key: "{{vault_ssh_key}}"
и group_vars/all/vault.yaml
это зашифрованный файл хранилища, который определяет vault_ssh_key
. Этот метод позволяет любому, кто просматривает задачу или шаблон, найти имя переменной с помощью grep и найти определение, указывающее на хранилище.