Ansible не удалось подключиться к хосту через s sh, но команда s sh работает - PullRequest
1 голос
/ 24 марта 2020

С inventory.yml:

myhost:
  ansible_host: myhost # actually it was ansible_ssh_host (see my answer)
  ansible_user: myuser # actually it was ansible_ssh_user (see my answer)
  ansible_pass: mypass # actually it was ansible_ssh_pass (see my answer)

Пока что Ansible работал нормально. Я также мог бы ssh myuser@myhost.

Затем я изменил порт s sh по умолчанию с 22 на 23 и отредактировал inventory.yml:

myhost:
  ansible_host: myhost
  ansible_user: myuser
  ansible_pass: mypass # THE PROBLEM! Must be ansible_ssh_pass. (see my answer)
  ansible_port: 23

Как и ожидалось, я могу ssh myuser@myhost -p 23, но Ansible выдает ошибку:

fatal: [staging]: UNREACHABLE! => {"changed": false, "msg": "Failed to connect to the host via ssh: myuser@myhost: Permission denied (publickey,password).", "unreachable": true}

Что может быть причиной ошибки?

Ответы [ 2 ]

1 голос
/ 25 марта 2020

Переменная для пароля ansible_password. См. документацию здесь , чтобы правильно создать inventory.yml.

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

1 голос
/ 25 марта 2020

Решение довольно неожиданное и немного смущающее:

При изменении порта S SH я также прочитал это:

Ansible 2.0 устарел «ssh ”Из ansible_ssh_user, ansible_ssh_host и ansible_ssh_port, чтобы стать ansible_user, ansible_host и ansible_port.

Я слишком охотно отредактировал inventory.yml, так как я также изменил ansible_ssh_pass на ansible_pass. Следовательно: отсутствует пароль -> разрешение отклонено.

Итак, мой вопрос был сформулирован неправильно. Я обновил его соответственно.

...