Add devstack base job for zuul v3
This should be managed in the devstack repo, since it's a base job to
run devstack.
Change-Id: Iffe54fbccbccd68db08f79a1b51dd7f76dbff408
Depends-On: Ie2119f24360d56690ffd772b95a9ea6b98dd4a39
diff --git a/roles/setup-stack-user/README.rst b/roles/setup-stack-user/README.rst
new file mode 100644
index 0000000..80c4d39
--- /dev/null
+++ b/roles/setup-stack-user/README.rst
@@ -0,0 +1,16 @@
+Set up the `stack` user
+
+Create the stack user, set up its home directory, and allow it to
+sudo.
+
+**Role Variables**
+
+.. zuul:rolevar:: devstack_base_dir
+ :default: /opt/stack
+
+ The devstack base directory.
+
+.. zuul:rolevar:: devstack_stack_home_dir
+ :default: {{ devstack_base_dir }}
+
+ The home directory for the stack user.
diff --git a/roles/setup-stack-user/defaults/main.yaml b/roles/setup-stack-user/defaults/main.yaml
new file mode 100644
index 0000000..6d0be66
--- /dev/null
+++ b/roles/setup-stack-user/defaults/main.yaml
@@ -0,0 +1,2 @@
+devstack_base_dir: /opt/stack
+devstack_stack_home_dir: '{{ devstack_base_dir }}'
diff --git a/roles/setup-stack-user/files/50_stack_sh b/roles/setup-stack-user/files/50_stack_sh
new file mode 100644
index 0000000..4c6b46b
--- /dev/null
+++ b/roles/setup-stack-user/files/50_stack_sh
@@ -0,0 +1 @@
+stack ALL=(root) NOPASSWD:ALL
diff --git a/roles/setup-stack-user/tasks/main.yaml b/roles/setup-stack-user/tasks/main.yaml
new file mode 100644
index 0000000..8384515
--- /dev/null
+++ b/roles/setup-stack-user/tasks/main.yaml
@@ -0,0 +1,45 @@
+- name: Create stack group
+ group:
+ name: stack
+ become: yes
+
+# NOTE(andreaf) Create a user home_dir is not safe via
+# the user module since it will fail if the containing
+# folder does not exists. If the folder does exists and
+# it's empty, the skeleton is setup and ownership set.
+- name: Create the stack user home folder
+ file:
+ path: '{{ devstack_stack_home_dir }}'
+ state: directory
+ become: yes
+
+- name: Create stack user
+ user:
+ name: stack
+ shell: /bin/bash
+ home: '{{ devstack_stack_home_dir }}'
+ group: stack
+ become: yes
+
+- name: Set stack user home directory permissions
+ file:
+ path: '{{ devstack_stack_home_dir }}'
+ mode: 0755
+ become: yes
+
+- name: Copy 50_stack_sh file to /etc/sudoers.d
+ copy:
+ src: 50_stack_sh
+ dest: /etc/sudoers.d
+ mode: 0440
+ owner: root
+ group: root
+ become: yes
+
+- name: Create new/.cache folder within BASE
+ file:
+ path: '{{ devstack_stack_home_dir }}/.cache'
+ state: directory
+ owner: stack
+ group: stack
+ become: yes