mirror of
https://github.com/kevinveenbirkenbach/computer-playbook.git
synced 2025-04-22 16:02:24 +02:00
Compare commits
No commits in common. "7d5d69c380557d6ee422693e16991aa77add310a" and "9c680a26f753d96e474289cca7364aeef678e93c" have entirely different histories.
7d5d69c380
...
9c680a26f7
@ -50,6 +50,25 @@
|
|||||||
- name: "include seed-database-to-backup.yml"
|
- name: "include seed-database-to-backup.yml"
|
||||||
include_tasks: seed-database-to-backup.yml
|
include_tasks: seed-database-to-backup.yml
|
||||||
|
|
||||||
|
- name: Set file permissions for databases.csv to be readable, writable, and executable by root only
|
||||||
|
ansible.builtin.file:
|
||||||
|
path: "{{ backup_docker_to_local_folder }}databases.csv"
|
||||||
|
mode: '0700'
|
||||||
|
owner: root
|
||||||
|
group: root
|
||||||
|
when: >
|
||||||
|
(database_instance is defined and
|
||||||
|
database_name is defined and
|
||||||
|
database_username is defined and
|
||||||
|
database_password is defined) and
|
||||||
|
run_once_backup_docker_to_local_file_permission is not defined
|
||||||
|
register: file_permission_result
|
||||||
|
|
||||||
|
- name: run the backup_docker_to_local_file_permission tasks once
|
||||||
|
set_fact:
|
||||||
|
run_once_backup_docker_to_local_file_permission: true
|
||||||
|
when: run_once_backup_docker_to_local_file_permission is not defined and file_permission_result is defined and file_permission_result.changed
|
||||||
|
|
||||||
- name: run the backup_docker_to_local tasks once
|
- name: run the backup_docker_to_local tasks once
|
||||||
set_fact:
|
set_fact:
|
||||||
run_once_backup_docker_to_local: true
|
run_once_backup_docker_to_local: true
|
||||||
|
@ -1,6 +1,6 @@
|
|||||||
# This file is also used by docker-matrix-compose
|
# This file is also used by docker-matrix-compose
|
||||||
|
|
||||||
- name: "{{ role_name }} | Display all database variables"
|
- name: Display all database variables
|
||||||
debug:
|
debug:
|
||||||
msg: |
|
msg: |
|
||||||
database_instance: "{{ database_instance | default('undefined') }}"
|
database_instance: "{{ database_instance | default('undefined') }}"
|
||||||
@ -9,44 +9,12 @@
|
|||||||
database_password: "{{ database_password | default('undefined') }}"
|
database_password: "{{ database_password | default('undefined') }}"
|
||||||
when: enable_debug | bool
|
when: enable_debug | bool
|
||||||
|
|
||||||
- name: "{{ role_name }} | fail if not all required database variables are defined"
|
- name: seed database values
|
||||||
fail:
|
|
||||||
msg: "You must define all of the following variables: database_instance, database_name, database_username, database_password"
|
|
||||||
when: >
|
|
||||||
(database_instance is defined or
|
|
||||||
database_name is defined or
|
|
||||||
database_username is defined or
|
|
||||||
database_password is defined) and not
|
|
||||||
(database_instance is defined and
|
|
||||||
database_name is defined and
|
|
||||||
database_username is defined and
|
|
||||||
database_password is defined)
|
|
||||||
|
|
||||||
- name: "{{ role_name }} | seed database values in directory {{ backup_docker_to_local_folder }}"
|
|
||||||
command:
|
command:
|
||||||
cmd: "python database_entry_seeder.py databases.csv {{database_instance}} {{database_name}} {{database_username}} {{database_password}}"
|
cmd: "python database_entry_seeder.py databases.csv {{database_instance}} {{database_name}} {{database_username}} {{database_password}}"
|
||||||
chdir: "{{ backup_docker_to_local_folder }}"
|
chdir: "{{backup_docker_to_local_folder}}"
|
||||||
when: >
|
when: >
|
||||||
database_instance is defined and
|
database_instance is defined and
|
||||||
database_name is defined and
|
database_name is defined and
|
||||||
database_username is defined and
|
database_username is defined and
|
||||||
database_password is defined
|
database_password is defined
|
||||||
|
|
||||||
- name: Set file permissions for databases.csv to be readable, writable, and executable by root only
|
|
||||||
ansible.builtin.file:
|
|
||||||
path: "{{ backup_docker_to_local_folder }}databases.csv"
|
|
||||||
mode: '0700'
|
|
||||||
owner: root
|
|
||||||
group: root
|
|
||||||
when: >
|
|
||||||
(database_instance is defined and
|
|
||||||
database_name is defined and
|
|
||||||
database_username is defined and
|
|
||||||
database_password is defined) and
|
|
||||||
run_once_backup_docker_to_local_file_permission is not defined
|
|
||||||
register: file_permission_result
|
|
||||||
|
|
||||||
- name: run the backup_docker_to_local_file_permission tasks once
|
|
||||||
set_fact:
|
|
||||||
run_once_backup_docker_to_local_file_permission: true
|
|
||||||
when: run_once_backup_docker_to_local_file_permission is not defined and file_permission_result is defined and file_permission_result.changed
|
|
@ -1,4 +1,4 @@
|
|||||||
- name: "Reload cleanup-failed-docker-backups.cymais.service"
|
- name: "reload cleanup-failed-docker-backups.cymais.service daemon"
|
||||||
systemd:
|
systemd:
|
||||||
name: cleanup-failed-docker-backups.cymais.service
|
name: cleanup-failed-docker-backups.cymais.service
|
||||||
enabled: yes
|
enabled: yes
|
||||||
|
@ -10,16 +10,16 @@
|
|||||||
register: pkgmgr_output
|
register: pkgmgr_output
|
||||||
when: run_once_cleanup_failed_docker_backups is not defined
|
when: run_once_cleanup_failed_docker_backups is not defined
|
||||||
|
|
||||||
- name: Set fact for backup_docker_to_local_cleanup_script
|
- name: Set fact for backup_docker_to_local_cleanup_folder
|
||||||
set_fact:
|
set_fact:
|
||||||
backup_docker_to_local_cleanup_script: "{{ pkgmgr_output.stdout.rstrip('/') ~ '/cleanup-all.sh' }}"
|
backup_docker_to_local_cleanup_folder: "{{ pkgmgr_output.stdout }}"
|
||||||
when: run_once_cleanup_failed_docker_backups is not defined
|
when: run_once_cleanup_failed_docker_backups is not defined
|
||||||
|
|
||||||
- name: configure cleanup-failed-docker-backups.cymais.service
|
- name: configure cleanup-failed-docker-backups.cymais.service
|
||||||
template:
|
template:
|
||||||
src: cleanup-failed-docker-backups.service.j2
|
src: cleanup-failed-docker-backups.service.j2
|
||||||
dest: /etc/systemd/system/cleanup-failed-docker-backups.cymais.service
|
dest: /etc/systemd/system/cleanup-failed-docker-backups.cymais.service
|
||||||
notify: Reload cleanup-failed-docker-backups.cymais.service
|
notify: reload cleanup-failed-docker-backups.cymais.service daemon
|
||||||
when: run_once_cleanup_failed_docker_backups is not defined
|
when: run_once_cleanup_failed_docker_backups is not defined
|
||||||
|
|
||||||
- name: set service_name to the name of the current role
|
- name: set service_name to the name of the current role
|
||||||
|
@ -5,4 +5,4 @@ OnFailure=systemd-notifier.cymais@%n.service
|
|||||||
[Service]
|
[Service]
|
||||||
Type=oneshot
|
Type=oneshot
|
||||||
ExecStartPre=/bin/sh -c '/usr/bin/python {{ path_system_lock_script }} {{ system_maintenance_services | join(' ') }} --ignore {{system_maintenance_cleanup_services| join(' ') }} --timeout "{{system_maintenance_lock_timeout_backup_services}}"'
|
ExecStartPre=/bin/sh -c '/usr/bin/python {{ path_system_lock_script }} {{ system_maintenance_services | join(' ') }} --ignore {{system_maintenance_cleanup_services| join(' ') }} --timeout "{{system_maintenance_lock_timeout_backup_services}}"'
|
||||||
ExecStart=/bin/sh -c '/usr/bin/yes | /usr/bin/bash {{backup_docker_to_local_cleanup_script}}'
|
ExecStart=/bin/sh -c '/usr/bin/yes | /usr/bin/bash {{backup_docker_to_local_cleanup_folder}}cleanup-all.sh'
|
@ -1,27 +1,22 @@
|
|||||||
- name: "{{ role_name }} | Load database variables"
|
|
||||||
include_vars: "{{ item }}"
|
|
||||||
loop:
|
|
||||||
- "{{ docker_var_file }}" # Important to load docker variables first so that database can use them
|
|
||||||
- "{{ database_var_file }}" # Important to load them before docker role so that backup can use them
|
|
||||||
|
|
||||||
# Docker Routines
|
# Docker Routines
|
||||||
- name: "{{ role_name }} | Include docker-compose role"
|
- name: "include docker-compose role"
|
||||||
include_role:
|
include_role:
|
||||||
name: docker-compose
|
name: docker-compose
|
||||||
|
|
||||||
|
# Database Routines
|
||||||
|
- name: "load variables from {{ role_path }}/vars/database.yml for whole play"
|
||||||
|
include_vars: "{{ role_path }}/vars/database.yml"
|
||||||
|
|
||||||
# The following env file will just be used from the dedicated mariadb container
|
# The following env file will just be used from the dedicated mariadb container
|
||||||
# and not the central-mariadb-database
|
# and not the central-mariadb-database
|
||||||
- name: "{{ role_name }} | Create {{database_env}}"
|
- name: "create {{database_env}}"
|
||||||
template:
|
template:
|
||||||
src: "env/{{database_type}}.env.j2"
|
src: "env/{{database_type}}.env.j2"
|
||||||
dest: "{{database_env}}"
|
dest: "{{database_env}}"
|
||||||
notify: docker compose project build and setup
|
notify: docker compose project build and setup
|
||||||
when: not applications[application_id].database.central_storage | bool
|
when: not applications[application_id].database.central_storage | bool
|
||||||
|
|
||||||
- name: "{{ role_name }} | Create central database"
|
- name: create central database
|
||||||
include_role:
|
include_role:
|
||||||
name: "docker-{{database_type}}"
|
name: "docker-{{database_type}}"
|
||||||
when: applications[application_id].database.central_storage | bool
|
when: applications[application_id].database.central_storage | bool
|
||||||
|
|
||||||
- name: "{{ role_name }} | Add database to backup"
|
|
||||||
include_tasks: "{{ playbook_dir }}/roles/backup-docker-to-local/tasks/seed-database-to-backup.yml"
|
|
@ -1,2 +0,0 @@
|
|||||||
database_var_file: "{{ role_path }}/vars/database.yml"
|
|
||||||
docker_var_file: "{{playbook_dir}}/roles/docker-compose/vars/docker-compose.yml"
|
|
@ -1,7 +1,7 @@
|
|||||||
- name: "{{ role_name }} | Load variables from {{ role_path }}/vars/docker-compose.yml for whole play"
|
- name: "load variables from {{ role_path }}/vars/docker-compose.yml for whole play"
|
||||||
include_vars: "{{ role_path }}/vars/docker-compose.yml"
|
include_vars: "{{ role_path }}/vars/docker-compose.yml"
|
||||||
|
|
||||||
- name: "{{ role_name }} | Remove {{ docker_compose.directories.instance }} and all its contents"
|
- name: "remove {{ docker_compose.directories.instance }} and all its contents"
|
||||||
file:
|
file:
|
||||||
path: "{{ docker_compose.directories.instance }}"
|
path: "{{ docker_compose.directories.instance }}"
|
||||||
state: absent
|
state: absent
|
||||||
@ -9,7 +9,7 @@
|
|||||||
|
|
||||||
# This could lead to problems in docker-compose directories which are based on a git repository
|
# This could lead to problems in docker-compose directories which are based on a git repository
|
||||||
# @todo Verify that this isn't the case. E.g. in accounting
|
# @todo Verify that this isn't the case. E.g. in accounting
|
||||||
- name: "{{ role_name }} | Create all docker-compose directories (including parent directories)"
|
- name: "Create all docker-compose directories (including parent directories)"
|
||||||
file:
|
file:
|
||||||
path: "{{ item.value }}"
|
path: "{{ item.value }}"
|
||||||
state: directory
|
state: directory
|
||||||
|
@ -7,7 +7,7 @@ database_password: "{{applications.nextcloud.cre
|
|||||||
database_type: "mariadb" # Database flavor
|
database_type: "mariadb" # Database flavor
|
||||||
|
|
||||||
# Networking
|
# Networking
|
||||||
domain: "{{ domains[application_id] }}" # Public domain at which Nextcloud will be accessable
|
domain: "{{domains[application_id]}}" # Public domain at which Nextcloud will be accessable
|
||||||
http_port: "{{ ports.localhost.http[application_id] }}" # Port at which nextcloud is reachable in the local network
|
http_port: "{{ ports.localhost.http[application_id] }}" # Port at which nextcloud is reachable in the local network
|
||||||
|
|
||||||
# Control Node
|
# Control Node
|
||||||
|
Loading…
x
Reference in New Issue
Block a user