Ansible и хранилище - PullRequest
       0

Ansible и хранилище

0 голосов
/ 12 февраля 2020

Я хочу сохранить в хранилище ключи моего пользователя c вместо файла. Как мне поменять мою пьесу:

 name: push users public_keys
  authorized_key:
    state: present
    user: admin
    key: ""{{ lookup('file', '/path/to/your/www_id_rsa.pub') }}""

Спасибо

Ответы [ 2 ]

0 голосов
/ 12 февраля 2020

На самом деле я не понимаю смысла шифрования открытого ключа c. Обычно вы хотите сделать это для закрытых ключей (или любых других видов конфиденциальных данных, таких как пароли, токены ...).

Между тем, если вы действительно хотите это сделать, вам не нужно ничего менять в вашу пьесу. Вам просто нужно зашифровать файл, содержащий ваш ключ c publi:

ansible-vault encrypt --ask-vault-pass /path/to/your/www_id_rsa.pub

Как только это будет сделано, ansible автоматически обнаружит, что это зашифрованный файл хранилища, когда вы попытаетесь его использовать, и он будет расшифровать его на лету. Чтобы это работало, вам, конечно, нужно будет предоставить тот же пароль хранилища при запуске книги воспроизведения (или вы получите сообщение о том, что хранилище не может быть расшифровано).

ansible-playbook -i my_inventory --ask-vault-pass my_playbook.yml

Для получения дополнительной информации о различных вариантах предоставления прохода / идентификатора хранилища см .: https://docs.ansible.com/ansible/latest/user_guide/vault.html

0 голосов
/ 12 февраля 2020

Одним из способов может быть сохранение переменных хранилища в файле или шифрование строки. Я покажу использование файла:

  1. ansible-vault create vault_vars.yml (вам будет предложено создать пароль)
  2. В vault_vars.yml вы создадите обычную переменную, содержащую public_key: pub_key: "rsa..."
  3. Включите файл в свою пьесу:
       vars_files:
         - vault_vars.yml
    

Вы можете получить доступ к переменной из хранилища так же, как и с переменной, определяемой внутри книги воспроизведения. : {{ pub_key }}

Пример печати переменной из хранилища:

 - hosts: server
   vars_files:
     - vault_vars.yml
   tasks:
   - debug: msg="{{pub_key}}"

Запуск playbook: ansible-playbook playbook.yml --ask-vault-pass

Вы можете использовать --ask-vault-pass (при запросе пароля) или --vault-password-file (сохраняя ваш пароль хранилища в файле)

РЕДАКТИРОВАТЬ
После повторного прочтения вопроса вы заявили, что не хотите использовать файл, то есть решение будет таким, как предложено ниже : Encrypt the string.
Лично я не большой поклонник шифрования строк, а затем помещаю их прямо в книгу. Вместо этого я предпочитаю шифровать файл, чтобы при необходимости было проще добавлять / изменять значения.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...