From a2e27c5925954ce04fca9c891099a6146a418222 Mon Sep 17 00:00:00 2001
From: Diego Castro <spinolacastro@gmail.com>
Date: Thu, 13 Aug 2015 12:19:20 -0300
Subject: Configure cluster metrics

Playbook based on
https://docs.openshift.org/latest/admin_guide/cluster_metrics.html.
---
 playbooks/common/openshift-master/config.yml | 2 ++
 1 file changed, 2 insertions(+)

(limited to 'playbooks')

diff --git a/playbooks/common/openshift-master/config.yml b/playbooks/common/openshift-master/config.yml
index 904ad2dab..acf85fc04 100644
--- a/playbooks/common/openshift-master/config.yml
+++ b/playbooks/common/openshift-master/config.yml
@@ -215,6 +215,8 @@
   - role: openshift_master_cluster
     when: openshift_master_ha | bool
   - openshift_examples
+  - role: openshift_cluster_metrics
+    when: openshift.common.use_cluster_metrics | bool
 
 # Additional instance config for online deployments
 - name: Additional instance config
-- 
cgit v1.2.3


From b9606a11fe875d9151a0238bc45f149e1cbe819c Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?L=C3=A9na=C3=AFc=20Huard?= <lhuard@amadeus.com>
Date: Mon, 17 Aug 2015 10:43:49 +0200
Subject: Properly pass the "external network" option to the HEAT template

Fixes #471
---
 .../openshift-cluster/files/heat_stack.yaml        | 42 ++++++++++++----------
 playbooks/openstack/openshift-cluster/launch.yml   | 33 ++++++-----------
 .../tasks/configure_openstack.yml                  | 27 --------------
 playbooks/openstack/openshift-cluster/vars.yml     |  8 ++---
 4 files changed, 37 insertions(+), 73 deletions(-)
 delete mode 100644 playbooks/openstack/openshift-cluster/tasks/configure_openstack.yml

(limited to 'playbooks')

diff --git a/playbooks/openstack/openshift-cluster/files/heat_stack.yaml b/playbooks/openstack/openshift-cluster/files/heat_stack.yaml
index d53884e0d..40e4ab22c 100644
--- a/playbooks/openstack/openshift-cluster/files/heat_stack.yaml
+++ b/playbooks/openstack/openshift-cluster/files/heat_stack.yaml
@@ -9,21 +9,6 @@ parameters:
     label: Cluster ID
     description: Identifier of the cluster
 
-  num_masters:
-    type: number
-    label: Number of masters
-    description: Number of masters
-
-  num_nodes:
-    type: number
-    label: Number of compute nodes
-    description: Number of compute nodes
-
-  num_infra:
-    type: number
-    label: Number of infrastructure nodes
-    description: Number of infrastructure nodes
-
   cidr:
     type: string
     label: CIDR
@@ -40,6 +25,12 @@ parameters:
     description: Name of the external network
     default: external
 
+  floating_ip_pool:
+    type: string
+    label: Floating IP pool
+    description: Floating IP pools
+    default: external
+
   ssh_public_key:
     type: string
     label: SSH public key
@@ -52,6 +43,21 @@ parameters:
     description: Source of legitimate ssh connections
     default: 0.0.0.0/0
 
+  num_masters:
+    type: number
+    label: Number of masters
+    description: Number of masters
+
+  num_nodes:
+    type: number
+    label: Number of compute nodes
+    description: Number of compute nodes
+
+  num_infra:
+    type: number
+    label: Number of infrastructure nodes
+    description: Number of infrastructure nodes
+
   master_image:
     type: string
     label: Master image
@@ -290,7 +296,7 @@ resources:
           subnet:     { get_resource: subnet }
           secgrp:
             - { get_resource: master-secgrp }
-          floating_network: { get_param: external_net }
+          floating_network: { get_param: floating_ip_pool }
           net_name:
             str_replace:
               template: openshift-ansible-cluster_id-net
@@ -322,7 +328,7 @@ resources:
           subnet:     { get_resource: subnet }
           secgrp:
             - { get_resource: node-secgrp }
-          floating_network: { get_param: external_net }
+          floating_network: { get_param: floating_ip_pool }
           net_name:
             str_replace:
               template: openshift-ansible-cluster_id-net
@@ -355,7 +361,7 @@ resources:
           secgrp:
             - { get_resource: node-secgrp }
             - { get_resource: infra-secgrp }
-          floating_network: { get_param: external_net }
+          floating_network: { get_param: floating_ip_pool }
           net_name:
             str_replace:
               template: openshift-ansible-cluster_id-net
diff --git a/playbooks/openstack/openshift-cluster/launch.yml b/playbooks/openstack/openshift-cluster/launch.yml
index d36bdbf26..651aef40b 100644
--- a/playbooks/openstack/openshift-cluster/launch.yml
+++ b/playbooks/openstack/openshift-cluster/launch.yml
@@ -19,30 +19,21 @@
     changed_when: false
     failed_when: stack_show_result.rc != 0 and 'Stack not found' not in stack_show_result.stderr
 
-  - name: Create OpenStack Stack
-    command: 'heat stack-create -f {{ openstack_infra_heat_stack }}
-             -P cluster_id={{ cluster_id }}
-             -P dns_nameservers={{ openstack_network_dns | join(",") }}
-             -P cidr={{ openstack_network_cidr }}
-             -P ssh_incoming={{ openstack_ssh_access_from }}
-             -P num_masters={{ num_masters }}
-             -P num_nodes={{ num_nodes }}
-             -P num_infra={{ num_infra }}
-             -P master_image={{ deployment_vars[deployment_type].image }}
-             -P node_image={{ deployment_vars[deployment_type].image }}
-             -P infra_image={{ deployment_vars[deployment_type].image }}
-             -P master_flavor={{ openstack_flavor["master"] }}
-             -P node_flavor={{ openstack_flavor["node"] }}
-             -P infra_flavor={{ openstack_flavor["infra"] }}
-             -P ssh_public_key="{{ openstack_ssh_public_key }}"
-             openshift-ansible-{{ cluster_id }}-stack'
+  - set_fact:
+      heat_stack_action: 'stack-create'
     when: stack_show_result.rc == 1
