Модуль Ansible netscaler получил ошибку "msg": "Объект" NoneType "не имеет атрибута" чтение ""
Кто-нибудь пытался использовать модуль Ansible (ansible 1.9.4) Netscaler? Я пытался использовать его, но потерпел неудачу с ошибкой:
ansible localhost -m netscaler -a "nsc_host=nsc.example.com user=nscuser password=nscpassword name=node1.example.com type=service action=disable validate_certs=False"
localhost | FAILED >> {
"failed": true,
"msg": "'NoneType' object has no attribute 'read'"
}
с выводом -vvvv:
<localhost> REMOTE_MODULE netscaler nsc_host=nsc.example.com user= nscuser password=VALUE_HIDDEN name=node1.example.com type=service action=disable validate_certs=False
<localhost> EXEC ['/bin/sh', '-c', 'mkdir -p $HOME/.ansible/tmp/ansible-tmp-1460868653.22-66856743808206 && chmod a+rx $HOME/.ansible/tmp/ansible-tmp-1460868653.22-66856743808206 && echo $HOME/.ansible/tmp/ansible-tmp-1460868653.22-66856743808206']
<localhost> PUT /tmp/tmpAfQPY2 TO /home/supp/.ansible/tmp/ansible-tmp-1460868653.22-66856743808206/netscaler
<localhost> EXEC ['/bin/sh', '-c', u'LANG=en_US.UTF-8 LC_CTYPE=en_US.UTF-8 /usr/local/bin/python2.7 /home/supp/.ansible/tmp/ansible-tmp-1460868653.22- 66856743808206/netscaler; rm -rf /home/supp/.ansible/tmp/ansible-tmp- 1460868653.22-66856743808206/ >/dev/null 2>&1']
localhost | FAILED >> {
"failed": true,
"msg": "'NoneType' object has no attribute 'read'"
}
с неработоспособным 1.9.5:
/usr/bin/ansible --version
ansible 1.9.5
configured module search path = None
/usr/bin/ansible localhost -m netscaler -a "nsc_host=nsc.example.com user= nscuser password=VALUE_HIDDEN name=node1.example.com type=service action=disable validate_certs=False" -vvvv
<localhost> REMOTE_MODULE netscaler nsc_host=nsc.example.com user= nscuser password=VALUE_HIDDEN name=node1.example.com type=service action=disable validate_certs=False
<localhost> EXEC ['/bin/sh', '-c', 'mkdir -p $HOME/.ansible/tmp/ansible-tmp-1460873442.75-215681661318620 && chmod a+rx $HOME/.ansible/tmp/ansible-tmp-1460873442.75-215681661318620 && echo $HOME/.ansible/tmp/ansible-tmp-1460873442.75-215681661318620']
<localhost> PUT /tmp/tmpiN_wRf TO /home/supp/.ansible/tmp/ansible-tmp-1460873442.75-215681661318620/netscaler
<localhost> EXEC ['/bin/sh', '-c', u'LANG=en_US.UTF-8 LC_CTYPE=en_US.UTF-8 /usr/bin/python26 /home/supp/.ansible/tmp/ansible-tmp-1460873442.75-215681661318620/netscaler; rm -rf /home/supp/.ansible/tmp/ansible-tmp-1460873442.75-215681661318620/ >/dev/null 2>&1']
localhost | FAILED >> {
"failed": true,
"msg": "'NoneType' object has no attribute 'read'"
}
примечание: localhost - это не NETSCALER, это управляющий хост.
Я также пытался использовать модуль в playbook, но все равно не получилось.
Надеюсь услышать предложение от вас.
Благодарю.
1 ответ
Хотя ошибка не очень информативна, проблема связана с подключением. Модуль не смог подключиться к netscaler. Проверьте подключение к сети и убедитесь, что на пути нет брандмауэров.
Коренная причина от
response, info = fetch_url(self.module, request_url, data=data_json, headers=headers)
return json.load(response)
"response" ничего не получил обратно, так что если тип "None" и, следовательно, json.load не может прочитать None.
Пул-запрос с немного более полезной обработкой ошибок находится по адресу https://github.com/ansible/ansible-modules-extras/pull/2327