--- - name: Install backup tools yum: name=rsync when: ansible_os_family == 'RedHat' - name: Install backup tools apt: name=rsync when: ansible_os_family == 'Debian' - name: Create a local backup user account user: name=lbkp comment="Local backup account" system=yes shell={{ backup_shell }} tags: backup - name: Deploy sudo configuration template: src=sudo.j2 dest=/etc/sudoers.d/backup mode=400 tags: backup - name: Deploy SSH keys for the backup account authorized_key: user: lbkp key: "{{ backup_ssh_keys | join(\"\n\") }}" key_options: "{{ backup_ssh_keys_options | join(',') }}" exclusive: yes when: backup_src_ip is not defined or backup_src_ip | length < 1 tags: backup - name: Deploy SSH keys for the backup account (with source IP restriction) authorized_key: user: lbkp key: "{{ backup_ssh_keys | join(\"\n\") }}" key_options: "from=\"{{ backup_src_ip | join(',') }}\",{{ backup_ssh_keys_options | join(',') }}" exclusive: yes when: - backup_src_ip is defined - backup_src_ip | length > 0 tags: backup - name: Create pre and post backup hook dir file: path={{ item }} state=directory mode=750 with_items: - /etc/backup/pre.d - /etc/backup/post.d tags: backup - name: Deploy default pre/post backup hooks copy: content: "{{ item.content }}" dest: /etc/backup/{{ item.type }}.d/default mode: 0755 loop: - type: pre content: "{{ backup_pre_script }}" - type: post content: "{{ backup_post_script }}" tags: backup - name: Copy pre-backup script copy: src={{ item }} dest=/usr/local/bin/{{ item }} mode=750 group=lbkp with_items: - pre-backup - post-backup tags: backup - name: Deploy rpm dump list script copy: src=dump-rpms-list dest=/etc/backup/pre.d/dump-rpms-list mode=755 when: ansible_os_family == 'RedHat' tags: backup - name: Create megaraid dump dir file: path=/home/lbkp/megaraid state=directory tags: backup - name: Deploy MegaCli backup scripts copy: src={{ item.script }} dest=/etc/backup/{{ item.type }}.d/{{ item.script }} mode=750 with_items: - script: dump-megaraid-cfg type: pre - script: rm-megaraid-cfg type: post when: lsi_controllers | default([]) | length > 0 tags: backup - name: Excludes for proxmox backup client copy: dest: /.pxarexclude content: | var/log/lastlog when: - ansible_virtualization_role == 'guest' - ansible_virtualization_type == 'lxc' or ansible_virtualization_type == 'systemd-nspawn' tags: backup ...