+  - set_fact:
+      heat_stack_action: 'stack-update'
+    when: stack_show_result.rc == 0
 
-  - name: Update OpenStack Stack
-    command: 'heat stack-update -f {{ openstack_infra_heat_stack }}
+  - name: Create or Update OpenStack Stack
+    command: 'heat {{ heat_stack_action }} -f {{ openstack_infra_heat_stack }}
              -P cluster_id={{ cluster_id }}
-             -P dns_nameservers={{ openstack_network_dns | join(",") }}
              -P cidr={{ openstack_network_cidr }}
+             -P dns_nameservers={{ openstack_network_dns | join(",") }}
+             -P external_net={{ openstack_network_external_net }}
+             -P floating_ip_pool={{ openstack_floating_ip_pool }}
+             -P ssh_public_key="{{ openstack_ssh_public_key }}"
              -P ssh_incoming={{ openstack_ssh_access_from }}
              -P num_masters={{ num_masters }}
              -P num_nodes={{ num_nodes }}
@@ -53,9 +44,7 @@
              -P master_flavor={{ openstack_flavor["master"] }}
              -P node_flavor={{ openstack_flavor["node"] }}
              -P infra_flavor={{ openstack_flavor["infra"] }}
-             -P ssh_public_key="{{ openstack_ssh_public_key }}"
              openshift-ansible-{{ cluster_id }}-stack'
-    when: stack_show_result.rc == 0
 
   - name: Wait for OpenStack Stack readiness
     shell: 'heat stack-show openshift-ansible-{{ cluster_id }}-stack | awk ''$2 == "stack_status" {print $4}'''
diff --git a/playbooks/openstack/openshift-cluster/tasks/configure_openstack.yml b/playbooks/openstack/openshift-cluster/tasks/configure_openstack.yml
deleted file mode 100644
index 2cbdb4805..000000000
--- a/playbooks/openstack/openshift-cluster/tasks/configure_openstack.yml
+++ /dev/null
@@ -1,27 +0,0 @@
----
-- name: Check infra
-  command: 'heat stack-show {{ openstack_network_prefix }}-stack'
-  register: stack_show_result
-  changed_when: false
-  failed_when: stack_show_result.rc != 0 and 'Stack not found' not in stack_show_result.stderr
-
-- name: Create infra
-  command: 'heat stack-create -f {{ openstack_infra_heat_stack }} -P cluster-id={{ cluster_id }} -P network-prefix={{ openstack_network_prefix }} -P dns-nameservers={{ openstack_network_dns | join(",") }} -P cidr={{ openstack_network_cidr }} -P ssh-incoming={{ openstack_ssh_access_from }} {{ openstack_network_prefix }}-stack'
-  when: stack_show_result.rc == 1
-
-- name: Update infra
-  command: 'heat stack-update -f {{ openstack_infra_heat_stack }} -P cluster-id={{ cluster_id }} -P network-prefix={{ openstack_network_prefix }} -P dns-nameservers={{ openstack_network_dns | join(",") }} -P cidr={{ openstack_network_cidr }} -P ssh-incoming={{ openstack_ssh_access_from }} {{ openstack_network_prefix }}-stack'
-  when: stack_show_result.rc == 0
-
-- name: Wait for infra readiness
-  shell: 'heat stack-show {{ openstack_network_prefix }}-stack | awk ''$2 == "stack_status" {print $4}'''
-  register: stack_show_status_result
-  until: stack_show_status_result.stdout not in ['CREATE_IN_PROGRESS', 'UPDATE_IN_PROGRESS']
-  retries: 30
-  delay: 1
-  failed_when: stack_show_status_result.stdout not in ['CREATE_COMPLETE', 'UPDATE_COMPLETE']
-
-- name: Create ssh keypair
-  nova_keypair:
-    name: "{{ openstack_ssh_keypair }}"
-    public_key: "{{ openstack_ssh_public_key }}"
diff --git a/playbooks/openstack/openshift-cluster/vars.yml b/playbooks/openstack/openshift-cluster/vars.yml
index 43e25f2e6..262d3f4ed 100644
--- a/playbooks/openstack/openshift-cluster/vars.yml
+++ b/playbooks/openstack/openshift-cluster/vars.yml
@@ -1,18 +1,14 @@
 ---
 openstack_infra_heat_stack:     "{{ lookup('oo_option', 'infra_heat_stack' ) |
                                     default('files/heat_stack.yaml',         True) }}"
-openstack_network_prefix:       "{{ lookup('oo_option', 'network_prefix'   ) |
-                                    default('openshift-ansible-'+cluster_id, True) }}"
 openstack_network_cidr:         "{{ lookup('oo_option', 'net_cidr'         ) |
                                     default('192.168.' + ( ( 1048576 | random % 256 ) | string() ) + '.0/24', True) }}"
 openstack_network_external_net: "{{ lookup('oo_option', 'external_net'     ) |
                                     default('external',                      True) }}"
-openstack_floating_ip_pools:    "{{ lookup('oo_option', 'floating_ip_pools') |
-                                    default('external',                      True) | oo_split() }}"
+openstack_floating_ip_pool:     "{{ lookup('oo_option', 'floating_ip_pool' ) |
+                                    default('external',                      True) }}"
 openstack_network_dns:          "{{ lookup('oo_option', 'dns'              ) |
                                     default('8.8.8.8,8.8.4.4',               True) | oo_split() }}"
-openstack_ssh_keypair:          "{{ lookup('oo_option', 'keypair'          ) |
-                                    default(lookup('env', 'LOGNAME')+'_key', True) }}"
 openstack_ssh_public_key:       "{{ lookup('file', lookup('oo_option', 'public_key') |
                                     default('~/.ssh/id_rsa.pub',             True)) }}"
 openstack_ssh_access_from:      "{{ lookup('oo_option', 'ssh_from')          |
-- 
cgit v1.2.3


From ced2ad4551632d93d6a17391913effefe67607b4 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?L=C3=A9na=C3=AFc=20Huard?= <lhuard@amadeus.com>
Date: Tue, 25 Aug 2015 17:04:02 +0200
Subject: Add etcd nodes management in libvirt

