Назад | Перейти на главную страницу

Шаблоны с шифрованием Ansible и Vault

У меня проблема с 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 и найти определение, указывающее на хранилище.