commit
df09b8dc36
2 changed files with 48 additions and 0 deletions
45
roles/etcd/handlers/backup.yml
Normal file
45
roles/etcd/handlers/backup.yml
Normal file
|
@ -0,0 +1,45 @@
|
||||||
|
---
|
||||||
|
- name: Backup etcd data
|
||||||
|
command: /bin/true
|
||||||
|
notify:
|
||||||
|
- Refresh Time Fact
|
||||||
|
- Set etcd Backup Directory Prefix
|
||||||
|
- Set Backup Directory
|
||||||
|
- Create Backup Directory
|
||||||
|
- Backup etcd v2 data
|
||||||
|
- Backup etcd v3 data
|
||||||
|
when: etcd_cluster_is_healthy.rc == 0
|
||||||
|
|
||||||
|
- name: Refresh Time Fact
|
||||||
|
setup: filter=ansible_date_time
|
||||||
|
|
||||||
|
- name: Set etcd Backup Directory Prefix
|
||||||
|
set_fact:
|
||||||
|
etcd_backup_prefix: '/var/backups'
|
||||||
|
|
||||||
|
- name: Set Backup Directory
|
||||||
|
set_fact:
|
||||||
|
etcd_backup_directory: "{{ etcd_backup_prefix }}/etcd-{{ ansible_date_time.date }}_{{ ansible_date_time.time }}"
|
||||||
|
|
||||||
|
- name: Create Backup Directory
|
||||||
|
file:
|
||||||
|
path: "{{ etcd_backup_directory }}"
|
||||||
|
state: directory
|
||||||
|
owner: root
|
||||||
|
group: root
|
||||||
|
mode: 0600
|
||||||
|
|
||||||
|
- name: Backup etcd v2 data
|
||||||
|
command: "{{ bin_dir }}/etcdctl backup --data-dir {{ etcd_data_dir }} --backup-dir {{ etcd_backup_directory }}"
|
||||||
|
environment:
|
||||||
|
ETCDCTL_API: 2
|
||||||
|
retries: 3
|
||||||
|
delay: "{{ retry_stagger | random + 3 }}"
|
||||||
|
|
||||||
|
- name: Backup etcd v3 data
|
||||||
|
command: "{{ bin_dir }}/etcdctl --endpoints={{ etcd_access_addresses }} snapshot save {{ etcd_backup_directory }}/snapshot.db"
|
||||||
|
environment:
|
||||||
|
ETCDCTL_API: 3
|
||||||
|
retries: 3
|
||||||
|
delay: "{{ retry_stagger | random + 3 }}"
|
||||||
|
|
|
@ -2,10 +2,13 @@
|
||||||
- name: restart etcd
|
- name: restart etcd
|
||||||
command: /bin/true
|
command: /bin/true
|
||||||
notify:
|
notify:
|
||||||
|
- Backup etcd data
|
||||||
- etcd | reload systemd
|
- etcd | reload systemd
|
||||||
- reload etcd
|
- reload etcd
|
||||||
- wait for etcd up
|
- wait for etcd up
|
||||||
|
|
||||||
|
- include: backup.yml
|
||||||
|
|
||||||
- name: etcd | reload systemd
|
- name: etcd | reload systemd
|
||||||
command: systemctl daemon-reload
|
command: systemctl daemon-reload
|
||||||
|
|
||||||
|
|
Loading…
Reference in a new issue