---
 playbooks/libvirt/openshift-cluster/launch.yml                 | 8 ++++++++
 playbooks/libvirt/openshift-cluster/tasks/launch_instances.yml | 5 +++--
 2 files changed, 11 insertions(+), 2 deletions(-)

(limited to 'playbooks')

diff --git a/playbooks/libvirt/openshift-cluster/launch.yml b/playbooks/libvirt/openshift-cluster/launch.yml
index 830f9d216..d3e768de5 100644
--- a/playbooks/libvirt/openshift-cluster/launch.yml
+++ b/playbooks/libvirt/openshift-cluster/launch.yml
@@ -17,6 +17,14 @@
 
   - include: tasks/configure_libvirt.yml
 
+  - include: ../../common/openshift-cluster/set_etcd_launch_facts_tasks.yml
+  - include: tasks/launch_instances.yml
+    vars:
+      instances: "{{ etcd_names }}"
+      cluster: "{{ cluster_id }}"
+      type: "{{ k8s_type }}"
+      g_sub_host_type: "default"
+
   - include: ../../common/openshift-cluster/set_master_launch_facts_tasks.yml
   - include: tasks/launch_instances.yml
     vars:
diff --git a/playbooks/libvirt/openshift-cluster/tasks/launch_instances.yml b/playbooks/libvirt/openshift-cluster/tasks/launch_instances.yml
index 4cb494056..2a0c90b46 100644
--- a/playbooks/libvirt/openshift-cluster/tasks/launch_instances.yml
+++ b/playbooks/libvirt/openshift-cluster/tasks/launch_instances.yml
@@ -63,8 +63,9 @@
   shell: 'virsh -c {{ libvirt_uri }} net-dhcp-leases openshift-ansible | egrep -c ''{{ instances | join("|") }}'''
   register: nb_allocated_ips
   until: nb_allocated_ips.stdout == '{{ instances | length }}'
-  retries: 30
+  retries: 60
   delay: 1
+  when: instances | length != 0
 
 - name: Collect IP addresses of the VMs
   shell: 'virsh -c {{ libvirt_uri }} net-dhcp-leases openshift-ansible | awk ''$6 == "{{ item }}" {gsub(/\/.*/, "", $5); print $5}'''
@@ -72,7 +73,7 @@
   with_items: instances
 
 - set_fact:
-    ips: "{{ scratch_ip.results | oo_collect('stdout') }}"
+    ips: "{{ scratch_ip.results | default([]) | oo_collect('stdout') }}"
 
 - name: Add new instances
   add_host:
-- 
cgit v1.2.3


From 245bf785df17941e851e2ac7d3916e1159ddff23 Mon Sep 17 00:00:00 2001
From: Wesley Hearn <whearn@redhat.com>
Date: Tue, 25 Aug 2015 17:22:39 -0400
Subject: Set node labels for AWS hosts

---
 playbooks/aws/openshift-cluster/tasks/launch_instances.yml | 13 +++++++++++++
 1 file changed, 13 insertions(+)

(limited to 'playbooks')

diff --git a/playbooks/aws/openshift-cluster/tasks/launch_instances.yml b/playbooks/aws/openshift-cluster/tasks/launch_instances.yml
index 236d84e74..e9ebc3e02 100644
--- a/playbooks/aws/openshift-cluster/tasks/launch_instances.yml
+++ b/playbooks/aws/openshift-cluster/tasks/launch_instances.yml
@@ -147,6 +147,18 @@
                     tag_host-type_{{ host_type }}, tag_env-host-type_{{ env_host_type }},
                     tag_sub-host-type_{{ sub_host_type }}"
 
+- set_fact:
+    node_label:
+      region: "{{ec2_region}}"
+      type: "{{sub_host_type}}"
+  when: host_type == "node"
+
+- set_fact:
+    node_label:
+      region: "{{ec2_region}}"
+      type: "{{host_type}}"
+  when: host_type != "node"
+
 - name: Add new instances groups and variables
   add_host:
     hostname: "{{ item.0 }}"
@@ -156,6 +168,7 @@
     groups: "{{ instance_groups }}"
     ec2_private_ip_address: "{{ item.1.private_ip }}"
     ec2_ip_address: "{{ item.1.public_ip }}"
+    openshift_node_labels: "{{ node_label }}"
   with_together:
   - instances
   - ec2.instances
-- 
cgit v1.2.3


From 3012985b20e44c0ca4f7cce5a70926f518ec19c5 Mon Sep 17 00:00:00 2001
From: Kenny Woodson <kwoodson@redhat.com>
Date: Fri, 21 Aug 2015 17:44:30 -0400
Subject: Updates for zbx ans module

---
 playbooks/adhoc/zabbix_setup/clean_zabbix.yml      | 51 ------------
 playbooks/adhoc/zabbix_setup/create_template.yml   | 57 --------------
 playbooks/adhoc/zabbix_setup/create_user.yml       | 31 --------
 playbooks/adhoc/zabbix_setup/filter_plugins        |  1 -
 playbooks/adhoc/zabbix_setup/roles                 |  1 -
 playbooks/adhoc/zabbix_setup/setup_zabbix.yml      | 38 ---------
 .../adhoc/zabbix_setup/vars/template_heartbeat.yml | 11 ---
 .../adhoc/zabbix_setup/vars/template_host.yml      | 27 -------
 .../adhoc/zabbix_setup/vars/template_master.yml    | 27 -------
 .../adhoc/zabbix_setup/vars/template_node.yml      | 27 -------
 .../adhoc/zabbix_setup/vars/template_os_linux.yml  | 90 ----------------------
 .../adhoc/zabbix_setup/vars/template_router.yml    | 27 -------
 12 files changed, 388 deletions(-)
 delete mode 100644 playbooks/adhoc/zabbix_setup/clean_zabbix.yml
 delete mode 100644 playbooks/adhoc/zabbix_setup/create_template.yml
 delete mode 100644 playbooks/adhoc/zabbix_setup/create_user.yml
 delete mode 120000 playbooks/adhoc/zabbix_setup/filter_plugins
 delete mode 120000 playbooks/adhoc/zabbix_setup/roles
 delete mode 100644 playbooks/adhoc/zabbix_setup/setup_zabbix.yml
 delete mode 100644 playbooks/adhoc/zabbix_setup/vars/template_heartbeat.yml
 delete mode 100644 playbooks/adhoc/zabbix_setup/vars/template_host.yml
 delete mode 100644 playbooks/adhoc/zabbix_setup/vars/template_master.yml
 delete mode 100644 playbooks/adhoc/zabbix_setup/vars/template_node.yml
 delete mode 100644 playbooks/adhoc/zabbix_setup/vars/template_os_linux.yml
 delete mode 100644 playbooks/adhoc/zabbix_setup/vars/template_router.yml

