--- # Infrastructure # Ansible instructions to deploy the infrastructure # Copyright (C) 2020 Saibotk # # This program is free software: you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by # the Free Software Foundation, version 3 of the License. # # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # GNU General Public License for more details. # # You should have received a copy of the GNU General Public License # along with this program. If not, see . - name: Install & prepare Mailcow setup & backup cronjob hosts: mailcow roles: - docker tasks: - name: Install backup crontab ansible.builtin.cron: name: "Backup mailcow daily" minute: "5" hour: "3" # yamllint disable-line rule:line-length job: "MAILCOW_BACKUP_LOCATION=/srv/mailcow-backups /srv/mailcow-dockerized/helper-scripts/backup_and_restore.sh backup all --delete-days 2 2>&1 | /usr/bin/logger -t mailcow_data_backup" become: true - name: Install git ansible.builtin.package: name: "git" state: "present" become: true - name: Clone mailcow # noqa latest[git] ansible.builtin.git: repo: "https://github.com/mailcow/mailcow-dockerized" update: false dest: "/srv/mailcow-dockerized" become: true - name: Create backup directory ansible.builtin.file: path: "/srv/mailcow-backups" owner: "root" group: "root" state: directory mode: "0755" become: true - name: Open ports ansible.posix.firewalld: state: enabled permanent: true immediate: true zone: public port: "{{ item }}" loop: - "25/tcp" - "465/tcp" - "587/tcp" - "143/tcp" - "993/tcp" - "110/tcp" - "995/tcp" - "4190/tcp" - "80/tcp" - "443/tcp" become: true