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
+}
+
+