(limited to 'playbooks')

diff --git a/playbooks/adhoc/zabbix_setup/clean_zabbix.yml b/playbooks/adhoc/zabbix_setup/clean_zabbix.yml
deleted file mode 100644
index a31cbef65..000000000
--- a/playbooks/adhoc/zabbix_setup/clean_zabbix.yml
+++ /dev/null
@@ -1,51 +0,0 @@
----
-- hosts: localhost
-  gather_facts: no
-  vars:
-    g_zserver: http://localhost/zabbix/api_jsonrpc.php
-    g_zuser: Admin
-    g_zpassword: zabbix
-  roles:
-  - ../../../roles/os_zabbix
-  post_tasks:
-
-  - zbx_template:
-      server: "{{ g_zserver }}"
-      user: "{{ g_zuser }}"
-      password: "{{ g_zpassword }}"
-      state: list
-      name: 'Template Heartbeat'
-    register: templ_heartbeat
-
-  - zbx_template:
-      server: "{{ g_zserver }}"
-      user: "{{ g_zuser }}"
-      password: "{{ g_zpassword }}"
-      state: list
-      name: 'Template App Zabbix Server'
-    register: templ_zabbix_server
-
-  - zbx_template:
-      server: "{{ g_zserver }}"
-      user: "{{ g_zuser }}"
-      password: "{{ g_zpassword }}"
-      state: list
-      name: 'Template App Zabbix Agent'
-    register: templ_zabbix_agent
-
-  - zbx_template:
-      server: "{{ g_zserver }}"
-      user: "{{ g_zuser }}"
-      password: "{{ g_zpassword }}"
-      state: list
-    register: templates
-
-  - debug: var=templ_heartbeat.results
-
-  - zbx_template:
-      server: "{{ g_zserver }}"
-      user: "{{ g_zuser }}"
-      password: "{{ g_zpassword }}"
-      state: absent
-    with_items: "{{ templates.results | difference(templ_zabbix_agent.results) | difference(templ_zabbix_server.results) | oo_collect('host') }}"
-    when:  templ_heartbeat.results | length == 0
diff --git a/playbooks/adhoc/zabbix_setup/create_template.yml b/playbooks/adhoc/zabbix_setup/create_template.yml
deleted file mode 100644
index 50fff53b2..000000000
--- a/playbooks/adhoc/zabbix_setup/create_template.yml
+++ /dev/null
@@ -1,57 +0,0 @@
----
-- debug: var=ctp_template
-
-- name: Create Template
-  zbx_template:
-    server: "{{ ctp_zserver }}"
-    user: "{{ ctp_zuser }}"
-    password: "{{ ctp_zpassword }}"
-    name: "{{ ctp_template.name }}"
-  register: ctp_created_template
-
-- debug: var=ctp_created_template
-
-#- name: Create Application
-#  zbxapi:
-#    server: "{{ ctp_zserver }}"
-#    user: "{{ ctp_zuser }}"
-#    password: "{{ ctp_zpassword }}"
-#    zbx_class: Application
-#    state: present
-#    params:
-#      name: "{{ ctp_template.application.name}}"
-#      hostid: "{{ ctp_created_template.results[0].templateid }}"
-#      search:
-#        name: "{{ ctp_template.application.name}}"
-#  register: ctp_created_application
-
-#- debug: var=ctp_created_application
-
-- name: Create Items
-  zbx_item:
-    server: "{{ ctp_zserver }}"
-    user: "{{ ctp_zuser }}"
-    password: "{{ ctp_zpassword }}"
-    key: "{{ item.key }}"
-    name: "{{ item.name | default(item.key, true) }}"
-    value_type: "{{ item.value_type | default('int') }}"
-    template_name: "{{ ctp_template.name }}"
-  with_items: ctp_template.zitems
-  register: ctp_created_items
-
-#- debug: var=ctp_created_items
-
-- name: Create Triggers
-  zbx_trigger:
-    server: "{{ ctp_zserver }}"
-    user: "{{ ctp_zuser }}"
-    password: "{{ ctp_zpassword }}"
-    description: "{{ item.description }}"
-    expression: "{{ item.expression }}"
-    priority: "{{ item.priority }}"
-  with_items: ctp_template.ztriggers
-  when: ctp_template.ztriggers is defined
-
-#- debug: var=ctp_created_triggers
-
-
diff --git a/playbooks/adhoc/zabbix_setup/create_user.yml b/playbooks/adhoc/zabbix_setup/create_user.yml
deleted file mode 100644
index dd74798b7..000000000
--- a/playbooks/adhoc/zabbix_setup/create_user.yml
+++ /dev/null
@@ -1,31 +0,0 @@
----
-# 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) }}"
diff --git a/playbooks/adhoc/zabbix_setup/filter_plugins b/playbooks/adhoc/zabbix_setup/filter_plugins
deleted file mode 120000
index 99a95e4ca..000000000
--- a/playbooks/adhoc/zabbix_setup/filter_plugins
+++ /dev/null
@@ -1 +0,0 @@
-../../../filter_plugins
\ No newline at end of file
diff --git a/playbooks/adhoc/zabbix_setup/roles b/playbooks/adhoc/zabbix_setup/roles
deleted file mode 120000
index e2b799b9d..000000000
--- a/playbooks/adhoc/zabbix_setup/roles
+++ /dev/null
@@ -1 +0,0 @@
-../../../roles/
\ No newline at end of file
diff --git a/playbooks/adhoc/zabbix_setup/setup_zabbix.yml b/playbooks/adhoc/zabbix_setup/setup_zabbix.yml
deleted file mode 100644
index 1729194b5..000000000
--- a/playbooks/adhoc/zabbix_setup/setup_zabbix.yml
+++ /dev/null
@@ -1,38 +0,0 @@
----
-- 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: zabbix
-  roles:
-  - ../../../roles/os_zabbix
-  post_tasks:
-  - zbx_template:
-      server: "{{ g_zserver }}"
-      user: "{{ g_zuser }}"
-      password: "{{ g_zpassword }}"
-      state: list
-    register: templates
-
-  - debug: var=templates
-
-  - name: Include Template
-    include: create_template.yml
-    vars:
-      ctp_template: "{{ g_template_heartbeat }}"
-      ctp_zserver: "{{ g_zserver }}"
-      ctp_zuser: "{{ g_zuser }}"
-      ctp_zpassword: "{{ g_zpassword }}"
-
-  - name: Include Template
-    include: create_template.yml
-    vars:
-      ctp_template: "{{ g_template_os_linux }}"
-      ctp_zserver: "{{ g_zserver }}"
-      ctp_zuser: "{{ g_zuser }}"
-      ctp_zpassword: "{{ g_zpassword }}"
-
diff --git a/playbooks/adhoc/zabbix_setup/vars/template_heartbeat.yml b/playbooks/adhoc/zabbix_setup/vars/template_heartbeat.yml
deleted file mode 100644
index 22cc75554..000000000
--- a/playbooks/adhoc/zabbix_setup/vars/template_heartbeat.yml
+++ /dev/null
@@ -1,11 +0,0 @@
----
-g_template_heartbeat:
-  name: Template Heartbeat
-  zitems:
-  - name: Heartbeat Ping
-    hostid:
-    key: heartbeat.ping
-  ztriggers:
-  - description: 'Heartbeat.ping has failed on {HOST.NAME}'
-    expression: '{Template Heartbeat:heartbeat.ping.last()}<>0'
-    priority: avg
diff --git a/playbooks/adhoc/zabbix_setup/vars/template_host.yml b/playbooks/adhoc/zabbix_setup/vars/template_host.yml
deleted file mode 100644
index e7cc667cb..000000000
--- a/playbooks/adhoc/zabbix_setup/vars/template_host.yml
+++ /dev/null
@@ -1,27 +0,0 @@
----
-g_template_host:
-  params:
-    name: Template Host
-    host: Template Host
-    groups:
-    - groupid: 1 # FIXME (not real)
-    output: extend
-    search:
-      name: Template Host
-  zitems:
-  - name: Host Ping
-    hostid: 
-    key_: host.ping
-    type: 2
-    value_type: 0
-    output: extend
-    search:
-      key_: host.ping
-  ztriggers:
-  - description: 'Host ping has failed on {HOST.NAME}'
-    expression: '{Template Host:host.ping.last()}<>0'
-    priority: 3
-    searchWildcardsEnabled: True
-    search:
-      description: 'Host ping has failed on*'
-    expandExpression: True
diff --git a/playbooks/adhoc/zabbix_setup/vars/template_master.yml b/playbooks/adhoc/zabbix_setup/vars/template_master.yml
deleted file mode 100644
index 5f9b41a4f..000000000
--- a/playbooks/adhoc/zabbix_setup/vars/template_master.yml
+++ /dev/null
@@ -1,27 +0,0 @@
----
-g_template_master:
-  params:
-    name: Template Master
-    host: Template Master
-    groups:
-    - groupid: 1 # FIXME (not real)
-    output: extend
-    search:
-      name: Template Master
-  zitems:
-  - name: Master Etcd Ping
-    hostid: 
-    key_: master.etcd.ping
-    type: 2
-    value_type: 0
-    output: extend
-    search:
-      key_: master.etcd.ping
-  ztriggers:
-  - description: 'Master Etcd ping has failed on {HOST.NAME}'
-    expression: '{Template Master:master.etcd.ping.last()}<>0'
-    priority: 3
-    searchWildcardsEnabled: True
-    search:
-      description: 'Master Etcd ping has failed on*'
-    expandExpression: True
diff --git a/playbooks/adhoc/zabbix_setup/vars/template_node.yml b/playbooks/adhoc/zabbix_setup/vars/template_node.yml
deleted file mode 100644
index 98c343a24..000000000
--- a/playbooks/adhoc/zabbix_setup/vars/template_node.yml
+++ /dev/null
@@ -1,27 +0,0 @@
----
-g_template_node:
-  params:
-    name: Template Node
-    host: Template Node
-    groups:
-    - groupid: 1 # FIXME (not real)
-    output: extend
-    search:
-      name: Template Node
-  zitems:
-  - name: Kubelet Ping
-    hostid: 
-    key_: kubelet.ping
-    type: 2
-    value_type: 0
-    output: extend
-    search:
-      key_: kubelet.ping
-  ztriggers:
-  - description: 'Kubelet ping has failed on {HOST.NAME}'
-    expression: '{Template Node:kubelet.ping.last()}<>0'
-    priority: 3
-    searchWildcardsEnabled: True
-    search:
-      description: 'Kubelet ping has failed on*'
-    expandExpression: True
diff --git a/playbooks/adhoc/zabbix_setup/vars/template_os_linux.yml b/playbooks/adhoc/zabbix_setup/vars/template_os_linux.yml
deleted file mode 100644
index 9cc038ffa..000000000
--- a/playbooks/adhoc/zabbix_setup/vars/template_os_linux.yml
+++ /dev/null
@@ -1,90 +0,0 @@
----
-g_template_os_linux:
-  name: Template OS Linux
-  zitems:
-  - key: kernel.uname.sysname
-    value_type: string
-
-  - key: kernel.all.cpu.wait.total
-    value_type: int
-
-  - key: kernel.all.cpu.irq.hard
-    value_type: int
-
-  - key: kernel.all.cpu.idle
-    value_type: int
-
-  - key: kernel.uname.distro
-    value_type: string
-
-  - key: kernel.uname.nodename
-    value_type: string
-
-  - key: kernel.all.cpu.irq.soft
-    value_type: int
-
-  - key: kernel.all.load.15_minute
-    value_type: float
-
-  - key: kernel.all.cpu.sys
-    value_type: int
-
-  - key: kernel.all.load.5_minute
-    value_type: float
-
-  - key: mem.freemem
-    value_type: int
-
-  - key: kernel.all.cpu.nice
-    value_type: int
-
-  - key: mem.util.bufmem
-    value_type: int
-
-  - key: swap.used
-    value_type: int
-
-  - key: kernel.all.load.1_minute
-    value_type: float
-
-  - key: kernel.uname.version
-    value_type: string
-
-  - key: swap.length
-    value_type: int
-
-  - key: mem.physmem
-    value_type: int
-
-  - key: kernel.all.uptime
-    value_type: int
-
-  - key: swap.free
-    value_type: int
-
-  - key: mem.util.used
-    value_type: int
-
-  - key: kernel.all.cpu.user
-    value_type: int
-
-  - key: kernel.uname.machine
-    value_type: string
-
-  - key: hinv.ncpu
-    value_type: int
-
-  - key: mem.util.cached
-    value_type: int
-
-  - key: kernel.all.cpu.steal
-    value_type: int
-
-  - key: kernel.all.pswitch
-    value_type: int
-
-  - key: kernel.uname.release
-    value_type: string
-
-  - key: proc.nprocs
-    value_type: int
diff --git a/playbooks/adhoc/zabbix_setup/vars/template_router.yml b/playbooks/adhoc/zabbix_setup/vars/template_router.yml
deleted file mode 100644
index 4dae7da1e..000000000
--- a/playbooks/adhoc/zabbix_setup/vars/template_router.yml
+++ /dev/null
@@ -1,27 +0,0 @@
----
-g_template_router:
-  params:
-    name: Template Router
-    host: Template Router
-    groups:
-    - groupid: 1 # FIXME (not real)
-    output: extend
-    search:
-      name: Template Router
-  zitems:
-  - name: Router Backends down
-    hostid: 
-    key_: router.backends.down
-    type: 2
-    value_type: 0
-    output: extend
-    search:
-      key_: router.backends.down
-  ztriggers:
-  - description: 'Number of router backends down on {HOST.NAME}'
-    expression: '{Template Router:router.backends.down.last()}<>0'
-    priority: 3
-    searchWildcardsEnabled: True
-    search:
-      description: 'Number of router backends down on {HOST.NAME}'
-    expandExpression: True
-- 
cgit v1.2.3


