Как запустить ansible-playbook с помощью защищенной паролем фразы ssh-private-key? - PullRequest
0 голосов
/ 10 мая 2018

У меня есть группа автоматического масштабирования на Amazon EC2, и я добавил свой открытый ключ при создании AMI с packer, чтобы я мог запустить ansible-playbook и ssh на хостах.

Но есть проблема, когда я запускаю playbook, как это ansible-playbook load.yml Я получаю это сообщение, что мне нужно написать свой пароль

Введите ключевую фразу для ключа '/Users/XXX/.ssh/id_rsa':
Введите пароль для ключа '/Users/XXX/.ssh/id_rsa':
Введите пароль для ключа «/Users/XXX/.ssh/id_rsa':

Проблема в том, что он не принимает мой пароль (я уверен, что я правильно набираю пароль).

Затем я обнаружил, что могу отправить свой пароль с флагом ask-pass, поэтому я изменил свою команду на ansible-playbook load.yml --ask-pass, и я получил некоторый прогресс, но снова для какой-то другой задачи он снова запрашивает пароль и не принимает мой пароль

[WARNING]: Unable to parse /etc/ansible/hosts as an inventory source

 [WARNING]: No inventory was parsed, only implicit localhost is available

 [WARNING]: provided hosts list is empty, only localhost is available. Note that the implicit localhost does not match 'all'


PLAY [localhost] *************************************************************************************************************

TASK [ec2_instance_facts] ****************************************************************************************************
ok: [localhost]

TASK [add_host] **************************************************************************************************************
changed: [localhost] => (item=xx.xxx.xx.xxx)
changed: [localhost] => (item=yy.yyy.yyy.yyy)

PLAY [instances] *************************************************************************************************************

TASK [Copy gatling.conf] *****************************************************************************************************
ok: [xx.xxx.xx.xxx]
ok: [yy.yyy.yyy.yyy]
Enter passphrase for key '/Users/ccc/.ssh/id_rsa': Enter passphrase for key '/Users/ccc/.ssh/id_rsa':
Enter passphrase for key '/Users/ccc/.ssh/id_rsa':
Enter passphrase for key '/Users/ccc/.ssh/id_rsa':
Enter passphrase for key '/Users/ccc/.ssh/id_rsa':

Если я не использую флаг ask-pass, даже задача [Copy gatling.conf] не будет выполнена, и жалоба не сможет получить доступ к хостам. Добавляя флаг, эта часть идет хорошо, но моя следующая задача снова просит пройти.

Как мне решить эту проблему? Что я тут не так делаю?

Ответы [ 2 ]

0 голосов
/ 24 июля 2018

В ansible Нет возможности сохранить личный ключ, защищенный парольной фразой

Для этого нам нужно добавить защищенный паролем частный ключ в ssh-agent

Запустите ssh-agent в фоновом режиме.

# eval "$(ssh-agent -s)"

Добавить закрытый ключ SSH в ssh-agent

# ssh-add ~/.ssh/id_rsa

Теперь попробуйте запустить ansible-playbook и ssh для хостов.

0 голосов
/ 27 июня 2018

Я решил это, запустив ssh-add один раз и использовав его, как будто он не защищен паролем.

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