diff --git a/ansible/roles/semaphore/tasks/main.yml b/ansible/roles/semaphore/tasks/main.yml index 080a271..99621c8 100644 --- a/ansible/roles/semaphore/tasks/main.yml +++ b/ansible/roles/semaphore/tasks/main.yml @@ -85,6 +85,45 @@ failed_when: false no_log: true +- name: Create initial admin user + 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 | default(vault_semaphore_admin_password) }} + register: create_admin_result + changed_when: create_admin_result.rc == 0 + failed_when: create_admin_result.rc != 0 and 'already exists' not in create_admin_result.stderr | default('') + when: + - semaphore_admin_password is defined or vault_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 + 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 | default(vault_semaphore_admin_password) }} + register: create_admin_result + changed_when: create_admin_result.rc == 0 + failed_when: create_admin_result.rc != 0 and 'already exists' not in create_admin_result.stderr | default('') + when: semaphore_force_admin_user | bool + no_log: true + - name: Create initial admin user ansible.builtin.command: cmd: >