2016-08-21 4 views
0

Когда я пытался пинговать свой экземпляр Windows, используя ansible windows -i hosts.ini -m win_ping, я получил следующее сообщение об ошибке:Невозможно пинг мой Windows Server с помощью 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" 
} 

Где я буду неправильно?

+0

(1) у вас есть проблемы с проверкой подлинности Windows, и вы необходимо решить эту проблему; использование Ansible vault не имеет ничего общего с этим механизмом, и попытка сделать это ничего не изменит. – techraf

+0

(2) Файл инвентаризации не анализируется для переменных Jinja2; он не будет работать таким образом, и даже если бы это было так, это не повлияло бы на (1). – techraf

+0

Нужно ли мне что-либо менять для получения файла инвентаризации, проанализированного для переменных jinja2? – prudhvi

ответ

2

Я решил, изменив их:

ansible_ssh_port=5986 
ansible_winrm_server_cert_validation=ignore 

Это работало.

+0

Не могли бы вы объяснить, куда идут эти строки? –

+0

yaa raja ... они должны быть помещены в файл ** hosts.ini **, как в вопросе – prudhvi

+0

Ваше решение в порядке, если вы хотите подключиться к удаленным узлам по незашифрованным соединениям. Это немного похоже на то, чтобы оставить ключи от вашего автомобиля на столе или столе и надеяться, что их никто не возьмет. Или вы планируете позже добавить шифрование? – skinnedKnuckles

0

Все еще была проблема для меня. Моим решением было переустановить пакеты python-pip, связанные с winrm с нуля. Мне пришлось использовать официальный Ansible documentation. Согласно документации:

  1. apt-get install python-pip git libffi-dev libssl-dev -y
  2. pip install ansible pywinrm
  3. Номер порта для окон Таким образом, вы конфигурация вар должна быть ansible_ssh_port: 5986