2016-05-03 7 views
0

Я хочу использовать Ansible как часть другого программного обеспечения Python. в этом программном обеспечении у меня есть список хостов со своим пользователем/паролем.Как передать пользователя/пароль в доступной команде

Есть ли способ передать пользователь/пропуск SSH-соединения на Ansible ad-hoc или записать его в любом файле зашифрованным способом?

Или я понимаю, что все это неправильно, и единственный способ сделать это - с сертификацией SSH?

+1

Вы не хотите хранить пароли на компьютере. Это ужасная практика безопасности. :-) Вместо этого используйте SSH-ключи для аутентификации. В документации [SSH] (http://www.openssh.com/manual.html) содержится все, что вам нужно, в частности [ssh-keygen] (http://man.openbsd.org/ssh-keygen). Создайте свой ключ, затем добавьте открытую часть (то есть '~/.ssh/id_ed25519.pub') в файл' ~/.ssh/authorized_keys' на каждом целевом узле. – ghoti

+1

Вы можете использовать хранилище для хранения зашифрованных данных (AES-256), но я не уверен, что вы можете передать пароль, если не набрав его (см. Мой ответ) –

+0

user5507598, да, возможно, вам нужно использовать ключ-файл хранилища и вызовите текстовую книгу как команду с -k для модуля ожидания и для ответов: (? i) Пароль SSH: «{{password}}». Переменная, содержащая зашифрованный пароль, будет дешифрована с помощью хранилища. Хотя это будет держать блокировку и ключ как на сервере. не лучший способ. –

ответ

2

Говоря с удаленными машинами, по умолчанию предполагается, что вы используете с использованием SSH-ключей. Клавиши SSH поощряются, но аутентификация с паролем также может использоваться там, где это необходимо, путем подачи опции -ask-pass. Если с использованием функций sudo и когда sudo требует пароль, также поставляйте --ask-get-pass (ранее --ask-sudo-pass, который устарел).

Никогда не использовала эту функцию, но docs скажет, что вы можете.

+0

Возможно, вам нужно будет прочитать [this] (http://docs.ansible.com/ansible/playbooks_intro.html#hosts-and-users) тоже. –

+1

это работает как рекламируется. вы также можете сохранить их в файле инвентаря. – smiller171

+0

На самом деле инвентарь - лучший вариант, но не настолько безопасный, поэтому, возможно, вы могли бы добавить эти параметры в сценарий вместо этого (где их можно расшифровать). [здесь] (http://docs.ansible.com/ansible/intro_inventory.html#non-ssh-connection-types) заключается в том, как сохранить пользователя/пароль в инвентаре: 'ansible_user',' ansible_ssh_pass' –

Смежные вопросы