Я пытаюсь подготовить машину с помощью ansible. Я должен подключиться к нему через ssh, используя закрытый ключ вместо пароля.
Это содержимое моего файла inventory.txt:
target ansible_host=<ip_address> ansible_ssh_private_key_file=~/.ssh/<private_key_name>.pem
Это содержимое моего файла playbook.yaml:
-
name: Playbook name
hosts: target
tasks:
<task_list>
Когда я выполняю команду ansible-playbook <playbook_name>.yaml -i inventory.txt
, я получаю следующую ошибку:
fatal: [target]: UNREACHABLE! => {"changed": false, "msg": "Failed to connect to the host via ssh: Permission denied (publickey).\r\n", "unreachable": true}
Я также попытался выполнить следующую команду: ansible-playbook <playbook_name>.yaml --private-key=~/.ssh/<private_key_name>.pem -i inventory.txt
, без свойства ansible_ssh_private_key_file
внутри файла inventory.txt
.
Примечание: я могу подключиться к машине с помощью командыssh -i <private_key_name>.pem <username>@<ip_address>
.
Как я могу решить эту проблему?
Я подозреваю, что вы подключаетесь как другой пользователь. В приведенном выше примере вы используете <user>@<host>
во время проверок ssh, но у вас не настроено поле ansible_user=...
. Попробуйте указать имя пользователя таким образом в файле hosts.
Если это ответ - отметьте это как решение.
Конечно. Но мне нужно подождать несколько минут, пока я смогу это сделать.
Да, вот и все. Я пропустил свойство ansible_user. Спасибо.