F5Networks / f5-ansible

Imperative Ansible modules for F5 BIG-IP products
GNU General Public License v3.0
375 stars 231 forks source link

bigip_pool_member doesn't use CLI transport #1646

Closed grimlokason closed 4 years ago

grimlokason commented 4 years ago
ISSUE TYPE
COMPONENT NAME

bigip_pool_member

ANSIBLE VERSION
PYTHON VERSION
$ python3.6 -V
Python 3.6.9
BIGIP VERSION
CONFIGURATION
OS / ENVIRONMENT
SUMMARY
STEPS TO REPRODUCE
 wget https://f5-ansible.s3.amazonaws.com/collections/f5networks-f5_modules-1.2.0-devel.tar.gz
tar xvzf f5networks-f5_modules-1.2.0-devel.tar.gz -C collections/ansible_collections/f5networks/f5_modules/
- hosts: localhost
  gather_facts : false
  tasks:
    - name: "task name"
       bigip_pool_member:
         provider: 
           server: 'bigip's ip'
           user: "user"
           ssh_keyfile: "thekeyworkingwithssh"
           validate_certs: no
           timeout: 60
           server_port: '22' #else it'll try on port443 even when transport_cli is specified
           transport: cli
         state: "disabled"
         pool: "existing_pool"
         host: "existing_member"
         address: "existing_member's address"
         partition: Common
         port: "existing_member's_port"

NB : the same playbook but whith user/password on rest 443 (on other device) is working.

EXPECTED RESULTS

accessing the bigip device on cli.

ACTUAL RESULTS
The full traceback is:
Traceback (most recent call last):
  File "/usr/lib/python3.6/urllib/request.py", line 1318, in do_open
    encode_chunked=req.has_header('Transfer-encoding'))
  File "/usr/lib/python3.6/http/client.py", line 1254, in request
    self._send_request(method, url, body, headers, encode_chunked)
  File "/usr/lib/python3.6/http/client.py", line 1300, in _send_request
    self.endheaders(body, encode_chunked=encode_chunked)
  File "/usr/lib/python3.6/http/client.py", line 1249, in endheaders
    self._send_output(message_body, encode_chunked=encode_chunked)
  File "/usr/lib/python3.6/http/client.py", line 1036, in _send_output
    self.send(msg)
  File "/usr/lib/python3.6/http/client.py", line 974, in send
    self.connect()
  File "/usr/lib/python3.6/http/client.py", line 1415, in connect
    server_hostname=server_hostname)
  File "/usr/lib/python3.6/ssl.py", line 407, in wrap_socket
    _context=self, _session=session)
  File "/usr/lib/python3.6/ssl.py", line 817, in __init__
    self.do_handshake()
  File "/usr/lib/python3.6/ssl.py", line 1077, in do_handshake
    self._sslobj.do_handshake()
  File "/usr/lib/python3.6/ssl.py", line 689, in do_handshake
    self._sslobj.do_handshake()
ssl.SSLError: [SSL: WRONG_VERSION_NUMBER] wrong version number (_ssl.c:852)

During handling of the above exception, another exception occurred:

