Вопрос:
Когда я попытался выполнить ping свой экземпляр Windows, используя ansible windows -i hosts.ini -m win_ping, я получил следующую ошибку:
54.197.197.91 | UNREACHABLE! => { «changed»: false, «msg»: «plaintext: the specified credentials were rejected by the server», «unreachable»: true }
Мой файл hosts.ini выглядит так:
[windows] 54.197.197.91 [windows:vars] ansible_ssh_user=Administrator ansible_ssh_pass=MyPassword123! ansible_ssh_port=5985 ansible_connection=winrm
Чтобы решить это, я сделал следующее:
ansible-vault create secret.yml
и ввели мой пароль там вот так:
win_initial_password: MyPassword123!
Затем мой файл hosts.ini выглядел так:
[windows] 54.197.197.91 [windows:vars] ansible_ssh_user=Administrator ansible_ssh_pass={{ win_initial_password }} ansible_ssh_port=5985 ansible_connection=winrm
Когда я пробовал пинговать, я получил следующую ошибку:
54.197.197.91 | FAILED! => { «failed»: true, «msg»: «the field ‘password’ has an invalid value, which appears to include a variable that is undefined. The error was: ‘win_initial_password’ is undefined» }
Где я иду не так?
Лучший ответ:
Я решил это, изменив их:
ansible_ssh_port=5986 ansible_winrm_server_cert_validation=ignore
Это сработало.
Ответ №1
Поскольку я следовал примеру Ansible, подобному исходному сообщению, принятый ответ не сработал для меня, следующее получило его работу
Примечание. Это отправка пароля в виде обычного текста, поэтому его нельзя использовать в производстве
На целевой машине запустите powershell с правами администратора и введите следующие команды:
Set-Item -Path WSMan:localhostServiceAuthBasic -Value $true winrm set winrm/config/service ‘@{AllowUnencrypted=»true»}’
Также убедитесь, что ваш брандмауэр настроен правильно, чтобы разрешить необходимые порты (TCP/5985, TCP/5986)
Источники:
http://docs.ansible.com/ansible/latest/user_guide/windows_winrm.html#authentication-options https://github.com/diyan/pywinrm/issues/114
Ответ №2
Для меня все еще была проблема. Моим решением было переустановить пакеты python-pip связанные с winrm с нуля. Мне пришлось использовать официальную документацию Ansible. Согласно документации:
- apt-get install python-pip git libffi-dev libssl-dev -y
- pip install ansible pywinrm
- Номер порта для Windows – 5986, поэтому для конфигурации var должна быть ansible_ssh_port: 5986
Ответ №3
Я столкнулся с этой же проблемой, даже если для параметра “AllowUnencrypted” установлено значение true. Я заметил, что win_ping работает для IEUser который был добавлен в группу администраторов, но с ошибкой
windows-server | UNREACHABLE! => { «changed»: false, «msg»: «plaintext: the specified credentials were rejected by the server», «unreachable»: true }
для test-user который не был в группе администраторов.
Поэтому я добавил test-user в группу администраторов, и проблема была решена.
Ответ №4
Администратор не работал для меня тоже, потому что учетная запись администратора в Windows была отключена. После включения учетной записи администратора снова работает.