Browse Source

Merge pull request #1159 from holser/etcd_backup_restore

Backup etcd
pull/1170/head
Matthew Mosesohn 7 years ago
committed by GitHub
parent
commit
cd429d3654
2 changed files with 48 additions and 0 deletions
  1. 45
      roles/etcd/handlers/backup.yml
  2. 3
      roles/etcd/handlers/main.yml

45
roles/etcd/handlers/backup.yml

@ -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 }}"

3
roles/etcd/handlers/main.yml

@ -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…
Cancel
Save