Модуль 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

Другие вопросы по тегам