From 1a0114fa34115147f4ead6262c49bf6b1025f052 Mon Sep 17 00:00:00 2001 From: Gleb Koval Date: Mon, 29 Jan 2024 22:42:27 +0000 Subject: [PATCH] nextcloud aio: - remove immich decommision (it's fine(tm)) - use ansible to create container, instead of bash script --- ...003_00_cleanup_script_deploy_playbook.yaml | 13 ++++ infra/cloud/0003_nextcloud_playbook.yaml | 36 ++++++---- .../0004_decommission_immich_playbook.yaml | 71 ------------------- infra/cloud/nextcloud/all-in-one.sh | 21 ------ 4 files changed, 35 insertions(+), 106 deletions(-) create mode 100644 infra/cloud/0003_00_cleanup_script_deploy_playbook.yaml delete mode 100644 infra/cloud/0004_decommission_immich_playbook.yaml delete mode 100644 infra/cloud/nextcloud/all-in-one.sh diff --git a/infra/cloud/0003_00_cleanup_script_deploy_playbook.yaml b/infra/cloud/0003_00_cleanup_script_deploy_playbook.yaml new file mode 100644 index 0000000..a14ecce --- /dev/null +++ b/infra/cloud/0003_00_cleanup_script_deploy_playbook.yaml @@ -0,0 +1,13 @@ +- name: Cleanup old ~/nextcloud directory + hosts: cloud + gather_facts: false + vars: + app: nextcloud + tasks: + - name: Wait for connection + ansible.builtin.wait_for_connection: + timeout: 300 + - name: Delete nextcloud directory + ansible.builtin.file: + path: "$HOME/{{ app }}" + state: absent diff --git a/infra/cloud/0003_nextcloud_playbook.yaml b/infra/cloud/0003_nextcloud_playbook.yaml index 46842d1..d3d9b63 100644 --- a/infra/cloud/0003_nextcloud_playbook.yaml +++ b/infra/cloud/0003_nextcloud_playbook.yaml @@ -2,21 +2,29 @@ hosts: cloud gather_facts: false vars: - app: nextcloud + container: nextcloud-aio-mastercontainer tasks: - name: Wait for connection ansible.builtin.wait_for_connection: timeout: 300 - - name: Get user - ansible.builtin.user: - name: debian - register: user - - name: Copy project - ansible.builtin.copy: - src: "./{{ app }}" - dest: "{{ user.home }}" - mode: "0744" - - name: Re-deploy - ansible.builtin.command: bash all-in-one.sh - args: - chdir: "{{ user.home }}/{{ app }}" + - name: Deploy master container + community.docker.docker_container: + image: nextcloud/all-in-one:latest + recreate: true + state: started + restart_policy: unless-stopped + init: true + name: "{{ container }}" + published_ports: + - 8080:8080 + env: + NEXTCLOUD_UPLOAD_LIMIT: 16G + NEXTCLOUD_MAX_TIME: "7200" + NEXTCLOUD_ADDITIONAL_APKS: imagemagick ffmpeg + APACHE_PORT: "11000" + APACHE_IP_BINDING: "0.0.0.0" + TZ: Europe/London + AIO_DISABLE_BACKUP_SECTION: "true" + volumes: + - nextcloud_aio_mastercontainer:/mnt/docker-aio-config + - /var/run/docker.sock:/var/run/docker.sock:ro diff --git a/infra/cloud/0004_decommission_immich_playbook.yaml b/infra/cloud/0004_decommission_immich_playbook.yaml deleted file mode 100644 index abdbd12..0000000 --- a/infra/cloud/0004_decommission_immich_playbook.yaml +++ /dev/null @@ -1,71 +0,0 @@ -- name: Decommission Immich - hosts: cloud - gather_facts: false - vars: - app: immich - api_user: "{{ lookup('ansible.builtin.env', 'PROXMOX_USER') }}" - api_host: "{{ lookup('ansible.builtin.env', 'PROXMOX_HOST' ) }}" - api_token_id: "{{ lookup('ansible.builtin.env', 'PROXMOX_TOKEN_ID') }}" - api_token_secret: "{{ lookup('ansible.builtin.env', 'PROXMOX_TOKEN_SECRET') }}" - vmname: "{{ inventory_hostname | regex_replace('^([^\\.]+)\\..+$', '\\1') }}" - node: pve - module_defaults: - community.general.proxmox_kvm: - api_user: "{{ api_user }}" - api_host: "{{ api_host }}" - api_token_id: "{{ api_token_id }}" - api_token_secret: "{{ api_token_secret }}" - name: "{{ vmname }}" - node: "{{ node }}" - community.general.proxmox_disk: - api_user: "{{ api_user }}" - api_host: "{{ api_host }}" - api_token_id: "{{ api_token_id }}" - api_token_secret: "{{ api_token_secret }}" - name: "{{ vmname }}" - tasks: - - name: Wait for connection - ansible.builtin.wait_for_connection: - timeout: 300 - - name: Get user - ansible.builtin.user: - name: debian - register: user - - name: Docker compose down - ansible.builtin.command: docker compose down - args: - chdir: "{{ user.home }}/{{ app }}" - ignore_errors: true - - name: Remove docker volumes - ansible.builtin.command: docker compose down --volumes - args: - chdir: "{{ user.home }}/{{ app }}" - ignore_errors: true - - name: Remove config directory - ansible.builtin.file: - path: "{{ user.home }}/{{ app }}" - state: absent - - - name: Destroy media disk - community.general.proxmox_disk: - disk: scsi2 - state: absent - delegate_to: localhost - - name: Remove media mount - ansible.posix.mount: - src: /dev/disk/by-path/pci-0000:00:05.0-scsi-0:0:0:2-part1 - path: /mnt/media - fstype: ext4 - opts: rw,errors=remount-ro,x-systemd.growfs - state: absent - become: true - - name: Remove media directory - ansible.builtin.file: - path: /mnt/media - state: absent - become: true - - name: Restart VM - community.general.proxmox_kvm: - state: restarted - timeout: 60 - delegate_to: localhost diff --git a/infra/cloud/nextcloud/all-in-one.sh b/infra/cloud/nextcloud/all-in-one.sh deleted file mode 100644 index d4feaf8..0000000 --- a/infra/cloud/nextcloud/all-in-one.sh +++ /dev/null @@ -1,21 +0,0 @@ -#!/bin/bash - -docker stop nextcloud-aio-mastercontainer || true -docker rm nextcloud-aio-mastercontainer || true - -docker run \ ---init \ ---sig-proxy=false \ ---name nextcloud-aio-mastercontainer \ ---restart unless-stopped \ ---publish 8080:8080 \ ---env NEXTCLOUD_UPLOAD_LIMIT=16G \ ---env NEXTCLOUD_MAX_TIME=7200 \ ---env NEXTCLOUD_ADDITIONAL_APKS="imagemagick ffmpeg" \ ---env APACHE_PORT=11000 \ ---env APACHE_IP_BINDING=0.0.0.0 \ ---env TZ=Europe/London \ ---env AIO_DISABLE_BACKUP_SECTION=true \ ---volume nextcloud_aio_mastercontainer:/mnt/docker-aio-config \ ---volume /var/run/docker.sock:/var/run/docker.sock:ro \ --d nextcloud/all-in-one:latest