From 91eebb77744753bde5b4b83e7c7634ee47e5b859 Mon Sep 17 00:00:00 2001
From: Kenny Woodson <kwoodson@redhat.com>
Date: Thu, 27 Aug 2015 11:12:42 -0400
Subject: Revert "Zabbix API updates"

---
 playbooks/adhoc/zabbix_setup/clean_zabbix.yml      | 51 ++++++++++++
 playbooks/adhoc/zabbix_setup/create_template.yml   | 57 ++++++++++++++
 playbooks/adhoc/zabbix_setup/create_user.yml       | 31 ++++++++
 playbooks/adhoc/zabbix_setup/filter_plugins        |  1 +
 playbooks/adhoc/zabbix_setup/roles                 |  1 +
 playbooks/adhoc/zabbix_setup/setup_zabbix.yml      | 38 +++++++++
 .../adhoc/zabbix_setup/vars/template_heartbeat.yml | 11 +++
 .../adhoc/zabbix_setup/vars/template_host.yml      | 27 +++++++
 .../adhoc/zabbix_setup/vars/template_master.yml    | 27 +++++++
 .../adhoc/zabbix_setup/vars/template_node.yml      | 27 +++++++
 .../adhoc/zabbix_setup/vars/template_os_linux.yml  | 90 ++++++++++++++++++++++
 .../adhoc/zabbix_setup/vars/template_router.yml    | 27 +++++++
 12 files changed, 388 insertions(+)
 create mode 100644 playbooks/adhoc/zabbix_setup/clean_zabbix.yml
 create mode 100644 playbooks/adhoc/zabbix_setup/create_template.yml
 create mode 100644 playbooks/adhoc/zabbix_setup/create_user.yml
 create mode 120000 playbooks/adhoc/zabbix_setup/filter_plugins
 create mode 120000 playbooks/adhoc/zabbix_setup/roles
 create mode 100644 playbooks/adhoc/zabbix_setup/setup_zabbix.yml
 create mode 100644 playbooks/adhoc/zabbix_setup/vars/template_heartbeat.yml
 create mode 100644 playbooks/adhoc/zabbix_setup/vars/template_host.yml
 create mode 100644 playbooks/adhoc/zabbix_setup/vars/template_master.yml
 create mode 100644 playbooks/adhoc/zabbix_setup/vars/template_node.yml
 create mode 100644 playbooks/adhoc/zabbix_setup/vars/template_os_linux.yml
 create mode 100644 playbooks/adhoc/zabbix_setup/vars/template_router.yml

