feat(semaphore): add semaphore_force_admin_user option

- When set to true, deletes existing admin user before creating
- Useful for recovering from bad password or broken user state
This commit is contained in:
Hermes Agent service account
2026-05-27 22:10:32 -05:00
parent 6e50461999
commit 27ff9286b4
2 changed files with 30 additions and 0 deletions

View File

@@ -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

View File

@@ -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