Ansible: Migrate to docker_compose_v2
This commit is contained in:
parent
5ff42f4e74
commit
26dd365b80
22 changed files with 182 additions and 48 deletions
|
@ -1,5 +1,5 @@
|
|||
- name: Pull project services
|
||||
community.docker.docker_compose:
|
||||
community.docker.docker_compose_v2:
|
||||
project_src: "{{ project_dir }}"
|
||||
recreate: never
|
||||
pull: true
|
||||
|
@ -13,6 +13,6 @@
|
|||
loop: "{{ coturn_docker_compose_pull_result['actions'] | default([]) | selectattr('pulled_image', 'defined') }}"
|
||||
|
||||
- name: Create/Restart project services
|
||||
community.docker.docker_compose:
|
||||
community.docker.docker_compose_v2:
|
||||
project_src: "{{ project_dir }}"
|
||||
restarted: "{{ run_setup | default(false) | bool }}"
|
||||
state: "{{ run_setup | default(false) | bool | ternary('restarted', 'present') }}"
|
||||
|
|
|
@ -1,5 +1,5 @@
|
|||
- name: Pull project services
|
||||
community.docker.docker_compose:
|
||||
community.docker.docker_compose_v2:
|
||||
project_src: "{{ project_dir }}"
|
||||
recreate: never
|
||||
pull: true
|
||||
|
@ -19,6 +19,6 @@
|
|||
when: not run_backup | default(false) and diun_pulled_images is defined
|
||||
|
||||
- name: Create/Restart project services
|
||||
community.docker.docker_compose:
|
||||
community.docker.docker_compose_v2:
|
||||
project_src: "{{ project_dir }}"
|
||||
restarted: "{{ run_setup | default(false) | bool }}"
|
||||
state: "{{ run_setup | default(false) | bool | ternary('restarted', 'present') }}"
|
||||
|
|
|
@ -1,5 +1,5 @@
|
|||
- name: Pull project services
|
||||
community.docker.docker_compose:
|
||||
community.docker.docker_compose_v2:
|
||||
project_src: "{{ project_dir }}"
|
||||
recreate: never
|
||||
pull: true
|
||||
|
@ -13,6 +13,6 @@
|
|||
loop: "{{ element_docker_compose_pull_result['actions'] | default([]) | selectattr('pulled_image', 'defined') }}"
|
||||
|
||||
- name: Create/Restart project services
|
||||
community.docker.docker_compose:
|
||||
community.docker.docker_compose_v2:
|
||||
project_src: "{{ project_dir }}"
|
||||
restarted: "{{ run_setup | default(false) | bool }}"
|
||||
state: "{{ run_setup | default(false) | bool | ternary('restarted', 'present') }}"
|
||||
|
|
|
@ -1,5 +1,5 @@
|
|||
- name: Pull project services
|
||||
community.docker.docker_compose:
|
||||
community.docker.docker_compose_v2:
|
||||
project_src: "{{ project_dir }}"
|
||||
recreate: never
|
||||
pull: true
|
||||
|
@ -19,6 +19,6 @@
|
|||
when: not run_backup | default(false) and etebase_pulled_images is defined
|
||||
|
||||
- name: Create/Restart project services
|
||||
community.docker.docker_compose:
|
||||
community.docker.docker_compose_v2:
|
||||
project_src: "{{ project_dir }}"
|
||||
restarted: "{{ run_setup | default(false) | bool }}"
|
||||
state: "{{ run_setup | default(false) | bool | ternary('restarted', 'present') }}"
|
||||
|
|
|
@ -1,5 +1,5 @@
|
|||
- name: Pull project services
|
||||
community.docker.docker_compose:
|
||||
community.docker.docker_compose_v2:
|
||||
project_src: "{{ project_dir }}"
|
||||
recreate: never
|
||||
pull: true
|
||||
|
@ -13,6 +13,6 @@
|
|||
loop: "{{ fireshare_docker_compose_pull_result['actions'] | default([]) | selectattr('pulled_image', 'defined') }}"
|
||||
|
||||
- name: Create/Restart project services
|
||||
community.docker.docker_compose:
|
||||
community.docker.docker_compose_v2:
|
||||
project_src: "{{ project_dir }}"
|
||||
restarted: "{{ run_setup | default(false) | bool }}"
|
||||
state: "{{ run_setup | default(false) | bool | ternary('restarted', 'present') }}"
|
||||
|
|
|
@ -1,5 +1,5 @@
|
|||
- name: Pull project services
|
||||
community.docker.docker_compose:
|
||||
community.docker.docker_compose_v2:
|
||||
project_src: "{{ project_dir }}"
|
||||
recreate: never
|
||||
pull: true
|
||||
|
@ -19,6 +19,6 @@
|
|||
when: not run_backup | default(false) and hedgedoc_pulled_images is defined
|
||||
|
||||
- name: Create/Restart project services
|
||||
community.docker.docker_compose:
|
||||
community.docker.docker_compose_v2:
|
||||
project_src: "{{ project_dir }}"
|
||||
restarted: "{{ run_setup | default(false) | bool }}"
|
||||
state: "{{ run_setup | default(false) | bool | ternary('restarted', 'present') }}"
|
||||
|
|
|
@ -1,5 +1,5 @@
|
|||
- name: Pull project services
|
||||
community.docker.docker_compose:
|
||||
community.docker.docker_compose_v2:
|
||||
project_src: "{{ project_dir }}"
|
||||
recreate: never
|
||||
pull: true
|
||||
|
@ -13,6 +13,6 @@
|
|||
loop: "{{ homepage_docker_compose_pull_result['actions'] | default([]) | selectattr('pulled_image', 'defined') }}"
|
||||
|
||||
- name: Create/Restart project services
|
||||
community.docker.docker_compose:
|
||||
community.docker.docker_compose_v2:
|
||||
project_src: "{{ project_dir }}"
|
||||
restarted: "{{ run_setup | default(false) | bool }}"
|
||||
state: "{{ run_setup | default(false) | bool | ternary('restarted', 'present') }}"
|
||||
|
|
|
@ -1,5 +1,5 @@
|
|||
- name: Pull project services
|
||||
community.docker.docker_compose:
|
||||
community.docker.docker_compose_v2:
|
||||
project_src: "{{ project_dir }}"
|
||||
build: true
|
||||
recreate: never
|
||||
|
@ -20,6 +20,6 @@
|
|||
when: not run_backup | default(false) and keycloak_pulled_images is defined
|
||||
|
||||
- name: Create/Restart project services
|
||||
community.docker.docker_compose:
|
||||
community.docker.docker_compose_v2:
|
||||
project_src: "{{ project_dir }}"
|
||||
restarted: "{{ run_setup | default(false) | bool }}"
|
||||
state: "{{ run_setup | default(false) | bool | ternary('restarted', 'present') }}"
|
||||
|
|
|
@ -1,5 +1,5 @@
|
|||
- name: Pull project services
|
||||
community.docker.docker_compose:
|
||||
community.docker.docker_compose_v2:
|
||||
project_src: "{{ project_dir }}"
|
||||
recreate: never
|
||||
pull: true
|
||||
|
@ -19,6 +19,6 @@
|
|||
when: not run_backup | default(false) and mailserver_pulled_images is defined
|
||||
|
||||
- name: Create/Restart project services
|
||||
community.docker.docker_compose:
|
||||
community.docker.docker_compose_v2:
|
||||
project_src: "{{ project_dir }}"
|
||||
restarted: "{{ run_setup | default(false) | bool }}"
|
||||
state: "{{ run_setup | default(false) | bool | ternary('restarted', 'present') }}"
|
||||
|
|
24
roles/minecraft/tasks/backup.yml
Normal file
24
roles/minecraft/tasks/backup.yml
Normal file
|
@ -0,0 +1,24 @@
|
|||
- name: "Backup PostgreSQL vaultwarden database"
|
||||
shell: >
|
||||
docker exec postgres
|
||||
pg_dump -c {{ role_name }} |
|
||||
borg create
|
||||
--compression lzma
|
||||
"{{ borg_repodir }}::{{ role_name }}-{now:%Y-%m-%d_%H-%M-%S}"
|
||||
-
|
||||
--stdin-name dump_{{ role_name }}.sql
|
||||
environment:
|
||||
DOCKER_HOST: "{{ docker_host }}"
|
||||
BORG_PASSCOMMAND: "cat {{ borg_passphrase_file }}"
|
||||
become: true
|
||||
|
||||
- name: Prune borg repository
|
||||
command:
|
||||
cmd: |
|
||||
borg prune
|
||||
--glob-archives='{{ role_name }}-*'
|
||||
{{ borg_prune_options }}
|
||||
{{ borg_repodir }}
|
||||
environment:
|
||||
BORG_PASSCOMMAND: "cat {{ borg_passphrase_file }}"
|
||||
become: true
|
14
roles/minecraft/tasks/main.yml
Normal file
14
roles/minecraft/tasks/main.yml
Normal file
|
@ -0,0 +1,14 @@
|
|||
- name: Include backup tasks
|
||||
include_tasks:
|
||||
file: backup.yml
|
||||
when: run_backup | default(false) | bool
|
||||
|
||||
- name: Include setup tasks
|
||||
include_tasks:
|
||||
file: setup.yml
|
||||
when: run_setup | default(false) | bool
|
||||
|
||||
- name: Include update tasks
|
||||
include_tasks:
|
||||
file: update.yml
|
||||
when: run_update | default(false) | bool
|
28
roles/minecraft/tasks/setup.yml
Normal file
28
roles/minecraft/tasks/setup.yml
Normal file
|
@ -0,0 +1,28 @@
|
|||
- name: "(Re)Create {{ project_dir }} project directory"
|
||||
file:
|
||||
path: "{{ project_dir }}"
|
||||
state: "{{ item }}"
|
||||
loop:
|
||||
- absent
|
||||
- directory
|
||||
|
||||
- name: Template docker-compose.yaml & .env to project directory
|
||||
template:
|
||||
src: "{{ item }}"
|
||||
dest: "{{ project_dir }}/{{ item }}"
|
||||
owner: "{{ host_uid }}"
|
||||
group: "{{ host_uid }}"
|
||||
mode: '640'
|
||||
loop:
|
||||
- docker-compose.yaml
|
||||
- .env
|
||||
|
||||
- name: "Create (if not exists) directory {{ volumes['vaultwarden_datadir'] }} & set permissions"
|
||||
file:
|
||||
path: "{{ volumes['vaultwarden_datadir'] }}"
|
||||
state: directory
|
||||
recurse: true
|
||||
owner: "{{ users['vaultwarden'] + uid_shift }}"
|
||||
group: "{{ users['vaultwarden'] + uid_shift }}"
|
||||
mode: '770'
|
||||
become: true
|
24
roles/minecraft/tasks/update.yml
Normal file
24
roles/minecraft/tasks/update.yml
Normal file
|
@ -0,0 +1,24 @@
|
|||
- name: Pull project services
|
||||
community.docker.docker_compose_v2:
|
||||
project_src: "{{ project_dir }}"
|
||||
recreate: never
|
||||
pull: true
|
||||
debug: true
|
||||
when: docker_pull_images | bool
|
||||
register: vaultwarden_docker_compose_pull_result
|
||||
|
||||
- name: Display pulled image(s) name
|
||||
set_fact:
|
||||
vaultwarden_pulled_images: "{{ vaultwarden_pulled_images | default([]) + [item.pulled_image.name] }}"
|
||||
loop: "{{ vaultwarden_docker_compose_pull_result['actions'] | default([]) | selectattr('pulled_image', 'defined') }}"
|
||||
|
||||
- name: Include backup tasks
|
||||
include_tasks:
|
||||
file: backup.yml
|
||||
# Make a backup if we didn't already make one and we pulled a new image
|
||||
when: not run_backup | default(false) and vaultwarden_pulled_images is defined
|
||||
|
||||
- name: Create/Restart project services
|
||||
community.docker.docker_compose_v2:
|
||||
project_src: "{{ project_dir }}"
|
||||
state: "{{ run_setup | default(false) | bool | ternary('restarted', 'present') }}"
|
12
roles/minecraft/templates/.env
Normal file
12
roles/minecraft/templates/.env
Normal file
|
@ -0,0 +1,12 @@
|
|||
ADMIN_TOKEN='{{ vaultwarden_secrets["admin_token_hash"] }}'
|
||||
DOMAIN=https://vw.{{ domain }}
|
||||
SIGNUPS_ALLOWED=false
|
||||
|
||||
DATABASE_URL=postgresql://{{ vaultwarden_secrets['postgres_user'] }}:{{ vaultwarden_secrets['postgres_password'] }}@postgres.{{ domain }}:{{ ports['postgres'] }}/vaultwarden
|
||||
|
||||
SMTP_HOST=mail.{{ domain }}
|
||||
SMTP_FROM=vaultwarden@{{ domain }}
|
||||
SMTP_PORT={{ ports['mailserver_smtps'] }}
|
||||
SMTP_SECURITY=force_tls
|
||||
SMTP_USERNAME='{{ vaultwarden_secrets["smtp_username"] }}'
|
||||
SMTP_PASSWORD='{{ vaultwarden_secrets["smtp_password"] }}'
|
32
roles/minecraft/templates/docker-compose.yaml
Normal file
32
roles/minecraft/templates/docker-compose.yaml
Normal file
|
@ -0,0 +1,32 @@
|
|||
services:
|
||||
minecraft:
|
||||
container_name: minecraft
|
||||
image: docker.io/itzg/minecraft-server:latest
|
||||
restart: always
|
||||
deploy:
|
||||
resources:
|
||||
limits:
|
||||
cpus: '0.8'
|
||||
environment:
|
||||
UID: 1011
|
||||
GID: 1011
|
||||
VERSION: 1.21.1
|
||||
EULA: "TRUE"
|
||||
MEMORY: 1.25G
|
||||
ENABLE_COMMAND_BLOCK: "true"
|
||||
MOTD: "Fjeaj"
|
||||
OPS: |
|
||||
Viyurz
|
||||
TYPE: FABRIC
|
||||
MODS: |
|
||||
https://cdn.modrinth.com/data/gvQqBUqZ/versions/5szYtenV/lithium-fabric-mc1.21.1-0.13.0.jar
|
||||
https://cdn.modrinth.com/data/uXXizFIs/versions/wmIZ4wP4/ferritecore-7.0.0-fabric.jar
|
||||
ports:
|
||||
- "3690:25565"
|
||||
- "25565:25565"
|
||||
volumes:
|
||||
- minecraft:/data
|
||||
|
||||
volumes:
|
||||
minecraft:
|
||||
name: minecraft
|
|
@ -1,5 +1,5 @@
|
|||
- name: Pull project services
|
||||
community.docker.docker_compose:
|
||||
community.docker.docker_compose_v2:
|
||||
project_src: "{{ project_dir }}"
|
||||
recreate: never
|
||||
pull: true
|
||||
|
@ -19,6 +19,6 @@
|
|||
when: not run_backup | default(false) and postgres_pulled_images is defined
|
||||
|
||||
- name: Create/Restart project services
|
||||
community.docker.docker_compose:
|
||||
community.docker.docker_compose_v2:
|
||||
project_src: "{{ project_dir }}"
|
||||
restarted: "{{ run_setup | default(false) | bool }}"
|
||||
state: "{{ run_setup | default(false) | bool | ternary('restarted', 'present') }}"
|
||||
|
|
|
@ -1,5 +1,5 @@
|
|||
- name: Pull project services
|
||||
community.docker.docker_compose:
|
||||
community.docker.docker_compose_v2:
|
||||
project_src: "{{ project_dir }}"
|
||||
recreate: never
|
||||
pull: true
|
||||
|
@ -13,6 +13,6 @@
|
|||
loop: "{{ searxng_docker_compose_pull_result['actions'] | default([]) | selectattr('pulled_image', 'defined') }}"
|
||||
|
||||
- name: Create/Restart project services
|
||||
community.docker.docker_compose:
|
||||
community.docker.docker_compose_v2:
|
||||
project_src: "{{ project_dir }}"
|
||||
restarted: "{{ run_setup | default(false) | bool }}"
|
||||
state: "{{ run_setup | default(false) | bool | ternary('restarted', 'present') }}"
|
||||
|
|
|
@ -1,5 +1,5 @@
|
|||
- name: Pull project services
|
||||
community.docker.docker_compose:
|
||||
community.docker.docker_compose_v2:
|
||||
project_src: "{{ project_dir }}"
|
||||
recreate: never
|
||||
pull: true
|
||||
|
@ -19,6 +19,6 @@
|
|||
when: not run_backup | default(false) and stump_pulled_images is defined
|
||||
|
||||
- name: Create/Restart project services
|
||||
community.docker.docker_compose:
|
||||
community.docker.docker_compose_v2:
|
||||
project_src: "{{ project_dir }}"
|
||||
restarted: "{{ run_setup | default(false) | bool }}"
|
||||
state: "{{ run_setup | default(false) | bool | ternary('restarted', 'present') }}"
|
||||
|
|
|
@ -1,5 +1,5 @@
|
|||
- name: Pull project services
|
||||
community.docker.docker_compose:
|
||||
community.docker.docker_compose_v2:
|
||||
project_src: "{{ project_dir }}"
|
||||
recreate: never
|
||||
pull: true
|
||||
|
@ -19,6 +19,6 @@
|
|||
when: not run_backup | default(false) and synapse_pulled_images is defined
|
||||
|
||||
- name: Create/Restart project services
|
||||
community.docker.docker_compose:
|
||||
community.docker.docker_compose_v2:
|
||||
project_src: "{{ project_dir }}"
|
||||
restarted: "{{ run_setup | default(false) | bool }}"
|
||||
state: "{{ run_setup | default(false) | bool | ternary('restarted', 'present') }}"
|
||||
|
|
|
@ -1,5 +1,5 @@
|
|||
- name: Pull project services
|
||||
community.docker.docker_compose:
|
||||
community.docker.docker_compose_v2:
|
||||
project_src: "{{ project_dir }}"
|
||||
recreate: never
|
||||
pull: true
|
||||
|
@ -13,6 +13,6 @@
|
|||
loop: "{{ syncthing_docker_compose_pull_result['actions'] | default([]) | selectattr('pulled_image', 'defined') }}"
|
||||
|
||||
- name: Create/Restart project services
|
||||
community.docker.docker_compose:
|
||||
community.docker.docker_compose_v2:
|
||||
project_src: "{{ project_dir }}"
|
||||
restarted: "{{ run_setup | default(false) | bool }}"
|
||||
state: "{{ run_setup | default(false) | bool | ternary('restarted', 'present') }}"
|
||||
|
|
|
@ -1,5 +1,5 @@
|
|||
- name: Pull project services
|
||||
community.docker.docker_compose:
|
||||
community.docker.docker_compose_v2:
|
||||
project_src: "{{ project_dir }}"
|
||||
recreate: never
|
||||
pull: true
|
||||
|
@ -19,6 +19,6 @@
|
|||
when: not run_backup | default(false) and uptime_kuma_pulled_images is defined
|
||||
|
||||
- name: Create/Restart project services
|
||||
community.docker.docker_compose:
|
||||
community.docker.docker_compose_v2:
|
||||
project_src: "{{ project_dir }}"
|
||||
restarted: "{{ run_setup | default(false) | bool }}"
|
||||
state: "{{ run_setup | default(false) | bool | ternary('restarted', 'present') }}"
|
||||
|
|
|
@ -1,5 +1,5 @@
|
|||
- name: Pull project services
|
||||
community.docker.docker_compose:
|
||||
community.docker.docker_compose_v2:
|
||||
project_src: "{{ project_dir }}"
|
||||
recreate: never
|
||||
pull: true
|
||||
|
@ -19,6 +19,6 @@
|
|||
when: not run_backup | default(false) and vaultwarden_pulled_images is defined
|
||||
|
||||
- name: Create/Restart project services
|
||||
community.docker.docker_compose:
|
||||
community.docker.docker_compose_v2:
|
||||
project_src: "{{ project_dir }}"
|
||||
restarted: "{{ run_setup | default(false) | bool }}"
|
||||
state: "{{ run_setup | default(false) | bool | ternary('restarted', 'present') }}"
|
||||
|
|
Loading…
Reference in a new issue