Добавить ansible.yml
This commit is contained in:
141
ansible.yml
Normal file
141
ansible.yml
Normal file
@@ -0,0 +1,141 @@
|
||||
---
|
||||
- hosts: all
|
||||
become: true
|
||||
tasks:
|
||||
|
||||
- name: create user backup
|
||||
user:
|
||||
name: backup-user
|
||||
state: present
|
||||
create_home: yes
|
||||
shell: /bin/bash
|
||||
append: yes
|
||||
|
||||
- name: update
|
||||
apt:
|
||||
update_cache: yes
|
||||
|
||||
- name: install borgbackup
|
||||
apt:
|
||||
name: borgbackup
|
||||
state: present
|
||||
|
||||
- hosts: client
|
||||
become: true
|
||||
tasks:
|
||||
|
||||
- name: сreate ssh dir
|
||||
file:
|
||||
path: "/home/backup-user/.ssh"
|
||||
state: directory
|
||||
owner: backup-user
|
||||
group: backup-user
|
||||
mode: '0700'
|
||||
|
||||
- name: generate ssh key
|
||||
user:
|
||||
name: backup-user
|
||||
generate_ssh_key: yes
|
||||
ssh_key_bits: 4096
|
||||
ssh_key_type: ed25519
|
||||
ssh_key_file: ~/.ssh/id_rsa
|
||||
force: no
|
||||
|
||||
- name: save public key
|
||||
fetch:
|
||||
src: ~/.ssh/id_rsa.pub
|
||||
dest: "{{ lookup('env', 'PWD') }}/"
|
||||
flat: yes
|
||||
|
||||
- name: save ssh fingerprint
|
||||
shell: ssh-keyscan -t rsa 192.168.80.30 >> ~/.ssh/known_hosts 2>/dev/null
|
||||
|
||||
|
||||
|
||||
- hosts: backup-server
|
||||
become: true
|
||||
tasks:
|
||||
|
||||
- name: сreate dir mount for backup
|
||||
file:
|
||||
path: /var/hdd-backup
|
||||
state: directory
|
||||
|
||||
- name: format hdd
|
||||
filesystem:
|
||||
fstype: ext4
|
||||
dev: /dev/sdc
|
||||
force: no
|
||||
|
||||
- name: mount hdd backup-server
|
||||
mount:
|
||||
path: /var/hdd-backup
|
||||
src: /dev/sdc
|
||||
fstype: ext4
|
||||
state: mounted
|
||||
opts: defaults
|
||||
|
||||
- name: сreate dir backup
|
||||
file:
|
||||
path: /var/hdd-backup/backup
|
||||
state: directory
|
||||
|
||||
- name: chown backup dir
|
||||
file:
|
||||
path: /var/hdd-backup/backup
|
||||
owner: backup-user
|
||||
group: backup-user
|
||||
mode: '0755'
|
||||
state: directory
|
||||
recurse: yes
|
||||
|
||||
- name: сreate ssh dir
|
||||
file:
|
||||
path: "/home/backup-user/.ssh"
|
||||
state: directory
|
||||
owner: backup-user
|
||||
mode: '0700'
|
||||
|
||||
- name: add public key to backup-server
|
||||
authorized_key:
|
||||
user: backup-user
|
||||
state: present
|
||||
key: "{{ lookup('file', 'id_rsa.pub') }}"
|
||||
|
||||
- hosts: client
|
||||
become: true
|
||||
tasks:
|
||||
|
||||
- name: generate pass
|
||||
set_fact:
|
||||
user_password: "{{ lookup('ansible.builtin.password', '/dev/null length=12') }}"
|
||||
|
||||
- name: save pass
|
||||
copy:
|
||||
content: "{{ user_password }}"
|
||||
dest: "./pass"
|
||||
become: no
|
||||
delegate_to: localhost
|
||||
|
||||
- name: show pass
|
||||
debug:
|
||||
msg: "ВНИМАНИЕ!!! Сохраните сгенерированный пароль: {{ user_password }}"
|
||||
|
||||
- name: borg initialization
|
||||
shell: borg init --encryption=repokey backup-user@192.168.80.30:/var/hdd-backup/backup
|
||||
environment:
|
||||
BORG_PASSPHRASE: "{{ user_password }}"
|
||||
|
||||
- name: create backup script
|
||||
vars:
|
||||
borg_pass: "{{ user_password }}"
|
||||
template:
|
||||
src: template_backup.sh
|
||||
dest: /opt/backup.sh
|
||||
mode: '0755'
|
||||
|
||||
- name: create cron
|
||||
cron:
|
||||
name: "Create backup /etc"
|
||||
minute: "*/5"
|
||||
job: "/opt/backup.sh"
|
||||
Reference in New Issue
Block a user