From 042ac78b6b76b242419044c0c067a0fb2dcdddb8 Mon Sep 17 00:00:00 2001
From: Vladimir Still <git@vstill.eu>
Date: Tue, 1 Feb 2022 14:49:55 +0100
Subject: [PATCH] ansible: Auto-materialize homes for users added to the home
 map

---
 ansible/roles/pds_mount/tasks/main.yml | 27 ++++++++++++++++++++++++++
 1 file changed, 27 insertions(+)

diff --git a/ansible/roles/pds_mount/tasks/main.yml b/ansible/roles/pds_mount/tasks/main.yml
index 55367d5..811a667 100644
--- a/ansible/roles/pds_mount/tasks/main.yml
+++ b/ansible/roles/pds_mount/tasks/main.yml
@@ -1,3 +1,30 @@
+- name: Create homes
+  block:
+    - name: "Stat homes"
+      stat:
+        path: "/export/home/{{item}}"
+      register: home
+      loop: "{{mount.home.pontos[inventory_hostname | regex_replace('pontos([0-9]*).fi.muni.cz', '\\1')]}}"
+
+    - name: "Create home dir"
+      file:
+        state: directory
+        path: "/export/home/{{item}}"
+        owner: "{{item}}"
+        group: "paradise"
+      loop: "{{home.results | map(attribute='item')}}"
+      register: home_created
+
+    - name: "Copy skeleton"
+      copy:
+        src: "/etc/skel/{{item.1}}"
+        dest: "/export/home/{{item.0.item}}"
+        remote_src: true
+        owner: "{{item.0.item}}"
+        group: "paradise"
+      loop: "{{home_created.results | selectattr('changed') | product(['.bash_logout', '.bashrc', '.profile']) | list}}"
+  when: inventory_hostname == "pontos01.fi.muni.cz" or inventory_hostname == "pontos02.fi.muni.cz" or inventory_hostname == "pontos03.fi.muni.cz" or inventory_hostname == "pontos04.fi.muni.cz"
+
 - name: Setup home exports
   template:
     src: home.exports.j2
-- 
GitLab