Traceback (most recent call last):
  File "/home/MQXC9670/.ansible/tmp/ansible-tmp-1581351622.1424074-30130499436586/AnsiballZ_bigip_pool_member.py", line 102, in <module>
    _ansiballz_main()
  File "/home/MQXC9670/.ansible/tmp/ansible-tmp-1581351622.1424074-30130499436586/AnsiballZ_bigip_pool_member.py", line 94, in _ansiballz_main
    invoke_module(zipped_mod, temp_path, ANSIBALLZ_PARAMS)
  File "/home/MQXC9670/.ansible/tmp/ansible-tmp-1581351622.1424074-30130499436586/AnsiballZ_bigip_pool_member.py", line 40, in invoke_module
    runpy.run_module(mod_name='ansible_collections.f5networks.f5_modules.plugins.modules.bigip_pool_member', init_globals=None, run_name='__main__', alter_sys=True)
  File "/usr/lib/python3.6/runpy.py", line 205, in run_module
    return _run_module_code(code, init_globals, run_name, mod_spec)
  File "/usr/lib/python3.6/runpy.py", line 96, in _run_module_code
    mod_name, mod_spec, pkg_name, script_name)
  File "/usr/lib/python3.6/runpy.py", line 85, in _run_code
    exec(code, run_globals)
  File "/tmp/ansible_f5networks.f5_modules.bigip_pool_member_payload_by8bq2oe/ansible_f5networks.f5_modules.bigip_pool_member_payload.zip/ansible_collections/f5networks/f5_modules/plugins/modules/bigip_pool_member.py", line 1694, in <module>
  File "/tmp/ansible_f5networks.f5_modules.bigip_pool_member_payload_by8bq2oe/ansible_f5networks.f5_modules.bigip_pool_member_payload.zip/ansible_collections/f5networks/f5_modules/plugins/modules/bigip_pool_member.py", line 1687, in main
  File "/tmp/ansible_f5networks.f5_modules.bigip_pool_member_payload_by8bq2oe/ansible_f5networks.f5_modules.bigip_pool_member_payload.zip/ansible_collections/f5networks/f5_modules/plugins/modules/bigip_pool_member.py", line 1088, in exec_module
  File "/tmp/ansible_f5networks.f5_modules.bigip_pool_member_payload_by8bq2oe/ansible_f5networks.f5_modules.bigip_pool_member_payload.zip/ansible_collections/f5networks/f5_modules/plugins/modules/bigip_pool_member.py", line 1170, in execute
  File "/tmp/ansible_f5networks.f5_modules.bigip_pool_member_payload_by8bq2oe/ansible_f5networks.f5_modules.bigip_pool_member_payload.zip/ansible_collections/f5networks/f5_modules/plugins/modules/bigip_pool_member.py", line 1182, in present
  File "/tmp/ansible_f5networks.f5_modules.bigip_pool_member_payload_by8bq2oe/ansible_f5networks.f5_modules.bigip_pool_member_payload.zip/ansible_collections/f5networks/f5_modules/plugins/modules/bigip_pool_member.py", line 1257, in exists
  File "/tmp/ansible_f5networks.f5_modules.bigip_pool_member_payload_by8bq2oe/ansible_f5networks.f5_modules.bigip_pool_member_payload.zip/ansible_collections/f5networks/f5_modules/plugins/modules/bigip_pool_member.py", line 1297, in pool_exist
  File "/tmp/ansible_f5networks.f5_modules.bigip_pool_member_payload_by8bq2oe/ansible_f5networks.f5_modules.bigip_pool_member_payload.zip/ansible_collections/f5networks/f5_modules/plugins/module_utils/bigip.py", line 34, in api
  File "/tmp/ansible_f5networks.f5_modules.bigip_pool_member_payload_by8bq2oe/ansible_f5networks.f5_modules.bigip_pool_member_payload.zip/ansible_collections/f5networks/f5_modules/plugins/module_utils/bigip.py", line 58, in connect_via_token_auth
  File "/tmp/ansible_f5networks.f5_modules.bigip_pool_member_payload_by8bq2oe/ansible_f5networks.f5_modules.bigip_pool_member_payload.zip/ansible_collections/f5networks/f5_modules/plugins/module_utils/icontrol.py", line 238, in post
  File "/tmp/ansible_f5networks.f5_modules.bigip_pool_member_payload_by8bq2oe/ansible_f5networks.f5_modules.bigip_pool_member_payload.zip/ansible_collections/f5networks/f5_modules/plugins/module_utils/icontrol.py", line 193, in send
  File "/tmp/ansible_f5networks.f5_modules.bigip_pool_member_payload_by8bq2oe/ansible_f5networks.f5_modules.bigip_pool_member_payload.zip/ansible/module_utils/urls.py", line 1294, in open
  File "/usr/lib/python3.6/urllib/request.py", line 223, in urlopen
    return opener.open(url, data, timeout)
  File "/usr/lib/python3.6/urllib/request.py", line 526, in open
    response = self._open(req, data)
  File "/usr/lib/python3.6/urllib/request.py", line 544, in _open
    '_open', req)
  File "/usr/lib/python3.6/urllib/request.py", line 504, in _call_chain
    result = func(*args)
  File "/tmp/ansible_f5networks.f5_modules.bigip_pool_member_payload_by8bq2oe/ansible_f5networks.f5_modules.bigip_pool_member_payload.zip/ansible/module_utils/urls.py", line 467, in https_open
  File "/usr/lib/python3.6/urllib/request.py", line 1320, in do_open
    raise URLError(err)
