diff --git a/ansible/inventory/host_vars/postgresql_v15.yml b/ansible/inventory/host_vars/postgresql_v15.yml deleted file mode 100644 index 81afe3226..000000000 --- a/ansible/inventory/host_vars/postgresql_v15.yml +++ /dev/null @@ -1 +0,0 @@ -postgresql_version: 15 diff --git a/ansible/inventory/host_vars/postgresql_v16.yml b/ansible/inventory/host_vars/postgresql_v16.yml deleted file mode 100644 index ce2de941e..000000000 --- a/ansible/inventory/host_vars/postgresql_v16.yml +++ /dev/null @@ -1 +0,0 @@ -postgresql_version: 16 diff --git a/ansible/inventory/host_vars/storage.sops.yaml b/ansible/inventory/host_vars/storage.sops.yaml deleted file mode 100644 index fd1cfbefb..000000000 --- a/ansible/inventory/host_vars/storage.sops.yaml +++ /dev/null @@ -1,29 +0,0 @@ -kind: Secret -ansible_password: ENC[AES256_GCM,data:QKiW/9ARHg==,iv:UEAQglzSMYkWDoBvrdtEf3RE6FlBX8y0QZwqZWv6fdY=,tag:9N5onkoUBAAZsHp1bDKoCg==,type:str] -ansible_become_pass: ENC[AES256_GCM,data:xF8pLJRXLQ==,iv:cv0e1CoAoOoSlI1D7yxl1BSKaSuttyCkBg9+63ohvxM=,tag:GYu39reCXDM6Uu2j7FVybA==,type:str] -minio_root_user: ENC[AES256_GCM,data:DdNuALL99AnFr272Gs0noQ==,iv:Fx9XZQblytbMFOFMC2ay/l+eFR26ufNcLJfIEbPuSDg=,tag:00llM76qqqCNzp3XxDqwOg==,type:str] -minio_root_password: ENC[AES256_GCM,data:MQK+WFFstwnPVBJve4Y/Ag==,iv:et4mljyjUUE54glfK5JLBwXquZMBOiU54yXj3VCtExc=,tag:lknG5JeBqyJs1zd461tTzw==,type:str] -ovh_endpoint: ENC[AES256_GCM,data:bKy/sMlw,iv:o6lc/f/S5QOkDHF8iLJinOV93joLGP9YHINDc/AuivE=,tag:4mB81IJthXJf2V4Qv591pA==,type:str] -ovh_application_key: ENC[AES256_GCM,data:XUZMwWrwSDUk+VyQXHyhdA==,iv:0PAKRsCiTeIy4d6S8aF3T3pp/GPNXWCMCKBGo6t+aQQ=,tag:UWlkrvXZS1vP1GUSMs3hGw==,type:str] -ovh_application_secret: ENC[AES256_GCM,data:debtTD7GbiLrFwMtFkh7UHBbxMtcjIUXnWVgLy76Vi4=,iv:tNwTr+0P/r9/FSjVlCuVXYFpOyZJWvvsVwUr4FNIVRs=,tag:eeju5p9AywRLkJuXNuyHhA==,type:str] -ovh_consumer_key: ENC[AES256_GCM,data:mfA7cEa5aHowmUEpUZn6N3ylb2bjdj2ejwgZDLjrnNM=,iv:aYDHOqeoa5Q4SBQj3upBfW9u0hVOqM7IGBObkt1Ap0c=,tag:1yVumvVlvI77PrOiX1pgYQ==,type:str] -sops: - kms: [] - gcp_kms: [] - azure_kv: [] - hc_vault: [] - age: - - recipient: age1hhurqwmfvl9m3vh3hk8urulfzcdsrep2ax2neazqt435yhpamu3qj20asg - enc: | - -----BEGIN AGE ENCRYPTED FILE----- - YWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSBtVllLOFcwWXVoNXZobFF1 - VGJmczlkL1V3blhvcnFzN2V6S1B1Ui81alRNClVEUWFmSWxKbENBRVZJN01PSWM5 - d2M3OHFhOGpadEdrWUIxZGpMNTR2aVkKLS0tIE84ZkxzTlBpZVlqR2xQRmM0V0ZR - aG5zWW1XclBOS2cxMkwzZ3c1R1psNGsKzeSHHV7AYXCUNiiXJlBRFVWMZtfK3naj - VRtF22+DYfjumQuwam2ZzhdLQ//1ciHnkJc58dKeTbYUHzC+fWpaZQ== - -----END AGE ENCRYPTED FILE----- - lastmodified: "2024-05-10T19:19:48Z" - mac: ENC[AES256_GCM,data:zZMPejKZawGE/ejtG5Kue8efIKY8pRH0v/cO4pfH1M6zHpAg2eaDG1wWPC2O7xbEfkUstGu8YFNVPO+tOYWR5oGBEbeJVm/ZieolHOWYcCasBDgnUX3UnPXibvevbm7xxC9o8mdRH9rENzQo4NZEv1/y9sCXLtQvtsfVswmywKA=,iv:JezVNspVQP3wLfneM1L1U+QDom88l01Q+lwFJNJmco8=,tag:IRc1hvPvsfvvXb51PKx4cg==,type:str] - pgp: [] - unencrypted_regex: ^(kind)$ - version: 3.8.1 diff --git a/ansible/inventory/host_vars/truenas.sops.yaml b/ansible/inventory/host_vars/truenas.sops.yaml deleted file mode 100644 index 26a8aa8e6..000000000 --- a/ansible/inventory/host_vars/truenas.sops.yaml +++ /dev/null @@ -1,27 +0,0 @@ -kind: Secret -root_api_key: ENC[AES256_GCM,data:Fhj1MGeHxe/A6O7uVjMrCEu7J4rsiWrhbXgbAenb5CunoRPu0XLV/227WAFc4wFkboFNnt3bjzugvdvM5w/0JSry,iv:7uuHkrSKGShhIso8RgIJsOSYOxBiyyM/D5Dg+IGDh1Y=,tag:dP4gfIIUAEBUm91h5IHSug==,type:str] -ansible_password: ENC[AES256_GCM,data:zRaOy+b26VWMCVIPKLU=,iv:S+BX0fqVizWTZZr0A4MaXkw/4XhE2Pb+RGPjvnWuUpk=,tag:TUcGk8Hp9Zv17L/pmX4E7g==,type:str] -ansible_become_pass: ENC[AES256_GCM,data:xGVU7dW/MMI9bV6Vz+M=,iv:6/ikVQfHxjdCy5KKT+Yksj/OFws2WRcy8oDI2Oay7Eo=,tag:JOLmvpOAIjIHJ/K7Eaoxjw==,type:str] -minio_access_key: ENC[AES256_GCM,data:S4jElnraMiUip89QcF9VjQ==,iv:gSgUnDPTgIyXvmXt/ocIB3v6Dcq+c8ADrmQXVwgXVAM=,tag:ykHGBcHbZ431gvkxp6q+iA==,type:str] -minio_secret_key: ENC[AES256_GCM,data:kfeIRjsEGFAsQmVw9QsyoA==,iv:milmhE0Y2mdW6Yx910IsRRwNO7JxsYhUL5wBDTOUBLU=,tag:Ghy68+5i4m/0+IIve23YJQ==,type:str] -postgresql_password: ENC[AES256_GCM,data:Fm/TW9zb36GzPOstV2kt96WJPAJ/0ylsSKDzzJdLmmsUQINSsXag5g==,iv:KkdOsbTN8i6taJXpavBTXCcJhRyMzmwf3gjh/nubu5M=,tag:0wWqT3ij2mudjT/vZT9OjA==,type:str] -sops: - kms: [] - gcp_kms: [] - azure_kv: [] - hc_vault: [] - age: - - recipient: age1hhurqwmfvl9m3vh3hk8urulfzcdsrep2ax2neazqt435yhpamu3qj20asg - enc: | - -----BEGIN AGE ENCRYPTED FILE----- - YWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSBtVllLOFcwWXVoNXZobFF1 - VGJmczlkL1V3blhvcnFzN2V6S1B1Ui81alRNClVEUWFmSWxKbENBRVZJN01PSWM5 - d2M3OHFhOGpadEdrWUIxZGpMNTR2aVkKLS0tIE84ZkxzTlBpZVlqR2xQRmM0V0ZR - aG5zWW1XclBOS2cxMkwzZ3c1R1psNGsKzeSHHV7AYXCUNiiXJlBRFVWMZtfK3naj - VRtF22+DYfjumQuwam2ZzhdLQ//1ciHnkJc58dKeTbYUHzC+fWpaZQ== - -----END AGE ENCRYPTED FILE----- - lastmodified: "2024-03-19T21:55:42Z" - mac: ENC[AES256_GCM,data:oEValcnIzQbxmFntXn6TEBk5FVPA2OSXR+Xr7THu43MG4C4nLeI2EIjanV+7+c0Dq2twsB5JarmcU2Y0l/s+9V2ZFlSA7LaPwrYZNSCySAqfy9XCJhuJAt4QGDa7CFdF1UQNbKtDv4YQ9UVpvg9BXCyc6siTIx7R+OU+Zh1P+l0=,iv:NSos5J0OLbm8a/4QHEgpSF3OWIRm9YBYfDil5rYFARM=,tag:J7aGAAD9q1u/LHGqeQiW+A==,type:str] - pgp: [] - unencrypted_regex: ^(kind)$ - version: 3.8.1 diff --git a/ansible/inventory/host_vars/truenas.yaml b/ansible/inventory/host_vars/truenas.yaml deleted file mode 100644 index c8a93c0b6..000000000 --- a/ansible/inventory/host_vars/truenas.yaml +++ /dev/null @@ -1,6 +0,0 @@ -main_nas: true -pool_name: storage -iocage_pool_name: apps -postgresql_pool_name: apps -minio_pool_name: storage -snapshots_interval: "daily:14,weekly:12,monthly:3" diff --git a/ansible/playbooks/minio.yml b/ansible/playbooks/minio.yml deleted file mode 100644 index 470a3a70c..000000000 --- a/ansible/playbooks/minio.yml +++ /dev/null @@ -1,7 +0,0 @@ ---- -- hosts: minio - become: true - gather_facts: true - any_errors_fatal: true - roles: - - role: minio diff --git a/ansible/roles/coreelec/files/backup.bash b/ansible/roles/coreelec/files/backup.bash index 2f1579f26..548182833 100644 --- a/ansible/roles/coreelec/files/backup.bash +++ b/ansible/roles/coreelec/files/backup.bash @@ -1,16 +1,37 @@ #!/bin/bash # Variables -FLAG_NOTIF=false +DATE=$(date +%Y%m%d%H%M) +BACKUP_SRC="/storage/backup" +BACKUP_DEST="homelab@storage.{{ secret_domain }}:/vol1/backups/servers/coreelec.{{ secret_domain }}/" -DATE=`date +%Y%m%d%H%M` -BACKUP_PATH="/storage/backup" +error_handler() { + local error_line=$1 + local error_message=$2 + script_name=$(basename "$0") + local script_name -cd / + echo "Error occurred in script '${script_name}' at line: ${error_line}" + echo "Error message: ${error_message}" -tar cvf ${BACKUP_PATH}/${DATE}.tar \ + curl -s \ + --form-string "token={{ pushover_api_token }}" \ + --form-string "user={{ pushover_user_key }}" \ + --form-string "message=coreelec.{{ secret_domain }} +script: ${script_name} +error_line: ${error_line} +error_message: ${error_message}" \ + https://api.pushover.net/1/messages.json + exit 1 +} + +trap 'error_handler $LINENO "$BASH_COMMAND"' ERR + +tar cvf "${BACKUP_SRC}/${DATE}.tar" \ storage/.kodi storage/.config storage/.cache storage/.ssh \ --exclude=storage/.kodi/userdata/Thumbnails # Keep the last 5 backups on disk -find ${BACKUP_PATH}/*.tar -mtime +5 -type f -delete +find "${BACKUP_SRC}/*.tar" -mtime +5 -type f -delete + +rsync -avh "${BACKUP_SRC}/" "${BACKUP_DEST}" --delete diff --git a/ansible/roles/coreelec/templates/storage-nfs.mount b/ansible/roles/coreelec/templates/storage-nfs.mount index 33e0736ca..4ffcb4647 100644 --- a/ansible/roles/coreelec/templates/storage-nfs.mount +++ b/ansible/roles/coreelec/templates/storage-nfs.mount @@ -6,7 +6,7 @@ After=network-online.service Before=kodi.service [Mount] -What=truenas.{{ secret_domain }}:/mnt/storage/{{ item }} +What=192.168.9.10:/var/mnt/vol1/{{ item }} Where=/storage/mnt/{{ item }} Options= Type=nfs diff --git a/ansible/roles/minio/tasks/main.yml b/ansible/roles/minio/tasks/main.yml deleted file mode 100644 index ed78a2853..000000000 --- a/ansible/roles/minio/tasks/main.yml +++ /dev/null @@ -1,42 +0,0 @@ ---- -- name: Install MinIO - ansible.builtin.pkgng: - name: - - minio - - curl - state: latest - register: installation - -- name: Create MinIO configuration in /etc/rc.conf - ansible.builtin.blockinfile: - path: /etc/rc.conf - state: present - block: | - # MINIO - minio_enable="YES" - minio_disks="/mnt/data" - minio_env="MINIO_ACCESS_KEY={{ minio_access_key }} MINIO_SECRET_KEY={{ minio_secret_key }} MINIO_CONSOLE_ADDRESS=192.168.9.14:9001" - no_log: false - register: configuration - -- name: Restart MinIO Service - ansible.builtin.service: - name: minio - state: restarted - enabled: true - when: configuration.changed == true or installation.changed == true - -- name: Wait for 5 seconds - ansible.builtin.pause: - seconds: 5 - -- name: Check MinIO Service - ansible.builtin.command: curl -s localhost:9000/minio/health/live - register: curl_result - ignore_errors: true - changed_when: false - -- name: Fail if curl command failed - ansible.builtin.fail: - msg: 'Curl command failed' - when: curl_result.rc != 0