(limited to 'playbooks')

diff --git a/playbooks/adhoc/zabbix_setup/clean_zabbix.yml b/playbooks/adhoc/zabbix_setup/clean_zabbix.yml
new file mode 100644
index 000000000..a31cbef65
--- /dev/null
+++ b/playbooks/adhoc/zabbix_setup/clean_zabbix.yml
@@ -0,0 +1,51 @@
+---
+- hosts: localhost
+  gather_facts: no
+  vars:
+    g_zserver: http://localhost/zabbix/api_jsonrpc.php
+    g_zuser: Admin
+    g_zpassword: zabbix
+  roles:
+  - ../../../roles/os_zabbix
+  post_tasks:
+
+  - zbx_template:
+      server: "{{ g_zserver }}"
+      user: "{{ g_zuser }}"
+      password: "{{ g_zpassword }}"
+      state: list
+      name: 'Template Heartbeat'
+    register: templ_heartbeat
+
+  - zbx_template:
+      server: "{{ g_zserver }}"
+      user: "{{ g_zuser }}"
+      password: "{{ g_zpassword }}"
+      state: list
+      name: 'Template App Zabbix Server'
+    register: templ_zabbix_server
+
+  - zbx_template:
+      server: "{{ g_zserver }}"
+      user: "{{ g_zuser }}"
+      password: "{{ g_zpassword }}"
+      state: list
+      name: 'Template App Zabbix Agent'
+    register: templ_zabbix_agent
+
+  - zbx_template:
+      server: "{{ g_zserver }}"
+      user: "{{ g_zuser }}"
+      password: "{{ g_zpassword }}"
+      state: list
+    register: templates
+
+  - debug: var=templ_heartbeat.results
+
+  - zbx_template:
+      server: "{{ g_zserver }}"
+      user: "{{ g_zuser }}"
+      password: "{{ g_zpassword }}"
+      state: absent
+    with_items: "{{ templates.results | difference(templ_zabbix_agent.results) | difference(templ_zabbix_server.results) | oo_collect('host') }}"
+    when:  templ_heartbeat.results | length == 0
diff --git a/playbooks/adhoc/zabbix_setup/create_template.yml b/playbooks/adhoc/zabbix_setup/create_template.yml
new file mode 100644
index 000000000..50fff53b2
--- /dev/null
+++ b/playbooks/adhoc/zabbix_setup/create_template.yml
@@ -0,0 +1,57 @@
+---
+- debug: var=ctp_template
+
+- name: Create Template
+  zbx_template:
+    server: "{{ ctp_zserver }}"
+    user: "{{ ctp_zuser }}"
+    password: "{{ ctp_zpassword }}"
+    name: "{{ ctp_template.name }}"
+  register: ctp_created_template
+
+- debug: var=ctp_created_template
+
+#- name: Create Application
+#  zbxapi:
+#    server: "{{ ctp_zserver }}"
+#    user: "{{ ctp_zuser }}"
+#    password: "{{ ctp_zpassword }}"
+#    zbx_class: Application
+#    state: present
+#    params:
+#      name: "{{ ctp_template.application.name}}"
+#      hostid: "{{ ctp_created_template.results[0].templateid }}"
+#      search:
+#        name: "{{ ctp_template.application.name}}"
+#  register: ctp_created_application
+
+#- debug: var=ctp_created_application
+
+- name: Create Items
+  zbx_item:
+    server: "{{ ctp_zserver }}"
+    user: "{{ ctp_zuser }}"
+    password: "{{ ctp_zpassword }}"
+    key: "{{ item.key }}"
+    name: "{{ item.name | default(item.key, true) }}"
+    value_type: "{{ item.value_type | default('int') }}"
+    template_name: "{{ ctp_template.name }}"
+  with_items: ctp_template.zitems
+  register: ctp_created_items
+
+#- debug: var=ctp_created_items
+
+- name: Create Triggers
+  zbx_trigger:
+    server: "{{ ctp_zserver }}"
+    user: "{{ ctp_zuser }}"
+    password: "{{ ctp_zpassword }}"
+    description: "{{ item.description }}"
+    expression: "{{ item.expression }}"
+    priority: "{{ item.priority }}"
+  with_items: ctp_template.ztriggers
+  when: ctp_template.ztriggers is defined
+
+#- debug: var=ctp_created_triggers
+
+
diff --git a/playbooks/adhoc/zabbix_setup/create_user.yml b/playbooks/adhoc/zabbix_setup/create_user.yml
new file mode 100644
index 000000000..dd74798b7
--- /dev/null
+++ b/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) }}"
diff --git a/playbooks/adhoc/zabbix_setup/filter_plugins b/playbooks/adhoc/zabbix_setup/filter_plugins
new file mode 120000
index 000000000..99a95e4ca
--- /dev/null
+++ b/playbooks/adhoc/zabbix_setup/filter_plugins
@@ -0,0 +1 @@
+../../../filter_plugins
\ No newline at end of file
diff --git a/playbooks/adhoc/zabbix_setup/roles b/playbooks/adhoc/zabbix_setup/roles
new file mode 120000
index 000000000..e2b799b9d
--- /dev/null
+++ b/playbooks/adhoc/zabbix_setup/roles
@@ -0,0 +1 @@
+../../../roles/
\ No newline at end of file
diff --git a/playbooks/adhoc/zabbix_setup/setup_zabbix.yml b/playbooks/adhoc/zabbix_setup/setup_zabbix.yml
new file mode 100644
index 000000000..1729194b5
--- /dev/null
+++ b/playbooks/adhoc/zabbix_setup/setup_zabbix.yml
@@ -0,0 +1,38 @@
+---
+- 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: zabbix
+  roles:
+  - ../../../roles/os_zabbix
+  post_tasks:
+  - zbx_template:
+      server: "{{ g_zserver }}"
+      user: "{{ g_zuser }}"
+      password: "{{ g_zpassword }}"
+      state: list
+    register: templates
+
+  - debug: var=templates
+
+  - name: Include Template
+    include: create_template.yml
+    vars:
+      ctp_template: "{{ g_template_heartbeat }}"
+      ctp_zserver: "{{ g_zserver }}"
+      ctp_zuser: "{{ g_zuser }}"
+      ctp_zpassword: "{{ g_zpassword }}"
+
+  - name: Include Template
+    include: create_template.yml
+    vars:
+      ctp_template: "{{ g_template_os_linux }}"
+      ctp_zserver: "{{ g_zserver }}"
+      ctp_zuser: "{{ g_zuser }}"
+      ctp_zpassword: "{{ g_zpassword }}"
+
diff --git a/playbooks/adhoc/zabbix_setup/vars/template_heartbeat.yml b/playbooks/adhoc/zabbix_setup/vars/template_heartbeat.yml
new file mode 100644
index 000000000..22cc75554
--- /dev/null
+++ b/playbooks/adhoc/zabbix_setup/vars/template_heartbeat.yml
@@ -0,0 +1,11 @@
+---
+g_template_heartbeat:
+  name: Template Heartbeat
+  zitems:
+  - name: Heartbeat Ping
+    hostid:
+    key: heartbeat.ping
+  ztriggers:
+  - description: 'Heartbeat.ping has failed on {HOST.NAME}'
+    expression: '{Template Heartbeat:heartbeat.ping.last()}<>0'
+    priority: avg
diff --git a/playbooks/adhoc/zabbix_setup/vars/template_host.yml b/playbooks/adhoc/zabbix_setup/vars/template_host.yml
new file mode 100644
index 000000000..e7cc667cb
--- /dev/null
+++ b/playbooks/adhoc/zabbix_setup/vars/template_host.yml
@@ -0,0 +1,27 @@
+---
+g_template_host:
+  params:
+    name: Template Host
+    host: Template Host
+    groups:
+    - groupid: 1 # FIXME (not real)
+    output: extend
+    search:
+      name: Template Host
+  zitems:
+  - name: Host Ping
+    hostid: 
+    key_: host.ping
+    type: 2
+    value_type: 0
+    output: extend
+    search:
+      key_: host.ping
+  ztriggers:
+  - description: 'Host ping has failed on {HOST.NAME}'
+    expression: '{Template Host:host.ping.last()}<>0'
+    priority: 3
+    searchWildcardsEnabled: True
+    search:
+      description: 'Host ping has failed on*'
+    expandExpression: True
diff --git a/playbooks/adhoc/zabbix_setup/vars/template_master.yml b/playbooks/adhoc/zabbix_setup/vars/template_master.yml
new file mode 100644
index 000000000..5f9b41a4f
--- /dev/null
+++ b/playbooks/adhoc/zabbix_setup/vars/template_master.yml
@@ -0,0 +1,27 @@
+---
+g_template_master:
+  params:
+    name: Template Master
+    host: Template Master
+    groups:
+    - groupid: 1 # FIXME (not real)
+    output: extend
+    search:
+      name: Template Master
+  zitems:
+  - name: Master Etcd Ping
+    hostid: 
+    key_: master.etcd.ping
+    type: 2
+    value_type: 0
+    output: extend
+    search:
+      key_: master.etcd.ping
+  ztriggers:
+  - description: 'Master Etcd ping has failed on {HOST.NAME}'
+    expression: '{Template Master:master.etcd.ping.last()}<>0'
+    priority: 3
+    searchWildcardsEnabled: True
+    search:
+      description: 'Master Etcd ping has failed on*'
+    expandExpression: True
diff --git a/playbooks/adhoc/zabbix_setup/vars/template_node.yml b/playbooks/adhoc/zabbix_setup/vars/template_node.yml
new file mode 100644
index 000000000..98c343a24
--- /dev/null
+++ b/playbooks/adhoc/zabbix_setup/vars/template_node.yml
@@ -0,0 +1,27 @@
+---
+g_template_node:
+  params:
+    name: Template Node
+    host: Template Node
+    groups:
+    - groupid: 1 # FIXME (not real)
+    output: extend
+    search:
+      name: Template Node
+  zitems:
+  - name: Kubelet Ping
+    hostid: 
+    key_: kubelet.ping
+    type: 2
+    value_type: 0
+    output: extend
+    search:
+      key_: kubelet.ping
+  ztriggers:
+  - description: 'Kubelet ping has failed on {HOST.NAME}'
+    expression: '{Template Node:kubelet.ping.last()}<>0'
+    priority: 3
+    searchWildcardsEnabled: True
+    search:
+      description: 'Kubelet ping has failed on*'
+    expandExpression: True
diff --git a/playbooks/adhoc/zabbix_setup/vars/template_os_linux.yml b/playbooks/adhoc/zabbix_setup/vars/template_os_linux.yml
new file mode 100644
index 000000000..9cc038ffa
--- /dev/null
+++ b/playbooks/adhoc/zabbix_setup/vars/template_os_linux.yml
@@ -0,0 +1,90 @@
+---
+g_template_os_linux:
+  name: Template OS Linux
+  zitems:
+  - key: kernel.uname.sysname
+    value_type: string
+
+  - key: kernel.all.cpu.wait.total
+    value_type: int
+
+  - key: kernel.all.cpu.irq.hard
+    value_type: int
+
+  - key: kernel.all.cpu.idle
+    value_type: int
+
+  - key: kernel.uname.distro
+    value_type: string
+
+  - key: kernel.uname.nodename
+    value_type: string
+
+  - key: kernel.all.cpu.irq.soft
+    value_type: int
+
+  - key: kernel.all.load.15_minute
+    value_type: float
+
+  - key: kernel.all.cpu.sys
+    value_type: int
+
+  - key: kernel.all.load.5_minute
+    value_type: float
+
+  - key: mem.freemem
+    value_type: int
+
+  - key: kernel.all.cpu.nice
+    value_type: int
+
+  - key: mem.util.bufmem
+    value_type: int
+
+  - key: swap.used
+    value_type: int
+
+  - key: kernel.all.load.1_minute
+    value_type: float
+
+  - key: kernel.uname.version
+    value_type: string
+
+  - key: swap.length
+    value_type: int
+
+  - key: mem.physmem
+    value_type: int
+
+  - key: kernel.all.uptime
+    value_type: int
+
+  - key: swap.free
+    value_type: int
+
+  - key: mem.util.used
+    value_type: int
+
+  - key: kernel.all.cpu.user
+    value_type: int
+
+  - key: kernel.uname.machine
+    value_type: string
+
+  - key: hinv.ncpu
+    value_type: int
+
+  - key: mem.util.cached
+    value_type: int
+
+  - key: kernel.all.cpu.steal
+    value_type: int
+
+  - key: kernel.all.pswitch
+    value_type: int
+
+  - key: kernel.uname.release
+    value_type: string
+
+  - key: proc.nprocs
+    value_type: int
diff --git a/playbooks/adhoc/zabbix_setup/vars/template_router.yml b/playbooks/adhoc/zabbix_setup/vars/template_router.yml
new file mode 100644
index 000000000..4dae7da1e
--- /dev/null
+++ b/playbooks/adhoc/zabbix_setup/vars/template_router.yml
@@ -0,0 +1,27 @@
+---
+g_template_router:
+  params:
+    name: Template Router
+    host: Template Router
+    groups:
+    - groupid: 1 # FIXME (not real)
+    output: extend
+    search:
+      name: Template Router
+  zitems:
+  - name: Router Backends down
+    hostid: 
+    key_: router.backends.down
+    type: 2
+    value_type: 0
+    output: extend
+    search:
+      key_: router.backends.down
+  ztriggers:
+  - description: 'Number of router backends down on {HOST.NAME}'
+    expression: '{Template Router:router.backends.down.last()}<>0'
+    priority: 3
+    searchWildcardsEnabled: True
+    search:
+      description: 'Number of router backends down on {HOST.NAME}'
+    expandExpression: True
-- 
cgit v1.2.3