diff --git a/roles/slurm-from-source/tasks/main.yml b/roles/slurm-from-source/tasks/main.yml
index 6a7570b94e0295447d9c3a1aab8ea10e851ed70e..9021ff0f7804dfc5e7b9877a4c298bc6b3e0f5eb 100644
--- a/roles/slurm-from-source/tasks/main.yml
+++ b/roles/slurm-from-source/tasks/main.yml
@@ -26,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 ac0ebfe6e1983851c81fc89c1486eb9c0c3639d2..096c7d08f1fa7e2c42f23572650a9055ba65e49b 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={{ slurm_dir }}/var/state
-SlurmdSpoolDir={{ slurm_dir }}/var/spool
+StateSaveLocation={{ slurmstatedir }}
+SlurmdSpoolDir={{ slurmdatadir }}
 SwitchType=switch/none
 MpiDefault=none
-SlurmctldPidFile={{ slurm_dir }}/var/run/slurmctld.pid
-SlurmdPidFile={{ slurm_dir }}/var/run/slurmd.pid
+SlurmctldPidFile={{ slurmpiddir }}/slurmctld.pid
+SlurmdPidFile={{ slurmpiddir }}/slurmd.pid
 ProctrackType=proctrack/pgid
 #PluginDir=
 CacheGroups=0