diff --git a/roles/nagios_monitored/files/scripts/check_load b/roles/nagios_monitored/files/scripts/check_load
new file mode 100755
index 0000000000000000000000000000000000000000..8e6966c4e309874444dbe4cca2f5e783e107fc88
Binary files /dev/null and b/roles/nagios_monitored/files/scripts/check_load differ
diff --git a/roles/nagios_monitored/files/scripts/check_munge b/roles/nagios_monitored/files/scripts/check_munge
new file mode 100755
index 0000000000000000000000000000000000000000..bf7c01cf1c5be003604a09f77e51d99d7bc7344c
--- /dev/null
+++ b/roles/nagios_monitored/files/scripts/check_munge
@@ -0,0 +1,21 @@
+#!/usr/bin/python
+import sys, os, pwd
+import getopt
+import commands
+import subprocess
+
+STATE_OK=0
+STATE_WARNING=1
+
+check_munge=subprocess.Popen("/usr/sbin/service munge status", shell=True, stdout=subprocess.PIPE)
+munge_status=check_munge.communicate()[0]
+
+if "run" in munge_status:
+   print "Munge is Running"
+   sys.exit(STATE_OK)
+else:
+   print "Munge is NOT Running !!"   
+   sys.exit(STATE_WARNING)
+
+sys.exit(STATE_OK)
+
diff --git a/roles/nagios_monitored/tasks/main.yml b/roles/nagios_monitored/tasks/main.yml
new file mode 100644
index 0000000000000000000000000000000000000000..8a1e5ce9b0f0273344b7e8b3331d8ac4cb2b4a1b
--- /dev/null
+++ b/roles/nagios_monitored/tasks/main.yml
@@ -0,0 +1,19 @@
+---
+- name: create nagios user
+  user: name=nagios system=yes createhome=yes home=/var/lib/nagios shell=/bin/bash
+  sudo: true
+
+- name: authorize_key
+  authorized_key: user=nagios key="{{ monitor_pubkey }}"
+  sudo: true
+
+- name: make scripts directory
+  file: path=/var/lib/nagios/scripts state=directory owner=nagios mode=755
+  sudo: true
+
+- name: install monitor scripts
+  copy: dest=/var/lib/nagios/scripts/{{ item }} src=scripts/{{ item }} mode=755
+  with_items:
+   - check_load
+   - check_munge
+  sudo: true
diff --git a/roles/nagios_server/tasks/main.yml b/roles/nagios_server/tasks/main.yml
new file mode 100644
index 0000000000000000000000000000000000000000..9e56db5b42cb982990d45423a72ec534102377fd
--- /dev/null
+++ b/roles/nagios_server/tasks/main.yml
@@ -0,0 +1,31 @@
+---
+- name: copy priv key
+  template: src={{ monitor_privkey_file }} dest=/var/lib/nagios/.ssh/id_rsa mode=600 owner=nagios
+  sudo: true
+
+- name: install packages
+  apt: name={{ item }} state=installed
+  with_items:
+  - nagios3
+  - python-passlib
+  - python3-passlib
+  sudo: true
+
+- name: configure nagios authentication
+  htpasswd: path=/etc/nagios3/htpasswd.users name={{ nagios_username }} password={{ nagios_password }}
+  sudo: true
+
+- name: configure monitoring
+  template: src={{ item }}_nagios2.cfg.j2 dest=/etc/nagios3/conf.d/{{ item }}_nagios2.cfg 
+  with_items:
+  - 'hostgroups'
+  - 'hosts'
+  - 'commands'
+  - 'services'
+  - 'extinfo'
+  sudo: true
+
+- name: force restart
+  service: name=nagios3 state=restarted
+  sudo: true
+
diff --git a/roles/nagios_server/templates/commands_nagios2.cfg.j2 b/roles/nagios_server/templates/commands_nagios2.cfg.j2
new file mode 100644
index 0000000000000000000000000000000000000000..8f4f49cf168a8c9cf3aa55a036c6ff03c7dc79a2
--- /dev/null
+++ b/roles/nagios_server/templates/commands_nagios2.cfg.j2
@@ -0,0 +1,9 @@
+define command {
+        command_name    check_mount
+        command_line    /usr/lib/nagios/plugins/check_by_ssh -H $HOSTADDRESS$ -C "/var/lib/nagios/scripts/check_mount.pl -m $ARG1$"
+}
+define command {
+        command_name    check_munge
+        command_line    /usr/lib/nagios/plugins/check_by_ssh -H $HOSTADDRESS$ -C "/var/lib/nagios/scripts/check_munge"
+}
+
diff --git a/roles/nagios_server/templates/extinfo_nagios2.cfg.j2 b/roles/nagios_server/templates/extinfo_nagios2.cfg.j2
new file mode 100644
index 0000000000000000000000000000000000000000..e69de29bb2d1d6434b8b29ae775ad8c2e48c5391
diff --git a/roles/nagios_server/templates/hostgroups_nagios2.cfg.j2 b/roles/nagios_server/templates/hostgroups_nagios2.cfg.j2
new file mode 100644
index 0000000000000000000000000000000000000000..54b7862e846f0b6cc8aa247cb4c73d0b1c79c601
--- /dev/null
+++ b/roles/nagios_server/templates/hostgroups_nagios2.cfg.j2
@@ -0,0 +1,44 @@
+# Some generic hostgroup definitions
+
+## A simple wildcard hostgroup
+#define hostgroup {
+#        hostgroup_name  all
+#		alias           All Servers
+#		members         *
+#        }
+
+## A list of your Debian GNU/Linux servers
+#define hostgroup {
+#        hostgroup_name  debian-servers
+#		alias           Debian GNU/Linux Servers
+#		members         localhost
+#        }
+
+## A list of your web servers
+#define hostgroup {
+#        hostgroup_name  http-servers
+#		alias           HTTP servers
+#		members         localhost
+#        }
+
+## A list of your ssh-accessible servers
+#define hostgroup {
+#        hostgroup_name  ssh-servers
+#		alias           SSH servers
+#		members         *
+#        }
+
+
+{% for group in groups %}
+#{  % if group != "all" %  }
+{% set nodelist = [] %}
+{% for node in groups[group] %}
+{% if nodelist.append(node) %}
+{% endif %}
+{% endfor %}
+define hostgroup {
+    hostgroup_name {{ group }}
+    members {{ nodelist|unique|join(',') }}
+}
+#{  % endif %  }
+{% endfor %}
diff --git a/roles/nagios_server/templates/hosts_nagios2.cfg.j2 b/roles/nagios_server/templates/hosts_nagios2.cfg.j2
new file mode 100644
index 0000000000000000000000000000000000000000..44e82a60a81402de44244e279a72a572122dc200
--- /dev/null
+++ b/roles/nagios_server/templates/hosts_nagios2.cfg.j2
@@ -0,0 +1,14 @@
+{% set nodelist = [] %}
+{% for group in groups %}
+{% for node in groups[group] %}
+{% if nodelist.append(node) %}
+{% endif %}
+{% endfor %}
+{% endfor %}
+{% for host in nodelist|unique %}
+define host{
+  use generic-host
+  host_name {{ host }}
+  address {{ hostvars[host]['ansible_hostname'] }}
+}
+{% endfor %}
diff --git a/roles/nagios_server/templates/services_nagios2.cfg.j2 b/roles/nagios_server/templates/services_nagios2.cfg.j2
new file mode 100644
index 0000000000000000000000000000000000000000..d5cbbca3b22bbd77003de659af549c130b87c71a
--- /dev/null
+++ b/roles/nagios_server/templates/services_nagios2.cfg.j2
@@ -0,0 +1,9 @@
+{% for service in nagios_services %}
+define service {
+    service_description {{ service.description }}
+    hostgroup_name {{ service.groups|join(',') }}
+    check_command {{ service.command }}
+    use generic-service
+    notification_interval 0
+}
+{% endfor %}