Compare commits
27 Commits
gitea-acti
...
experiment
Author | SHA1 | Date | |
---|---|---|---|
|
97bd47a03d | ||
a451843b85 | |||
283d63a37a | |||
b5986b9592 | |||
657b771790 | |||
4857f2d5b9 | |||
d32e4f3608 | |||
1025b8f076 | |||
4f1c51475c | |||
d8a29adb56 | |||
124456ae07 | |||
130a53ed58 | |||
0f9d5f53c4 | |||
f9d1e42513 | |||
e8e05f8391 | |||
6817fe0ff9 | |||
c391a07485 | |||
d0258a3fc2 | |||
f83e0044b7 | |||
e4d723ed30 | |||
b52f8767f6 | |||
d64c96576c | |||
6d90fe0510 | |||
b2424e95b4 | |||
d8e817c969 | |||
af023c0487 | |||
c900fefb03 |
0
.ansible-lint-ignore
Normal file
0
.ansible-lint-ignore
Normal file
30
handlers/backup.yaml
Normal file
30
handlers/backup.yaml
Normal file
@@ -0,0 +1,30 @@
|
||||
- name: Get stats of docker-compose.yaml
|
||||
ansible.builtin.stat:
|
||||
path: /opt/gitea/docker-compose.yaml
|
||||
register: docker_compose_stat
|
||||
listen:
|
||||
- Backup Gitea
|
||||
|
||||
- name: Stop Gitea for Backup
|
||||
community.docker.docker_compose:
|
||||
project_src: /opt/gitea
|
||||
state: present
|
||||
stopped: true
|
||||
register: docker_compose
|
||||
listen:
|
||||
- Backup Gitea
|
||||
notify:
|
||||
- Ensure Gitea is running
|
||||
when: docker_compose_stat.stat.exists is defined and docker_compose_stat.stat.exists
|
||||
|
||||
- name: Backup Gitea Directory
|
||||
community.general.archive:
|
||||
path: /opt/gitea/
|
||||
dest: "/var/backups/gitea-{{ gitea.hostname }}.{{ gitea.domain }}@{{ lookup('pipe', 'date --utc --iso-8601=seconds') }}.tar.gz"
|
||||
force_archive: true
|
||||
format: gz
|
||||
owner: root
|
||||
mode: "400"
|
||||
listen:
|
||||
- Backup Gitea
|
||||
register: backup
|
32
handlers/main.yaml
Normal file
32
handlers/main.yaml
Normal file
@@ -0,0 +1,32 @@
|
||||
- name: Import Backup Handler
|
||||
ansible.builtin.import_tasks:
|
||||
file: backup.yaml
|
||||
|
||||
- name: Ensure Gitea is restarted
|
||||
community.docker.docker_compose:
|
||||
project_src: /opt/gitea
|
||||
restarted: true
|
||||
register: docker_compose
|
||||
|
||||
- name: Ensure Gitea is running
|
||||
community.docker.docker_compose:
|
||||
project_src: /opt/gitea
|
||||
register: docker_compose
|
||||
|
||||
- name: Get Gitea HTTP Response
|
||||
ansible.builtin.uri:
|
||||
url: "https://{{ gitea.hostname }}.{{ gitea.domain }}"
|
||||
register: gitea_http_response
|
||||
failed_when: 400 <= gitea_http_response.status < 500
|
||||
|
||||
- name: Wait until Gitea is up
|
||||
ansible.builtin.uri:
|
||||
url: "https://{{ gitea.hostname }}.{{ gitea.domain }}"
|
||||
register: gitea_http_response
|
||||
until: gitea_http_response.status == 200
|
||||
retries: 30
|
||||
delay: 2
|
||||
|
||||
- name: Output Docker Compose State
|
||||
ansible.builtin.debug:
|
||||
var: docker_compose
|
142
tasks/main.yaml
142
tasks/main.yaml
@@ -1,11 +1,9 @@
|
||||
|
||||
---
|
||||
#- name: Install Dependencies
|
||||
# apt:
|
||||
# pkg:
|
||||
# - apparmor
|
||||
# - docker.io
|
||||
# - python3-docker
|
||||
# - name: Install Dependencies
|
||||
# apt:
|
||||
# pkg:
|
||||
# - apparmor
|
||||
# - docker.io
|
||||
# - python3-docker
|
||||
|
||||
- name: Create git USER
|
||||
ansible.builtin.user:
|
||||
@@ -13,106 +11,76 @@
|
||||
register: git_user
|
||||
|
||||
- name: Create Gitea
|
||||
file:
|
||||
ansible.builtin.file:
|
||||
path: "/opt/gitea"
|
||||
state: directory
|
||||
owner: root
|
||||
mode: 0755
|
||||
mode: "755"
|
||||
|
||||
- name: Create Data Directory
|
||||
file:
|
||||
ansible.builtin.file:
|
||||
path: "/opt/gitea/data"
|
||||
state: directory
|
||||
owner: "{{ git_user.uid }}"
|
||||
group: "{{ git_user.group }}"
|
||||
mode: 0700
|
||||
mode: "700"
|
||||
|
||||
- name: Create Config Directory
|
||||
file:
|
||||
ansible.builtin.file:
|
||||
path: "/opt/gitea/config"
|
||||
state: directory
|
||||
owner: "{{ git_user.uid }}"
|
||||
group: "{{ git_user.group }}"
|
||||
mode: 0700
|
||||
mode: "700"
|
||||
|
||||
- name: Start Docker Daemon
|
||||
systemd:
|
||||
ansible.builtin.systemd:
|
||||
name: docker
|
||||
enabled: yes
|
||||
enabled: true
|
||||
state: started
|
||||
|
||||
- name: Backup Files
|
||||
block:
|
||||
- name: Stop Gitea for Backup
|
||||
community.docker.docker_compose:
|
||||
project_src: /opt/gitea
|
||||
state: present
|
||||
stopped: true
|
||||
- name: Check if environment.env will get changed
|
||||
ansible.builtin.template:
|
||||
src: environment.env.j2
|
||||
dest: "/opt/gitea/environment.env"
|
||||
owner: root
|
||||
mode: "600"
|
||||
register: env_diff
|
||||
check_mode: true
|
||||
notify:
|
||||
- Backup Gitea
|
||||
|
||||
- name: Backup Gitea Directory
|
||||
ansible.builtin.copy:
|
||||
src: /opt/gitea
|
||||
dest: "/opt/gitea.backup@{{ ansible_date_time.iso8601 }}"
|
||||
remote_src: true
|
||||
directory_mode: true
|
||||
register: backup
|
||||
- name: Check if docker-compose.yaml will get changed
|
||||
ansible.builtin.template:
|
||||
src: docker-compose.yaml.j2
|
||||
dest: /opt/gitea/docker-compose.yaml
|
||||
owner: root
|
||||
mode: "600"
|
||||
register: docker_compose_diff
|
||||
check_mode: true
|
||||
notify:
|
||||
- Backup Gitea
|
||||
|
||||
- name: Apply Changes
|
||||
block:
|
||||
- name: Upload Environment File
|
||||
ansible.builtin.template:
|
||||
src: environment.env.j2
|
||||
dest: "/opt/gitea/environment.env"
|
||||
owner: root
|
||||
mode: 0600
|
||||
register: gitea_env
|
||||
- name: Execute Handlers before changing configfiles
|
||||
ansible.builtin.meta: flush_handlers
|
||||
|
||||
- name: Upload docker-compose.yaml
|
||||
ansible.builtin.template:
|
||||
src: docker-compose.yaml.j2
|
||||
dest: /opt/gitea/docker-compose.yaml
|
||||
owner: root
|
||||
mode: 0600
|
||||
register: gitea_container
|
||||
- name: Upload Environment File
|
||||
ansible.builtin.template:
|
||||
src: environment.env.j2
|
||||
dest: "/opt/gitea/environment.env"
|
||||
owner: root
|
||||
mode: "600"
|
||||
notify:
|
||||
- Ensure Gitea is restarted
|
||||
- Wait until Gitea is up
|
||||
|
||||
- name: Create / Recreate Gitea
|
||||
community.docker.docker_compose:
|
||||
project_src: /opt/gitea
|
||||
state: present
|
||||
restarted: true
|
||||
when: gitea_env.changed or gitea_container.changed
|
||||
|
||||
- name: Check if {{ gitea.hostname }}.{{ gitea.domain }} is available and returning status 200
|
||||
ansible.builtin.uri:
|
||||
url: "https://{{ gitea.hostname }}.{{ gitea.domain }}"
|
||||
register: _result
|
||||
until: _result.status == 200
|
||||
retries: 30
|
||||
delay: 2
|
||||
|
||||
rescue:
|
||||
- name: Stop Gitea for Backup
|
||||
community.docker.docker_compose:
|
||||
project_src: /opt/gitea
|
||||
state: present
|
||||
stopped: true
|
||||
|
||||
- name: Restore Gitea Directory from Backup
|
||||
ansible.builtin.copy:
|
||||
src: "{{ backup.dest }}"
|
||||
dest: "{{ backup.src }}"
|
||||
remote_src: true
|
||||
|
||||
- name: Create / Recreate Gitea
|
||||
community.docker.docker_compose:
|
||||
project_src: /opt/gitea
|
||||
state: present
|
||||
restarted: true
|
||||
always:
|
||||
- name: Check if {{ gitea.hostname }}.{{ gitea.domain }} is available and returning status 200
|
||||
ansible.builtin.uri:
|
||||
url: "https://{{ gitea.hostname }}.{{ gitea.domain }}"
|
||||
register: _result
|
||||
until: _result.status == 200
|
||||
retries: 30
|
||||
delay: 2
|
||||
- name: Upload docker-compose.yaml
|
||||
ansible.builtin.template:
|
||||
src: docker-compose.yaml.j2
|
||||
dest: /opt/gitea/docker-compose.yaml
|
||||
owner: root
|
||||
mode: "600"
|
||||
notify:
|
||||
- Output Docker Compose State
|
||||
- Ensure Gitea is restarted
|
||||
- Wait until Gitea is up
|
||||
|
@@ -47,9 +47,6 @@ GITEA__database__SQLITE_JOURNAL_MODE={{ gitea_vars.database.sqlite_journal_mode
|
||||
{% if 'iterate_buffer_size' in gitea_vars['database'] %}
|
||||
GITEA__database__ITERATE_BUFFER_SIZE={{ gitea_vars.database.iterate_buffer_size }}
|
||||
{% endif %}
|
||||
{% if 'charset' in gitea_vars['database'] %}
|
||||
GITEA__database__CHARSET={{ gitea_vars.database.charset }}
|
||||
{% endif %}
|
||||
{% if 'path' in gitea_vars['database'] %}
|
||||
GITEA__database__PATH={{ gitea_vars.database.path }}
|
||||
{% endif %}
|
||||
@@ -93,7 +90,7 @@ GITEA__service__ENABLE_NOTIFY_MAIL={{ gitea_vars.service.enable_notify_mail }}
|
||||
GITEA__service__DEFAULT_KEEP_EMAIL_PRIVATE={{ gitea_vars.service.default_keep_email_private }}
|
||||
{% endif %}
|
||||
{% if 'default_allow_create_organization' in gitea_vars['service'] %}
|
||||
GITEA__service__DEFAULT_ALLOW_CREATE_ORGANIZATION ={{ gitea_vars.service.default_allow_create_organization }}
|
||||
GITEA__service__DEFAULT_ALLOW_CREATE_ORGANIZATION={{ gitea_vars.service.default_allow_create_organization }}
|
||||
{% endif %}
|
||||
{% if 'default_enable_timetracking' in gitea_vars['service'] %}
|
||||
GITEA__service__DEFAULT_ENABLE_TIMETRACKING={{ gitea_vars.service.default_enable_timetracking }}
|
||||
|
@@ -1,7 +1,7 @@
|
||||
gitea_defaults:
|
||||
gitea_vars: |
|
||||
{%- if gitea is defined and gitea is iterable -%}
|
||||
{{ gitea_defaults | combine (gitea, recursive=True) }}
|
||||
{{ gitea_defaults | combine(gitea, recursive=True) }}
|
||||
{%- else -%}
|
||||
{{ gitea }}
|
||||
{%- endif -%}
|
||||
|
Reference in New Issue
Block a user