Ad Widget

Collapse

Create a host with snmp interface via api/ansible mudule "zabbix_host"

Collapse
X
 
  • Time
  • Show
Clear All
new posts
  • vonlo
    Junior Member
    • Jun 2020
    • 5

    #1

    Create a host with snmp interface via api/ansible mudule "zabbix_host"

    Hello,
    I have a problem creating hosts with ansible (see https://docs.ansible.com/ansible/lat...st_module.html ) when I set the interface type to 2 (snmp). It works fine with the other types. I guess zabbix wants some more details like snmp version and community ( https://www.zabbix.com/documentation...terface/object ). Can anyone help me setting these in my playbook?

    My playbook:
    ---
    - hosts: test
    vars_files:
    - "../vars/zabbix_vars.yml"
    tasks:
    - name: "create host on zabbix server"
    local_action:
    module: zabbix_host
    server_url: "{{ zabbix_server_url }}"
    login_user: "{{ zabbix_user }}"
    login_password: "{{ zabbix_pw }}"
    host_name: test123
    interfaces:
    - type: 2
    ip: 10.0.0.1
    main: 1
    useip: 1
    dns: ""
    status: disabled
    state: present
    host_groups:
    - Networking Hardware
    And here the error:
    fatal: [test_centos8_4]: FAILED! => {"changed": false, "msg": "Failed to create host test123: ('Error -32602: Invalid params., Incorrect arguments passed to function. while sending {"jsonrpc": "2.0", "method": "host.create", "params": {"host": "test123", "interfaces": [{"type": 2, "ip": "10.0.0.1", "main": 1, "useip": 1, "dns": "", "port": "161"}], "groups": [{"groupid": "16"}], "status": 1, "tls_connect": 1, "tls_accept": 1}, "auth": "ebasdadadadasdasdadsadad", "id": 4}', -32602)"}
    Zabbix Server 5.0.0
    ansible 2.9.10
    zabbix-api 0.5.4
  • AlexSwan
    Junior Member
    • Jul 2020
    • 2

    #2
    Hi, vonlo!
    Got same problem. All parameters are looks good.
    Have you found the way to solve it or a workaround?

    Comment

    • Nes-U
      Junior Member
      • Jul 2018
      • 1

      #3
      Can you try this :

      ---
      - hosts: test
      vars_files:
      - "../vars/zabbix_vars.yml"
      tasks:
      - name: "create host on zabbix server"
      local_action:
      module: zabbix_host
      server_url: "{{ zabbix_server_url }}"
      login_user: "{{ zabbix_user }}"
      login_password: "{{ zabbix_pw }}"
      host_name: test123
      interfaces:
      - type: 2
      ip: 10.0.0.1
      main: 1
      useip: 1
      dns: ""
      details:
      version: 2
      bulk: 1
      community: your_snmp_community

      status: disabled
      state: present
      host_groups:
      - Networking Hardware

      Comment

      • AlexSwan
        Junior Member
        • Jul 2020
        • 2

        #4
        Got same error. I suppose something wrong with SNMP interface creation. All other interface types was created successfully.

        Code:
        [FONT=Calibri][COLOR=#1f497d]<localhost> ESTABLISH LOCAL CONNECTION FOR USER: awx[/COLOR][/FONT]
        [FONT=Calibri][COLOR=#1f497d]<localhost> EXEC /bin/sh -c 'echo ~awx && sleep 0'[/COLOR][/FONT]
        [FONT=Calibri][COLOR=#1f497d]<localhost> EXEC /bin/sh -c '( umask 77 && mkdir -p "` echo /home/awx/.ansible/tmp `"&& mkdir /home/awx/.ansible/tmp/ansible-tmp-1595602691.25-12384-160650177228842 && echo ansible-tmp-1595602691.25-12384-160650177228842="` echo /home/awx/.ansible/tmp/ansible-tmp-1595602691.25-12384-160650177228842 `" ) && sleep 0'[/COLOR][/FONT]
        [FONT=Calibri][COLOR=#1f497d]Using module file /usr/lib/python2.7/dist-packages/ansible/modules/monitoring/zabbix/zabbix_host.py[/COLOR][/FONT]
        [FONT=Calibri][COLOR=#1f497d]<localhost> PUT /home/awx/.ansible/tmp/ansible-local-12364Qize0G/tmpebL2GN TO /home/awx/.ansible/tmp/ansible-tmp-1595602691.25-12384-160650177228842/AnsiballZ_zabbix_host.py[/COLOR][/FONT]
        [FONT=Calibri][COLOR=#1f497d]<localhost> EXEC /bin/sh -c 'chmod u+x /home/awx/.ansible/tmp/ansible-tmp-1595602691.25-12384-160650177228842/ /home/awx/.ansible/tmp/ansible-tmp-1595602691.25-12384-160650177228842/AnsiballZ_zabbix_host.py && sleep 0'[/COLOR][/FONT]
        [FONT=Calibri][COLOR=#1f497d]<localhost> EXEC /bin/sh -c '/usr/bin/python2 /home/awx/.ansible/tmp/ansible-tmp-1595602691.25-12384-160650177228842/AnsiballZ_zabbix_host.py && sleep 0'[/COLOR][/FONT]
        [FONT=Calibri][COLOR=#1f497d]<localhost> EXEC /bin/sh -c 'rm -f -r /home/awx/.ansible/tmp/ansible-tmp-1595602691.25-12384-160650177228842/ > /dev/null 2>&1 && sleep 0'[/COLOR][/FONT]
        [FONT=Calibri][COLOR=#1f497d]The full traceback is:[/COLOR][/FONT]
        [FONT=Calibri][COLOR=#1f497d]WARNING: The below traceback may *not* be related to the actual failure.[/COLOR][/FONT]
        [FONT=Calibri][COLOR=#1f497d]File "/tmp/ansible_********_host_payload_Pioif3/ansible_********_host_payload.zip/ansible/modules/monitoring/********/********_host.py", line 378, in add_host[/COLOR][/FONT]
        [FONT=Calibri][COLOR=#1f497d]File "/usr/local/lib/python2.7/dist-packages/********_api.py", line 341, in method[/COLOR][/FONT]
        [FONT=Calibri][COLOR=#1f497d]return self.universal("%s.%s" % (self.data["prefix"], name), opts[0])[/COLOR][/FONT]
        [FONT=Calibri][COLOR=#1f497d]File "/usr/local/lib/python2.7/dist-packages/********_api.py", line 79, in wrapper[/COLOR][/FONT]
        [FONT=Calibri][COLOR=#1f497d]return self.do_request(self.json_obj(method, opts))['result'][/COLOR][/FONT]
        [FONT=Calibri][COLOR=#1f497d]File "/usr/local/lib/python2.7/dist-packages/********_api.py", line 348, in do_request[/COLOR][/FONT]
        [FONT=Calibri][COLOR=#1f497d]return self.parent.do_request(req)[/COLOR][/FONT]
        [FONT=Calibri][COLOR=#1f497d]File "/usr/local/lib/python2.7/dist-packages/********_api.py", line 299, in do_request[/COLOR][/FONT]
        [FONT=Calibri][COLOR=#1f497d]raise ZabbixAPIException(msg, jobj['error']['code'])[/COLOR][/FONT]
        [FONT=Calibri][COLOR=#1f497d]fatal: [zabbix5-test.dotserv.ru]: FAILED! => {[/COLOR][/FONT]
        [FONT=Calibri][COLOR=#1f497d]"changed": false,[/COLOR][/FONT]
        [FONT=Calibri][COLOR=#1f497d]"invocation": {[/COLOR][/FONT]
        [FONT=Calibri][COLOR=#1f497d]"module_args": {[/COLOR][/FONT]
        [FONT=Calibri][COLOR=#1f497d]"ca_cert": null,[/COLOR][/FONT]
        [FONT=Calibri][COLOR=#1f497d]"description": null,[/COLOR][/FONT]
        [FONT=Calibri][COLOR=#1f497d]"force": true,[/COLOR][/FONT]
        [FONT=Calibri][COLOR=#1f497d]"host_groups": [[/COLOR][/FONT]
        [FONT=Calibri][COLOR=#1f497d]"Linux"[/COLOR][/FONT]
        [FONT=Calibri][COLOR=#1f497d]],[/COLOR][/FONT]
        [FONT=Calibri][COLOR=#1f497d]"host_name": "test123",[/COLOR][/FONT]
        [FONT=Calibri][COLOR=#1f497d]"http_login_password": null,[/COLOR][/FONT]
        [FONT=Calibri][COLOR=#1f497d]"http_login_user": null,[/COLOR][/FONT]
        [FONT=Calibri][COLOR=#1f497d]"interfaces": [[/COLOR][/FONT]
        [FONT=Calibri][COLOR=#1f497d]{[/COLOR][/FONT]
        [FONT=Calibri][COLOR=#1f497d]"bulk": 1,[/COLOR][/FONT]
        [FONT=Calibri][COLOR=#1f497d]"community": "public",[/COLOR][/FONT]
        [FONT=Calibri][COLOR=#1f497d]"details": null,[/COLOR][/FONT]
        [FONT=Calibri][COLOR=#1f497d]"dns": "",[/COLOR][/FONT]
        [FONT=Calibri][COLOR=#1f497d]"ip": "10.0.0.1",[/COLOR][/FONT]
        [FONT=Calibri][COLOR=#1f497d]"main": 1,[/COLOR][/FONT]
        [FONT=Calibri][COLOR=#1f497d]"port": "161",[/COLOR][/FONT]
        [FONT=Calibri][COLOR=#1f497d]"state": "present",[/COLOR][/FONT]
        [FONT=Calibri][COLOR=#1f497d]"status": "disabled",[/COLOR][/FONT]
        [FONT=Calibri][COLOR=#1f497d]"type": 2,[/COLOR][/FONT]
        [FONT=Calibri][COLOR=#1f497d]"useip": 1,[/COLOR][/FONT]
        [FONT=Calibri][COLOR=#1f497d]"version": 2[/COLOR][/FONT]
        [FONT=Calibri][COLOR=#1f497d]}[/COLOR][/FONT]
        [FONT=Calibri][COLOR=#1f497d]],[/COLOR][/FONT]
        [FONT=Calibri][COLOR=#1f497d]"inventory_mode": null,[/COLOR][/FONT]
        [FONT=Calibri][COLOR=#1f497d]"inventory_zabbix": null,[/COLOR][/FONT]
        [FONT=Calibri][COLOR=#1f497d]"ipmi_authtype": null,[/COLOR][/FONT]
        [FONT=Calibri][COLOR=#1f497d]"ipmi_password": null,[/COLOR][/FONT]
        [FONT=Calibri][COLOR=#1f497d]"ipmi_privilege": null,[/COLOR][/FONT]
        [FONT=Calibri][COLOR=#1f497d]"ipmi_username": null,[/COLOR][/FONT]
        [FONT=Calibri][COLOR=#1f497d]"link_templates": null,[/COLOR][/FONT]
        [FONT=Calibri][COLOR=#1f497d]"login_password": "VALUE_SPECIFIED_IN_NO_LOG_PARAMETER",[/COLOR][/FONT]
        [FONT=Calibri][COLOR=#1f497d]"login_user": "Admin",[/COLOR][/FONT]
        [FONT=Calibri][COLOR=#1f497d]"proxy": null,[/COLOR][/FONT]
        [FONT=Calibri][COLOR=#1f497d]"server_url": "[URL]http://test-zbx5[/URL]",[/COLOR][/FONT]
        [FONT=Calibri][COLOR=#1f497d]"state": "present",[/COLOR][/FONT]
        [FONT=Calibri][COLOR=#1f497d]"status": "enabled",[/COLOR][/FONT]
        [FONT=Calibri][COLOR=#1f497d]"timeout": 10,[/COLOR][/FONT]
        [FONT=Calibri][COLOR=#1f497d]"tls_accept": 1,[/COLOR][/FONT]
        [FONT=Calibri][COLOR=#1f497d]"tls_connect": 1,[/COLOR][/FONT]
        [FONT=Calibri][COLOR=#1f497d]"tls_psk": null,[/COLOR][/FONT]
        [FONT=Calibri][COLOR=#1f497d]"tls_psk_identity": null,[/COLOR][/FONT]
        [FONT=Calibri][COLOR=#1f497d]"tls_subject": null,[/COLOR][/FONT]
        [FONT=Calibri][COLOR=#1f497d]"validate_certs": false,[/COLOR][/FONT]
        [FONT=Calibri][COLOR=#1f497d]"visible_name": null[/COLOR][/FONT]
        [FONT=Calibri][COLOR=#1f497d]}[/COLOR][/FONT]
        [FONT=Calibri][COLOR=#1f497d]},[/COLOR][/FONT]
        [FONT=Calibri][COLOR=#1f497d]"msg": "Failed to create host test123: (u'Error -32602: Invalid params., Incorrect arguments passed to function. while sending {"params": {"status": 0, "interfaces": [{"status": "disabled", "ip": "10.0.0.1", "useip": 1, "community": "public", "bulk": 1, "state": "present", "version": 2, "details": null, "dns": "", "main": 1, "type": 2, "port": "161"}], "tls_connect": 1, "tls_accept": 1, "host": "test123", "groups": [{"groupid": "17"}]}, "jsonrpc": "2.0", "method": "host.create", "auth": "6327c28a30643b80daeabad2424ceff7", "id": 4}', -32602)"[/COLOR][/FONT]

        Comment

        • vonlo
          Junior Member
          • Jun 2020
          • 5

          #5
          Hi,
          I got it working with this:

          interfaces:
          - type: 2
          main: 1
          useip: 1
          ip: "{{ primary_ip4 }}"
          dns: ""
          details:
          version: "{{ snmp_version }}"
          bulk: 1
          community: "{{ snmp_community }}"

          Comment

          Working...