diff --git a/ansible/roles/semaphore/defaults/main.yml b/ansible/roles/semaphore/defaults/main.yml index a59bb7d..da238d6 100644 --- a/ansible/roles/semaphore/defaults/main.yml +++ b/ansible/roles/semaphore/defaults/main.yml @@ -29,3 +29,6 @@ semaphore_admin_user: admin semaphore_admin_name: Administrator semaphore_admin_email: admin@local.mk-labs.cloud # semaphore_admin_password: defined in vault + +# Set to true to force recreation of the admin user (deletes existing user first) +semaphore_force_admin_user: false diff --git a/ansible/roles/semaphore/tasks/main.yml b/ansible/roles/semaphore/tasks/main.yml index 542bbec..2cfeadd 100644 --- a/ansible/roles/semaphore/tasks/main.yml +++ b/ansible/roles/semaphore/tasks/main.yml @@ -100,3 +100,30 @@ - semaphore_admin_password is defined - semaphore_admin_user not in semaphore_user_list.stdout no_log: true + +- name: Force delete admin user if requested + ansible.builtin.command: + cmd: "podman exec {{ semaphore_container_name }} semaphore user delete --login {{ semaphore_admin_user }}" + register: delete_admin_result + failed_when: false + changed_when: delete_admin_result.rc == 0 + when: + - semaphore_force_admin_user | bool + - semaphore_admin_user in semaphore_user_list.stdout + no_log: true + +- name: Create initial admin user (forced) + ansible.builtin.command: + cmd: > + podman exec {{ semaphore_container_name }} semaphore user add --admin + --login {{ semaphore_admin_user }} + --name "{{ semaphore_admin_name }}" + --email {{ semaphore_admin_email }} + --password {{ semaphore_admin_password }} + register: create_admin_result + changed_when: create_admin_result.rc == 0 + failed_when: create_admin_result.rc != 0 + when: + - semaphore_force_admin_user | bool + - semaphore_admin_password is defined + no_log: true