Browse Source

Merge pull request #496 from kwoodson/zbxsetup

Playbook for updating users during zabbix setup.
Matt Woodson 9 years ago
parent
commit
2f5486c717
2 changed files with 40 additions and 4 deletions
  1. 31 0
      playbooks/adhoc/zabbix_setup/create_user.yml
  2. 9 4
      roles/os_zabbix/library/zbx_user.py

+ 31 - 0
playbooks/adhoc/zabbix_setup/create_user.yml

@@ -0,0 +1,31 @@
+---
+# export PYTHONPATH='/usr/lib/python2.7/site-packages/:/home/kwoodson/git/openshift-tools'
+# ansible-playbook -e 'cli_password=zabbix' -e 'cli_new_password=new-zabbix' create_user.yml
+- hosts: localhost
+  gather_facts: no
+  vars_files:
+  - vars/template_heartbeat.yml
+  - vars/template_os_linux.yml
+  vars:
+    g_zserver: http://localhost/zabbix/api_jsonrpc.php
+    g_zuser: admin
+    g_zpassword: "{{ cli_password }}"
+  roles:
+  - ../../../roles/os_zabbix
+  post_tasks:
+  - zbx_user:
+      server: "{{ g_zserver }}"
+      user: "{{ g_zuser }}"
+      password: "{{ g_zpassword }}"
+      state: list
+    register: users
+
+  - debug: var=users
+
+  - name: Update zabbix creds for admin
+    zbx_user:
+      server: "{{ g_zserver }}"
+      user: "{{ g_zuser }}"
+      password: "{{ g_zpassword }}"
+      alias: Admin
+      passwd: "{{ cli_new_password | default(g_zpassword, true) }}"

+ 9 - 4
roles/os_zabbix/library/zbx_user.py

@@ -54,13 +54,15 @@ def get_usergroups(zapi, usergroups):
         if content['result']:
             ugroups.append({'usrgrpid': content['result'][0]['usrgrpid']})
 
-    return ugroups
-
+    return ugroups or None
 
 def get_usertype(user_type):
     '''
     Determine zabbix user account type
     '''
+    if not user_type:
+        return None
+
     utype = 1
     if 'super' in user_type:
         utype = 3
@@ -84,9 +86,9 @@ def main():
             alias=dict(default=None, type='str'),
             name=dict(default=None, type='str'),
             surname=dict(default=None, type='str'),
-            user_type=dict(default='user', type='str'),
+            user_type=dict(default=None, type='str'),
             passwd=dict(default=None, type='str'),
-            usergroups=dict(default=None, type='list'),
+            usergroups=dict(default=[], type='list'),
             debug=dict(default=False, type='bool'),
             state=dict(default='present', type='str'),
         ),
@@ -129,6 +131,9 @@ def main():
                   'type': get_usertype(module.params['user_type']),
                  }
 
+        # Remove any None valued params
+        _ = [params.pop(key, None) for key in params.keys() if params[key] is None]
+
         if not exists(content):
             # if we didn't find it, create it
             content = zapi.get_content(zbx_class_name, 'create', params)