Backup etcd data before restarting etcd
etcd is crucial part of kubernetes cluster. Ansible restarts etcd on reconfiguration. Backup helps operator to restore cluster manually in case of any issues. Signed-off-by: Sergii Golovatiuk <sgolovatiuk@mirantis.com>
This commit is contained in:
parent
780b4e4d3c
commit
e635fecc01
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