# cluster-backup playbook # read the guide: 'op/cluster_restore.md' - hosts: - etcd tasks: - name: 执行etcd 数据备份 shell: "mkdir -p /etcd_backup && cd /etcd_backup && \ ETCDCTL_API=3 {{ bin_dir }}/etcdctl snapshot save snapshot.db" args: warn: false - name: 获取etcd 数据备份 fetch: src: /etcd_backup/snapshot.db dest: "{{ base_dir }}/.cluster/backup/" flat: yes run_once: true - hosts: - localhost tasks: - name: Backing up ansible hosts-1 copy: src: "{{ base_dir }}/hosts" dest: "{{ base_dir }}/.cluster/backup/hosts" register: p - name: Backing up ansible hosts-2 shell: "cd {{ base_dir }}/.cluster/backup && \ cp -fp hosts hosts-$(date +'%Y%m%d%H%M')" when: 'p is changed' - name: Backing up etcd snapshot with datetime shell: "cd {{ base_dir }}/.cluster/backup && \ cp -fp snapshot.db snapshot-$(date +'%Y%m%d%H%M').db"