Fix gitea admin deployment to be less brittle
Admin deployment was very timing-dependent: If the server took a while to set it up, it would always error out while deploying. This commit adds sufficient grace-time into the admin request call before the error occurs which should avoid it in most deployments (unless the server is severely underpowered or over-taxed). Also fixes admin creation to avoid root usage in the container when it is not called for.
This commit is contained in:
parent
32b1b13ef4
commit
8aaefd3f60
2 changed files with 17 additions and 10 deletions
|
|
@ -3,7 +3,8 @@
|
||||||
container: "{{ gitea_app_container_name['stdout'] }}"
|
container: "{{ gitea_app_container_name['stdout'] }}"
|
||||||
command: >
|
command: >
|
||||||
gitea admin user create --admin --username {{ gitea_app_admin_username }} --password {{ gitea_app_admin_password }} --email {{ gitea_app_admin_email }}
|
gitea admin user create --admin --username {{ gitea_app_admin_username }} --password {{ gitea_app_admin_password }} --email {{ gitea_app_admin_email }}
|
||||||
become: yes
|
user: git
|
||||||
|
become: true
|
||||||
listen: "no admin user"
|
listen: "no admin user"
|
||||||
|
|
||||||
## Register reverse proxy
|
## Register reverse proxy
|
||||||
|
|
|
||||||
|
|
@ -91,14 +91,21 @@
|
||||||
become: yes
|
become: yes
|
||||||
tags:
|
tags:
|
||||||
- docker-swarm
|
- docker-swarm
|
||||||
|
register: gitea_deployment
|
||||||
notify: "update gitea upstream"
|
notify: "update gitea upstream"
|
||||||
|
|
||||||
|
- name: Wait 30 seconds for gitea to become healthy
|
||||||
|
wait_for:
|
||||||
|
timeout: 60
|
||||||
|
delegate_to: localhost
|
||||||
|
when: gitea_deployment is changed
|
||||||
|
|
||||||
- name: Get app container info
|
- name: Get app container info
|
||||||
ansible.builtin.command:
|
ansible.builtin.command:
|
||||||
cmd: docker ps -q -f name={{ stack_name }}_app
|
cmd: docker ps -q -f name={{ stack_name }}_app
|
||||||
become: yes
|
become: yes
|
||||||
until: gitea_app_container_name['rc'] == 0 and gitea_app_container_name['stdout'] | length >= 1
|
until: gitea_app_container_name['rc'] == 0 and gitea_app_container_name['stdout'] | length >= 1
|
||||||
retries: 5
|
retries: 10
|
||||||
delay: 10
|
delay: 10
|
||||||
changed_when: False
|
changed_when: False
|
||||||
register: gitea_app_container_name
|
register: gitea_app_container_name
|
||||||
|
|
@ -109,11 +116,10 @@
|
||||||
user: git
|
user: git
|
||||||
command: >
|
command: >
|
||||||
gitea admin user list --admin
|
gitea admin user list --admin
|
||||||
become: yes
|
until: gitea_admin_list is defined and gitea_admin_list['rc'] == 0
|
||||||
until: "'connection refused' not in gitea_admin_list['stdout'] and 'Failed to run app' not in gitea_admin_list['stdout']"
|
retries: 15
|
||||||
retries: 10
|
|
||||||
delay: 10
|
delay: 10
|
||||||
changed_when: gitea_admin_list['stdout_lines'] | length <= 1 and 'Username' in gitea_admin_list['stdout']
|
become: true
|
||||||
failed_when: (gitea_admin_list['rc'] == 1 and gitea_admin_list['attempts'] >= 5) or 'Gitea is not supposed to be run as root' in gitea_admin_list['stdout']
|
|
||||||
register: gitea_admin_list
|
register: gitea_admin_list
|
||||||
|
changed_when: gitea_admin_list['stdout_lines'] | length <= 1 and 'Username' in gitea_admin_list['stdout']
|
||||||
notify: "no admin user"
|
notify: "no admin user"
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue