Implantar um convidado VMware com Ansible

2

Eu tento implantar um convidado VMWare via Ansible. Infelizmente

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   

O que você deve saber.

Eu corro o OS X 10.11. Tenho ansible 1.9.3 Eu tenho pysphere (0.1.7) A saída de:

python -c 'import ssl; print(ssl.OPENSSL_VERSION)'
OpenSSL 0.9.8zg 14 July 2015...

Estou sentindo falta de algo aqui?

    
por yield 13.11.2015 / 19:29

2 respostas

4

As tarefas falham porque a verificação do certificado SSL falha. Na versão Ansible, 2.1 validate_certs foi adicionado ao vsphere_guest_module

Validate SSL certs. Note, if running on python without SSLContext support (typically, python < 2.7.9) you will have to set this to no as pysphere does not support validating certificates on older python. Prior to 2.1, this module would always validate on python >= 2.7.9 and never validate on python <= 2.7.8.

Portanto, definir validate_certs: no deve resolver esse problema contanto que você possa usar a versão Ansible > = 2.1 e a versão Python > = 2.7.9

    
por 16.03.2016 / 14:22
0

Solução alternativa: adicione abaixo de duas linhas em /Library/Python/2.7/site-packages/pysphere/vi_server.py

import ssl
ssl._create_default_https_context = ssl._create_unverified_context
    
por 16.03.2016 / 12:00