urllib.error.URLError: <urlopen error [SSL: WRONG_VERSION_NUMBER] wrong version number (_ssl.c:852)>

failed: [localhost -> localhost]  => {
    "changed": false,
    "module_stderr": "Traceback (most recent call last):\n  File \"/usr/lib/python3.6/urllib/request.py\", line 1318, in do_open\n    encode_chunked=req.has_header('Transfer-encoding'))\n  File \"/usr/lib/python3.6/http/client.py\", line 1254, in request\n    self._send_request(method, url, body, headers, encode_chunked)\n  File \"/usr/lib/python3.6/http/client.py\", line 1300, in _send_request\n    self.endheaders(body, encode_chunked=encode_chunked)\n  File \"/usr/lib/python3.6/http/client.py\", line 1249, in endheaders\n    self._send_output(message_body, encode_chunked=encode_chunked)\n  File \"/usr/lib/python3.6/http/client.py\", line 1036, in _send_output\n    self.send(msg)\n  File \"/usr/lib/python3.6/http/client.py\", line 974, in send\n    self.connect()\n  File \"/usr/lib/python3.6/http/client.py\", line 1415, in connect\n    server_hostname=server_hostname)\n  File \"/usr/lib/python3.6/ssl.py\", line 407, in wrap_socket\n    _context=self, _session=session)\n  File \"/usr/lib/python3.6/ssl.py\", line 817, in __init__\n    self.do_handshake()\n  File \"/usr/lib/python3.6/ssl.py\", line 1077, in do_handshake\n    self._sslobj.do_handshake()\n  File \"/usr/lib/python3.6/ssl.py\", line 689, in do_handshake\n    self._sslobj.do_handshake()\nssl.SSLError: [SSL: WRONG_VERSION_NUMBER] wrong version number (_ssl.c:852)\n\nDuring handling of the above exception, another exception occurred:\n\nTraceback (most recent call last):\n  File \"/home/MQXC9670/.ansible/tmp/ansible-tmp-1581351622.1424074-30130499436586/AnsiballZ_bigip_pool_member.py\", line 102, in <module>\n    _ansiballz_main()\n  File \"/home/MQXC9670/.ansible/tmp/ansible-tmp-1581351622.1424074-30130499436586/AnsiballZ_bigip_pool_member.py\", line 94, in _ansiballz_main\n    invoke_module(zipped_mod, temp_path, ANSIBALLZ_PARAMS)\n  File \"/home/MQXC9670/.ansible/tmp/ansible-tmp-1581351622.1424074-30130499436586/AnsiballZ_bigip_pool_member.py\", line 40, in invoke_module\n    runpy.run_module(mod_name='ansible_collections.f5networks.f5_modules.plugins.modules.bigip_pool_member', init_globals=None, run_name='__main__', alter_sys=True)\n  File \"/usr/lib/python3.6/runpy.py\", line 205, in run_module\n    return _run_module_code(code, init_globals, run_name, mod_spec)\n  File \"/usr/lib/python3.6/runpy.py\", line 96, in _run_module_code\n    mod_name, mod_spec, pkg_name, script_name)\n  File \"/usr/lib/python3.6/runpy.py\", line 85, in _run_code\n    exec(code, run_globals)\n  File \"/tmp/ansible_f5networks.f5_modules.bigip_pool_member_payload_by8bq2oe/ansible_f5networks.f5_modules.bigip_pool_member_payload.zip/ansible_collections/f5networks/f5_modules/plugins/modules/bigip_pool_member.py\", line 1694, in <module>\n  File \"/tmp/ansible_f5networks.f5_modules.bigip_pool_member_payload_by8bq2oe/ansible_f5networks.f5_modules.bigip_pool_member_payload.zip/ansible_collections/f5networks/f5_modules/plugins/modules/bigip_pool_member.py\", line 1687, in main\n  File \"/tmp/ansible_f5networks.f5_modules.bigip_pool_member_payload_by8bq2oe/ansible_f5networks.f5_modules.bigip_pool_member_payload.zip/ansible_collections/f5networks/f5_modules/plugins/modules/bigip_pool_member.py\", line 1088, in exec_module\n  File \"/tmp/ansible_f5networks.f5_modules.bigip_pool_member_payload_by8bq2oe/ansible_f5networks.f5_modules.bigip_pool_member_payload.zip/ansible_collections/f5networks/f5_modules/plugins/modules/bigip_pool_member.py\", line 1170, in execute\n  File \"/tmp/ansible_f5networks.f5_modules.bigip_pool_member_payload_by8bq2oe/ansible_f5networks.f5_modules.bigip_pool_member_payload.zip/ansible_collections/f5networks/f5_modules/plugins/modules/bigip_pool_member.py\", line 1182, in present\n  File \"/tmp/ansible_f5networks.f5_modules.bigip_pool_member_payload_by8bq2oe/ansible_f5networks.f5_modules.bigip_pool_member_payload.zip/ansible_collections/f5networks/f5_modules/plugins/modules/bigip_pool_member.py\", line 1257, in exists\n  File \"/tmp/ansible_f5networks.f5_modules.bigip_pool_member_payload_by8bq2oe/ansible_f5networks.f5_modules.bigip_pool_member_payload.zip/ansible_collections/f5networks/f5_modules/plugins/modules/bigip_pool_member.py\", line 1297, in pool_exist\n  File \"/tmp/ansible_f5networks.f5_modules.bigip_pool_member_payload_by8bq2oe/ansible_f5networks.f5_modules.bigip_pool_member_payload.zip/ansible_collections/f5networks/f5_modules/plugins/module_utils/bigip.py\", line 34, in api\n  File \"/tmp/ansible_f5networks.f5_modules.bigip_pool_member_payload_by8bq2oe/ansible_f5networks.f5_modules.bigip_pool_member_payload.zip/ansible_collections/f5networks/f5_modules/plugins/module_utils/bigip.py\", line 58, in connect_via_token_auth\n  File \"/tmp/ansible_f5networks.f5_modules.bigip_pool_member_payload_by8bq2oe/ansible_f5networks.f5_modules.bigip_pool_member_payload.zip/ansible_collections/f5networks/f5_modules/plugins/module_utils/icontrol.py\", line 238, in post\n  File \"/tmp/ansible_f5networks.f5_modules.bigip_pool_member_payload_by8bq2oe/ansible_f5networks.f5_modules.bigip_pool_member_payload.zip/ansible_collections/f5networks/f5_modules/plugins/module_utils/icontrol.py\", line 193, in send\n  File \"/tmp/ansible_f5networks.f5_modules.bigip_pool_member_payload_by8bq2oe/ansible_f5networks.f5_modules.bigip_pool_member_payload.zip/ansible/module_utils/urls.py\", line 1294, in open\n  File \"/usr/lib/python3.6/urllib/request.py\", line 223, in urlopen\n    return opener.open(url, data, timeout)\n  File \"/usr/lib/python3.6/urllib/request.py\", line 526, in open\n    response = self._open(req, data)\n  File \"/usr/lib/python3.6/urllib/request.py\", line 544, in _open\n    '_open', req)\n  File \"/usr/lib/python3.6/urllib/request.py\", line 504, in _call_chain\n    result = func(*args)\n  File \"/tmp/ansible_f5networks.f5_modules.bigip_pool_member_payload_by8bq2oe/ansible_f5networks.f5_modules.bigip_pool_member_payload.zip/ansible/module_utils/urls.py\", line 467, in https_open\n  File \"/usr/lib/python3.6/urllib/request.py\", line 1320, in do_open\n    raise URLError(err)\nurllib.error.URLError: <urlopen error [SSL: WRONG_VERSION_NUMBER] wrong version number (_ssl.c:852)>\n",
    "module_stdout": "",
    "msg": "MODULE FAILURE\nSee stdout/stderr for the exact error",
    "rc": 1
}

Best regards

wojtek0806 commented 4 years ago

only command module supports CLI, all other modules use REST, working as intended

grimlokason commented 4 years ago

So there is an issue in the documentation since https://docs.ansible.com/ansible/latest/modules/bigip_device_info_module.html and https://docs.ansible.com/ansible/latest/modules/bigip_pool_member_module.html for exemple mention the ssh_keyfile and transport type.

Best regards,