From 5866ef61cdf351006ab1846373eab6faadc62306 Mon Sep 17 00:00:00 2001 From: LecygneNoir Date: Sat, 18 Nov 2017 21:14:01 +0100 Subject: [PATCH] amelioration de la compatibilite centos pour xymon-client --- roles/xymon-client/tasks/client.yml | 96 ++-------------------- roles/xymon-client/tasks/client_centos.yml | 53 ++++++++++++ roles/xymon-client/tasks/client_debian.yml | 77 +++++++++++++++++ roles/xymon-client/tasks/main.yml | 30 ------- 4 files changed, 139 insertions(+), 117 deletions(-) create mode 100644 roles/xymon-client/tasks/client_centos.yml create mode 100644 roles/xymon-client/tasks/client_debian.yml diff --git a/roles/xymon-client/tasks/client.yml b/roles/xymon-client/tasks/client.yml index 8438546..e1e29c3 100644 --- a/roles/xymon-client/tasks/client.yml +++ b/roles/xymon-client/tasks/client.yml @@ -1,98 +1,20 @@ --- -## Install and configure xymon client ## - -# Binaries -- name: install xymon client debian - apt: pkg={{item}} state=present update_cache=yes - tags: - - client-packages - - xymon-client - with_items: - - xymon-client - - hobbit-plugins +- include: client_debian.yml when: ansible_distribution == 'Debian' +- include: client_centos.yml + when: ansible_distribution == 'CentOS' or ansible_distribution == 'CloudLinux' or ansible_distribution == 'Virtuozzo' -- name: Install xymon client CentOS - tags: - - xymon-client - - client-packages - yum: pkg=xymon-client state=installed - when: ansible_distribution == 'CentOS' or ansible_distribution == 'CloudLinux' - -# Configuration -- name: Configure Xymon ip on old Debian - tags: - - xymon-client - - client-configuration - lineinfile: name=/etc/default/hobbit-client regexp='^HOBBITSERVERS=' line='HOBBITSERVERS="{{xymon_server}}"' - notify: restart hobbit-client - when: ansible_distribution == 'Debian' and ansible_distribution_major_version|int < 8 - -- name: Configure Xymon ip on debian >= 8 - tags: - - xymon-client - - client-configuration - lineinfile: name=/etc/default/xymon-client regexp='^XYMONSERVERS=' line='XYMONSERVERS="{{xymon_server}}"' - notify: restart xymon-client - when: ansible_distribution == 'Debian' and ansible_distribution_major_version|int >= 8 - -- name: Configure Xymon ip on CentOS - tags: - - xymon-client - - client-configuration - lineinfile: name=/etc/sysconfig/xymon-client regexp='^XYMONSERVERS=' line='XYMONSERVERS="{{xymon_server}}"' - notify: restart xymon-client - when: ansible_distribution == 'CentOS' or ansible_distribution == 'CloudLinux' - -- name: Configure local Xymon name on old debian - tags: - - xymon-client - - client-configuration - lineinfile: name=/etc/default/hobbit-client regexp='^CLIENTHOSTNAME=' line='CLIENTHOSTNAME="{{ansible_fqdn}}"' - notify: restart hobbit-client - when: ansible_distribution == 'Debian' and ansible_distribution_major_version|int < 8 - -- name: Configure local Xymon name on Debian >=8 - tags: - - xymon-client - - client-configuration - lineinfile: name=/etc/default/xymon-client regexp='^CLIENTHOSTNAME=' line='CLIENTHOSTNAME="{{ansible_fqdn}}"' - notify: restart hobbit-client - when: ansible_distribution == 'Debian' and ansible_distribution_major_version|int >= 8 - -- name: Configure local Xymon name on Centos - tags: - - xymon-client - - client-configuration - lineinfile: name=/etc/sysconfig/xymon-client regexp='^CLIENTHOSTNAME=' line='CLIENTHOSTNAME="{{ansible_fqdn}}"' - notify: restart xymon-client - when: ansible_distribution == 'CentOS' or ansible_distribution == 'CloudLinux' - -- name: Set xymon cron for APT - tags: - - xymon-client - - client-configuration - cron: - name="check update for Xymon" - minute="45" - hour="*/4" - job="apt-get update -qq > /var/lib/apt/update_output 2>&1 && [ ! -s /var/lib/apt/update_output ] && date -u > /var/lib/apt/update_success" - cron_file="xymon-apt" - state=present - user=root - when: ansible_distribution == 'Debian' - ## Add the client to xymon server - name: Ensure /etc/xymon/hosts.d exists - tags: + tags: - xymon-client - client-configuration file: path=/etc/xymon/hosts.d state=directory delegate_to: "{{ xymon_server }}" - + - name: Ensure the monitoring section file is included - tags: + tags: - xymon-client - client-configuration lineinfile: dest=/etc/xymon/hosts.cfg @@ -102,7 +24,7 @@ when: monitoring_file is defined and monitoring_section is defined - name: Ensure /etc/xymon/hosts.d/SECTION exists if used - tags: + tags: - xymon-client - client-configuration lineinfile: dest="/etc/xymon/hosts.d/{{monitoring_file}}" @@ -115,7 +37,7 @@ when: monitoring_file is defined and monitoring_section is defined - name: Add the host to the monitoring section file if used - tags: + tags: - xymon-client - client-configuration lineinfile: dest="/etc/xymon/hosts.d/{{monitoring_file}}" @@ -126,7 +48,7 @@ when: monitoring_file is defined and monitoring_section is defined - name: Add the host to the cfg file without section if needed - tags: + tags: - xymon-client - client-configuration lineinfile: dest=/etc/xymon/hosts.cfg diff --git a/roles/xymon-client/tasks/client_centos.yml b/roles/xymon-client/tasks/client_centos.yml new file mode 100644 index 0000000..6cbf799 --- /dev/null +++ b/roles/xymon-client/tasks/client_centos.yml @@ -0,0 +1,53 @@ +--- + +## Install and configure xymon client Centos ## + +# Custom facts +- name: Set Facts CentOs + set_fact: + xymon_cfg_path: "/etc/xymon-client/client.d" + xymon_ext_path: "/etc/xymon-client/ext" + xymon_binary: "/usr/share/xymon-client/bin/xymon" + client_name: "xymon" + client_name_cfg: "$XYMONCLIENTHOME" + client_name_logs: "$XYMONCLIENTLOGS" + tags: + - xymon-client + - xymon-server + - configuration + when: ansible_distribution == 'CentOS' or ansible_distribution == 'CloudLinux' or ansible_distribution == 'Virtuozzo' + +# Binaries +- name: add xymon repo url -- centos + yum_repository: + name: Xymon + description: Xymon RPMs + file: xymon_repos + baseurl: http://terabithia.org/rpms/xymon/el$releasever/x86_64/ + gpgcheck: yes + gpgkey: http://terabithia.org/rpms/RPM-GPG-KEY-JCLEAVER + when: ansible_distribution == 'CentOS' or ansible_distribution == 'CloudLinux' or ansible_distribution == 'Virtuozzo' + +- name: Install xymon client CentOS + tags: + - xymon-client + - client-packages + yum: pkg=xymon-client state=installed + when: ansible_distribution == 'CentOS' or ansible_distribution == 'CloudLinux' or ansible_distribution == 'Virtuozzo' + +- name: Configure Xymon ip on CentOS + tags: + - xymon-client + - client-configuration + lineinfile: name=/etc/sysconfig/xymon-client regexp='^XYMONSERVERS=' line='XYMONSERVERS="{{xymon_server}}"' + notify: restart xymon-client + when: ansible_distribution == 'CentOS' or ansible_distribution == 'CloudLinux' or ansible_distribution == 'Virtuozzo' + + +- name: Configure local Xymon name on Centos + tags: + - xymon-client + - client-configuration + lineinfile: name=/etc/sysconfig/xymon-client regexp='^CLIENTHOSTNAME=' line='CLIENTHOSTNAME="{{ansible_fqdn}}"' + notify: restart xymon-client + when: ansible_distribution == 'CentOS' or ansible_distribution == 'CloudLinux' or ansible_distribution == 'Virtuozzo' diff --git a/roles/xymon-client/tasks/client_debian.yml b/roles/xymon-client/tasks/client_debian.yml new file mode 100644 index 0000000..f0db92f --- /dev/null +++ b/roles/xymon-client/tasks/client_debian.yml @@ -0,0 +1,77 @@ +--- + +## Install and configure xymon client Debian ## + +## Custom Facts + +- name: Set Facts Debian + set_fact: + xymon_cfg_path: "/usr/lib/hobbit/client/etc/clientlaunch.d" + xymon_ext_path: "/usr/lib/hobbit/client/ext" + xymon_binary: "/usr/lib/hobbit/client/bin/bb" + client_name: "hobbit" + client_name_cfg: "$HOBBITCLIENTHOME" + client_name_logs: "$BBCLIENTLOGS" + tags: + - xymon-client + - xymon-server + - configuration + when: ansible_distribution == 'Debian' or ansible_distribution == 'Ubuntu' + +# Binaries +- name: install xymon client debian + apt: pkg={{item}} state=present update_cache=yes + tags: + - client-packages + - xymon-client + with_items: + - xymon-client + - hobbit-plugins + when: ansible_distribution == 'Debian' + +# Configuration +- name: Configure Xymon ip on old Debian + tags: + - xymon-client + - client-configuration + lineinfile: name=/etc/default/hobbit-client regexp='^HOBBITSERVERS=' line='HOBBITSERVERS="{{xymon_server}}"' + notify: restart hobbit-client + when: ansible_distribution == 'Debian' and ansible_distribution_major_version|int < 8 + +- name: Configure Xymon ip on debian >= 8 + tags: + - xymon-client + - client-configuration + lineinfile: name=/etc/default/xymon-client regexp='^XYMONSERVERS=' line='XYMONSERVERS="{{xymon_server}}"' + notify: restart xymon-client + when: ansible_distribution == 'Debian' and ansible_distribution_major_version|int >= 8 + +- name: Configure local Xymon name on old debian + tags: + - xymon-client + - client-configuration + lineinfile: name=/etc/default/hobbit-client regexp='^CLIENTHOSTNAME=' line='CLIENTHOSTNAME="{{ansible_fqdn}}"' + notify: restart hobbit-client + when: ansible_distribution == 'Debian' and ansible_distribution_major_version|int < 8 + +- name: Configure local Xymon name on Debian >=8 + tags: + - xymon-client + - client-configuration + lineinfile: name=/etc/default/xymon-client regexp='^CLIENTHOSTNAME=' line='CLIENTHOSTNAME="{{ansible_fqdn}}"' + notify: restart hobbit-client + when: ansible_distribution == 'Debian' and ansible_distribution_major_version|int >= 8 + +- name: Set xymon cron for APT + tags: + - xymon-client + - client-configuration + cron: + name="check update for Xymon" + minute="45" + hour="*/4" + job="apt-get update -qq > /var/lib/apt/update_output 2>&1 && [ ! -s /var/lib/apt/update_output ] && date -u > /var/lib/apt/update_success" + cron_file="xymon-apt" + state=present + user=root + when: ansible_distribution == 'Debian' diff --git a/roles/xymon-client/tasks/main.yml b/roles/xymon-client/tasks/main.yml index 134373f..57b095f 100644 --- a/roles/xymon-client/tasks/main.yml +++ b/roles/xymon-client/tasks/main.yml @@ -48,35 +48,5 @@ - server-configuration when: xymon_htpasswd is not defined -## Custom Facts - -- name: Set Facts Debian - set_fact: - xymon_cfg_path: "/usr/lib/hobbit/client/etc/clientlaunch.d" - xymon_ext_path: "/usr/lib/hobbit/client/ext" - xymon_binary: "/usr/lib/hobbit/client/bin/bb" - client_name: "hobbit" - client_name_cfg: "$HOBBITCLIENTHOME" - client_name_logs: "$BBCLIENTLOGS" - tags: - - xymon-client - - xymon-server - - configuration - when: ansible_distribution == 'Debian' or ansible_distribution == 'Ubuntu' - -- name: Set Facts CentOs - set_fact: - xymon_cfg_path: "/etc/xymon-client/client.d" - xymon_ext_path: "/etc/xymon-client/ext" - xymon_binary: "/usr/share/xymon-client/bin/xymon" - client_name: "xymon" - client_name_cfg: "$XYMONCLIENTHOME" - client_name_logs: "$XYMONCLIENTLOGS" - tags: - - xymon-client - - xymon-server - - configuration - when: ansible_distribution == 'CentOS' or ansible_distribution == 'CloudLinux' - ##Main tasks - include: client.yml