Кто-нибудь знает, почему это не работает?
Я использую Ansible на Cygwin, используя скомпилированную версию sshpass. Я следовал инструкциям на http://www.jeffgeerling.com/blog/running-ansible-within-windows для его настройки. Вот мой файл / etc / ansible / hosts:
10.240.227.56 ansible_ssh_pass='password' ansible_user='domain\userid'
10.240.227.59 ansible_ssh_pass='password' ansible_user='domain\userid' ansible_become=true ansible_become_method=sudo ansible_become_user=privilegeduser
Я пробовал это с двумя разными хостами и двумя разными конфигурациями, чтобы посмотреть, могу ли я сузить проблему, но они ведут себя одинаково. Вот что я получаю, когда пытаюсь пропинговать хосты:
$ ansible all -vvv -m ping
No config file found; using defaults
<10.240.227.56> ESTABLISH SSH CONNECTION FOR USER: domain\userid
<10.240.227.59> ESTABLISH SSH CONNECTION FOR USER: domain\userid
<10.240.227.56> SSH: EXEC sshpass -d48 ssh -C -q -o ControlMaster=auto -o ControlPersist=60s -o 'User=domain\userid' -o ConnectTimeout=10 -o ControlPath=/home/userid/.ansible/cp/ansible-ssh-%h-%p-%r 10.240.227.56 '/bin/sh -c '"'"'( umask 77 && mkdir -p "` echo $HOME/.ansible/tmp/ansible-tmp-1462472936.54-168377440229444 `" && echo "` echo $HOME/.ansible/tmp/ansible-tmp-1462472936.54-168377440229444 `" )'"'"''
<10.240.227.59> SSH: EXEC sshpass -d49 ssh -C -q -o ControlMaster=auto -o ControlPersist=60s -o 'User=domain\userid' -o ConnectTimeout=10 -o ControlPath=/home/userid/.ansible/cp/ansible-ssh-%h-%p-%r 10.240.227.59 '/bin/sh -c '"'"'( umask 77 && mkdir -p "` echo /tmp/ansible-tmp-1462472936.54-274121315105946 `" && echo "` echo /tmp/ansible-tmp-1462472936.54-274121315105946 `" )'"'"''
10.240.227.59 | UNREACHABLE! => {
"changed": false,
"msg": "Failed to connect to the host via ssh.",
"unreachable": true
}
10.240.227.56 | UNREACHABLE! => {
"changed": false,
"msg": "Failed to connect to the host via ssh.",
"unreachable": true
}
Удаленная сторона - это виртуальная машина RHEL 7, использующая проверку подлинности Windows, отсюда и имя пользователя «домен \ идентификатор пользователя».
Я могу нормально подключиться, используя те же учетные данные в командной строке, используя простой старый ssh
. Я также могу нормально подключиться, используя sshpass
. И когда я пытаюсь пинговать хосты, используя ansible
, удаленная сторона /var/log/secure
показывает, что аутентификация по паролю прошла успешно.
Я подтвердил, что Python 2.7x находится на управляемых хостах.
Пользователь, под которым я пытаюсь войти, domain\userid
, является непривилегированным. Когда я вхожу в этот ящик вручную, я sudo su - privilegeduser
с моим domain\userid
пароль, а затем можно выполнить sudo до конца, как root или кто угодно.
Используйте -vvvvv (5 'v) для полной отладки SSH.