src.dualinventive.com/devops/ansible/roles/backup/tasks/backup-director.yml

67 lines
2.3 KiB
YAML

- include_vars: backup-director.yml
- group: name="{{ group }}" state=present
- user:
name: "{{ user }}"
shell: /bin/nologin
home: "{{ home }}"
createhome: yes
generate_ssh_key: yes
ssh_key_bits: 4096
ssh_key_comment: "{{ user }}@{{ inventory_hostname }}"
group: "{{ group }}"
groups: ""
state: present
- file:
path: "{{ home }}/scripts"
owner: "{{ user }}"
group: "{{ group }}"
mode: 0700
state: directory
- file: path="{{ home }}/playbooks" owner="{{ user }}" group="{{ group }}" mode=0700 state=directory
- file: path="{{ home }}/host_vars" owner="{{ user }}" group="{{ group }}" mode=0700 state=directory
- apt: name=ansible state=latest
- name: copy ansible files
copy:
src: "{{ lookup('env', 'ANSIBLE_PWD')}}/{{ item }}"
dest: "{{ home }}/{{ item }}"
owner: "{{ user }}"
group: "{{ group }}"
mode: 0600
with_items:
- '{{ files }}'
- name: create custom ansible config file for backup direction
template:
src: ansible.cfg.j2
dest: "{{ home }}/ansible.cfg"
owner: "{{ user }}"
group: "{{ group }}"
mode: 0600
- copy:
src="{{ lookup('env', 'ANSIBLE_PWD')}}/files/tools/mailer"
dest="/usr/local/bin/mailer"
owner="root"
group="root"
mode=0755
- file: path="{{ home }}/scripts/run-backup.sh" state=file owner="{{ user }}" group="{{ group }}" mode=0700
- apt: name=nfs-client state=latest
- file: path="/mnt/dual" state=directory
- mount: name=/mnt/dual src="synology:/volume1/Dual" fstype=nfs opts=ro,nfsvers=4 state=mounted
- file: path="/mnt/homes" state=directory
- mount: name=/mnt/homes src="synology:/volume1/homes" fstype=nfs opts=ro,nfsvers=4 state=mounted
- mount: name=/mnt/wilting src="synology:/volume1/wilting" fstype=nfs opts=ro,nfsvers=4 state=mounted
- template: src=di-synology-backup.j2 dest=/usr/local/bin/di-synology-backup mode=0700 owner=root group=root
- template: src=di-offsite-backup.j2 dest=/usr/local/bin/di-offsite-backup mode=0700 owner=root group=root
- cron: name="backup" minute="12" hour="1" day="*" month="*"
user="{{ user }}" job="{{ home }}/scripts/run-backup.sh 2>&1 | /usr/local/bin/mailer -from \"backup@dualinventive.com\" -to \"it@dualinventive.com\" -subject \"Backup report\""
cron_file=di_backup state=present
- apt: name=rsync state=latest