diff --git a/roles/slurm-from-source/tasks/installMungeFromSource.yml b/roles/slurm-from-source/tasks/installMungeFromSource.yml
index ed36cb4d9f4bf79b8e9f525651200ea9666f9394..438497c1fe1e5b784f0448c21cb5a6c936e4012a 100644
--- a/roles/slurm-from-source/tasks/installMungeFromSource.yml
+++ b/roles/slurm-from-source/tasks/installMungeFromSource.yml
@@ -1,9 +1,3 @@
-- name: clean up system installation
-  shell: rpm -e munge-libs slurm-munge munge slurm-plugins munge-devel slurm slurm-slurmdbd slurm-perlapi slurm-devel slurm-pam_slurm slurm-sjstat slurm-perlapi slurm-pam_slurm slurm-slurmdb-direct slurm-torque slurm-sjobexit
-  ignore_errors: true
-  sudo: true
-  when: ansible_os_family == 'RedHat'
-
 - name: get munge
   shell: wget https://munge.googlecode.com/files/munge-{{ munge_version }}.tar.bz2
   args:
diff --git a/roles/slurm-from-source/tasks/main.yml b/roles/slurm-from-source/tasks/main.yml
index 8057bf5ec3f8e476f3b64f6617389e4013392275..b49cf008a1029a71078ab1f63eced9f40272908d 100644
--- a/roles/slurm-from-source/tasks/main.yml
+++ b/roles/slurm-from-source/tasks/main.yml
@@ -1,10 +1,4 @@
 ---
-- name: clean up system installation
-  shell: rpm -e munge munge-libs munge-devel slurm slurm-sql
-  ignore_errors: true
-  sudo: true
-  when: ansible_os_family == 'RedHat' 
-
 - name: create munge group
   group: name=munge system=yes gid=498
   sudo: true
@@ -32,6 +26,18 @@
 - name: create data directory
   file: path={{ slurmdatadir }} state=directory owner=slurm group=slurm mode=755 
   sudo: true
+  when: slurmdatadir is defined 
+
+- name: create run directory
+  file: path={{ slurmpiddir }} state=directory owner=root group=root mode=755 
+  sudo: true
+  when: slurmpiddir is defined 
+
+- name: create state directory
+  file: path={{ slurmstatedir }} state=directory owner=slurm group=slurm mode=755 
+  sudo: true
+  when: slurmstatedir is defined 
+
 
 - name: create log directory
   shell: mkdir -p {{ slurmddebug.log | dirname }}; chown slurm:slurm {{ slurmddebug.log | dirname }} 
diff --git a/roles/slurm-from-source/templates/slurm.conf.j2 b/roles/slurm-from-source/templates/slurm.conf.j2
index b8d0753a9e4dd75d430da09933f153114ed51aa0..e45f1318d036f2bdab9a5c588907f2d1fc35077b 100644
--- a/roles/slurm-from-source/templates/slurm.conf.j2
+++ b/roles/slurm-from-source/templates/slurm.conf.j2
@@ -21,12 +21,12 @@ SlurmdPort=6818
 AuthType=auth/munge
 #JobCredentialPrivateKey=
 #JobCredentialPublicCertificate=
-StateSaveLocation={{ slurmdatadir }}
-SlurmdSpoolDir={{ slurmdatadir }} 
+StateSaveLocation={{ slurmstatedir }}
+SlurmdSpoolDir={{ slurmdatadir }}
 SwitchType=switch/none
 MpiDefault=none
-SlurmctldPidFile=/var/run/slurmctld.pid
-SlurmdPidFile=/var/run/slurmd.pid
+SlurmctldPidFile={{ slurmpiddir }}/slurmctld.pid
+SlurmdPidFile={{ slurmpiddir }}/slurmd.pid
 ProctrackType=proctrack/pgid
 #PluginDir=
 CacheGroups=0
@@ -76,21 +76,21 @@ FastSchedule={{ slurmfastschedule }}
 # LOGGING
 {% if slurmctlddebug %}
 SlurmctldDebug={{ slurmctlddebug.level }}
-SlurmctldLogFile={{ slurmctlddebug.log }}
+SlurmctldLogFile={{ slurm_dir }}{{ slurmctlddebug.log }}
 {% else %}
 #SlurmctldDebug=
 #SlurmctldLogFile=
 {% endif %}
 {% if slurmddebug %}
 SlurmdDebug={{ slurmddebug.level }}
-SlurmdLogFile={{ slurmddebug.log }}
+SlurmdLogFile={{ slurm_dir }}{{ slurmddebug.log }}
 {% else %}
 #SlurmdDebug=
 #SlurmdLogFile=
 {% endif %}
 {% if slurmschedlog %}
 SlurmSchedlogLevel={{ slurmschedlog.level }}
-SlurmSchedLogFile={{ slurmschedlog.log }}
+SlurmSchedLogFile={{ slurm_dir }}{{ slurmschedlog.log }}
 {% else %}
 #SlurmSchedlogLevel=
 #SlurmSchedLogFile=
@@ -98,7 +98,7 @@ SlurmSchedLogFile={{ slurmschedlog.log }}
 JobCompType=jobcomp/none
 #JobCompLoc=
 #
-{% if slurmjob %}
+{% if slurmjob is defined %}
 Prolog={{ slurmjob.prolog }}
 Epilog={{ slurmjob.epilog }}
 {% endif %}
diff --git a/roles/slurmdb/templates/slurmdbd.conf.j2 b/roles/slurmdb/templates/slurmdbd.conf.j2
index fb5e8197925c61bdd413da0c9f50986499b4674b..5a6cd9aed308aa8982c173a2c8d9fc3db82d90f5 100644
--- a/roles/slurmdb/templates/slurmdbd.conf.j2
+++ b/roles/slurmdb/templates/slurmdbd.conf.j2
@@ -22,7 +22,7 @@ DbdHost={{ slurmctrl }}
 SlurmUser=slurm
 #MessageTimeout=300
 #DefaultQOS=normal,standby
-{% if slurmdbdlog %}
+{% if slurmdbdlog is defined %}
 DebugLevel={{ slurmdbdlog.level }}
 LogFile={{ slurmdbdlog.log }}
 {% else %}