Я пытаюсь развернуть гостевую VMWare через Ansible. К сожалению
ansible-playbook -i inventory.local vmware.yml
PLAY [all] ********************************************************************
GATHERING FACTS ***************************************************************
ok: [vmcenter00]
ok: [127.0.0.1]
TASK: [vsphere_guest ] ********************************************************
failed: [127.0.0.1] => {"failed": true, "parsed": false}
Traceback (most recent call last):
File "/Users/some_user/.ansible/tmp/ansible-tmp-1447432699.52-19521550866442/vsphere_guest", line 2936, in <module>
main()
File "/Users/some_user/.ansible/tmp/ansible-tmp-1447432699.52-19521550866442/vsphere_guest", line 1207, in main
viserver.connect(vcenter_hostname, username, password)
File "/Library/Python/2.7/site-packages/pysphere/vi_server.py", line 101, in connect
request)._returnval
File "/Library/Python/2.7/site-packages/pysphere/resources/VimService_services.py", line 2170, in RetrieveServiceContent
self.binding.Send(None, None, request, soapaction="urn:vim25/5.0", **kw)
File "/Library/Python/2.7/site-packages/pysphere/ZSI/client.py", line 295, in Send
self.local.h.connect()
File "/System/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/httplib.py", line 1274, in connect
server_hostname=server_hostname)
File "/System/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/ssl.py", line 352, in wrap_socket
_context=self)
File "/System/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/ssl.py", line 579, in __init__
self.do_handshake()
File "/System/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/ssl.py", line 808, in do_handshake
self._sslobj.do_handshake()
ssl.SSLError: [SSL: CERTIFICATE_VERIFY_FAILED] certificate verify failed (_ssl.c:590)
FATAL: all hosts have already failed -- aborting
PLAY RECAP ********************************************************************
to retry, use: --limit @/Users/some_user/vmware.retry
127.0.0.1 : ok=1 changed=0 unreachable=0 failed=1
vmcenter00 : ok=1 changed=0 unreachable=0 failed=0
То, что вы должны знать.
Я запускаю OS X 10.11. У меня ansible 1.9.3 У меня есть pysphere (0.1.7) Результат:
python -c 'import ssl; print(ssl.OPENSSL_VERSION)'
OpenSSL 0.9.8zg 14 July 2015...
Я что-то упустил?
Задачи не выполняются из-за сбоя проверки сертификата SSL. В версии Ansible 2.1
validate_certs
был добавлен в vsphere_guest_module
Проверить сертификаты SSL. Обратите внимание: если вы работаете на python без поддержки SSLContext (обычно python <2.7.9), вам нужно будет установить для этого параметра значение no, поскольку pysphere не поддерживает проверку сертификатов на более старом python. До версии 2.1 этот модуль всегда проверял на python> = 2.7.9 и никогда не проверял на python <= 2.7.8.
Итак, установка validate_certs: no
должен решить эту проблему, если вы можете использовать версию Ansible> = 2.1 и версию Python> = 2.7.9
Решение: добавьте две строки ниже в /Library/Python/2.7/site-packages/pysphere/vi_server.py
import ssl
ssl._create_default_https_context = ssl._create_unverified_context