1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29
| [root@master01 ~]# cat restore_etcd.sh #!/bin/bash snapshot_file_dir=$1 if [ $# -lt 1 ] then echo "Please input snapshot file path" exit 2 fi
export ETCD_POD_MANIFEST="/etc/origin/node/pods/etcd.yaml" mv ${ETCD_POD_MANIFEST} . rm -rf /var/lib/etcd
# ETCD_CONFIG_FILE="/etc/etcd/etcd.conf" etcd_data_dir=$(grep ^ETCD_DATA_DIR= $ETCD_CONFIG_FILE|cut -d= -f2) etcd_name=$(grep ^ETCD_NAME= $ETCD_CONFIG_FILE|cut -d= -f2) etcd_initial_cluster=$(grep ^ETCD_INITIAL_CLUSTER= $ETCD_CONFIG_FILE|awk -F'ETCD_INITIAL_CLUSTER=' '{print $2}') etcd_initial_cluster_token=$(grep ^ETCD_INITIAL_CLUSTER_TOKEN= $ETCD_CONFIG_FILE|cut -d= -f2) etcd_initial_advertise_peer_urls=$(grep ^ETCD_INITIAL_ADVERTISE_PEER_URLS= $ETCD_CONFIG_FILE|cut -d= -f2)
# export ETCDCTL_API=3 etcdctl snapshot restore $snapshot_file_dir --data-dir $etcd_data_dir --name $etcd_name --initial-cluster "$etcd_initial_cluster" --initial-cluster-token "$etcd_initial_cluster_token" --initial-advertise-peer-urls $etcd_initial_advertise_peer_urls --skip-hash-check=true
chown -R etcd.etcd /var/lib/etcd/ restorecon -Rv /var/lib/etcd
mv etcd.yaml $ETCD_POD_MANIFEST
|