diff --git a/roles/nhc/README.md b/roles/nhc/README.md new file mode 100644 index 0000000000000000000000000000000000000000..37b6ea18e0ea78a96142b3efb6c2c2dfaea7d9cd --- /dev/null +++ b/roles/nhc/README.md @@ -0,0 +1,20 @@ +Creates Node Health Check on a compute node +see ://github.com/mej/nhc + +It needs some variable to be defined before calling + +i.e. +nhc_version: 1.4.2 +nhc_dir: /opt/nhc-{{ nhc_version }} +nhc_config_file: nhc.conf +nhc_log_level: 0 +nhc_emails: nobody@nowhere.nowhere +nhc_email_subject: "Node Health Check" + +In addition the NAT check needs two variables to be defined to be enabled (See example) +- ADD_NHC_NAT_CHECK has to be defined to (any) value +- NHC_NAT_CHK_EXTERNAL_IP_ADDRESS is the address to be pinged + +Example: + roles: + - { role: nhc, NHC_NAT_CHK_EXTERNAL_IP_ADDRESS: "118.138.246.208", ADD_NHC_NAT_CHECK: 1 } diff --git a/roles/nhc/tasks/main.yml b/roles/nhc/tasks/main.yml index bac75d5034f2dd26aea8f953437f6bee9cd454fe..6b0aeb736af495424674e093b4111882614e45f2 100644 --- a/roles/nhc/tasks/main.yml +++ b/roles/nhc/tasks/main.yml @@ -60,3 +60,14 @@ become: true become_user: root +#test NAT is working by pinging an external address, i.e. a license server, or by default Google Public DNS +- set_fact: + EXTERNAL_IP_ADDRESS: "8.8.8.8" + when: EXTERNAL_IP_ADDRESS is undefined + +- name: install nhc NAT check + template: dest="{{ nhc_dir }}/etc/nhc/scripts/check_nat.nhc" src=check_nat.nhc.j2 + become: true + become_user: root + when: ADD_NHC_NAT_CHECK is defined + diff --git a/roles/nhc/templates/check_nat.nhc.j2 b/roles/nhc/templates/check_nat.nhc.j2 new file mode 100644 index 0000000000000000000000000000000000000000..ab56e57e890ac1b64ea994f63cd372925f0e7f53 --- /dev/null +++ b/roles/nhc/templates/check_nat.nhc.j2 @@ -0,0 +1,21 @@ +#!/bin/bash + +#checks that NAT is working by pinging an external address from a compute node + +function check_nat() { +#echo ">>> Checking NAT on Compute Nodes Works >>>>>>>>>>>>>>>>>>>>>>>>>" + + +#test NAT by pinging an external IP ADDRESS +PING_EXTERNAL="ping -c 2 {{ NHC_NAT_CHK_EXTERNAL_IP_ADDRESS }}" + +$PING_EXTERNAL +RESULT=$? +if [ $RESULT -ne 0 ]; then + die 1 " $FUNCNAME ERROR on node. Can not ping external address. Command is ' ${PING_EXTERNAL} ' Please check NAT is working, or route on node is valid" + return 1 +fi +return 0 +} + +