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 30 31 32 33 34 35 36 37 38 39 40 41 42 43
| #!/bin/bash -xe
source /home/s/etc/monitor_etcd
ETCD_DATA_PATH=/home/s/var/etcd/infra
ETCD_CLUSTER_HOST1=127.0.0.1 ETCD_CLUSTER_HOST2=127.0.0.2 ETCD_CLUSTER_HOST3=127.0.0.3
ETCD_CLUSTER_IP1=127.0.0.1 ETCD_CLUSTER_IP2=127.0.0.2 ETCD_CLUSTER_IP3=127.0.0.3
declare -A cluster_map=([$ETCD_CLUSTER_HOST1]="infra1" \ [$ETCD_CLUSTER_HOST2]="infra2" \ [$ETCD_CLUSTER_HOST3]="infra3")
EXTERNAL_PORT=12379 INTERNAL_PORT=12380 LOCAL_HOST="`hostname --fqdn`" #LOCAL_IP=`host $LOCAL_HOST 2>/dev/null | awk '{print $NF}'` LOCAL_IP=`ip a show dev eth0 | grep -w inet | awk '{print $2}' | awk -F '/' '{print $1}'`
EXTERNAL_URL=http://$LOCAL_IP:$EXTERNAL_PORT INTERNAL_URL=http://$LOCAL_IP:$INTERNAL_PORT
LOCAL_NAME=${cluster_map[$LOCAL_HOST]} ETCD_CLUSTER_URLS=infra1=http://$ETCD_CLUSTER_IP1:$INTERNAL_PORT,infra2=http://$ETCD_CLUSTER_IP2:$INTERNAL_PORT,infra3=http://$ETCD_CLUSTER_IP3:$INTERNAL_PORT
etcd --name $LOCAL_NAME \ --data-dir=$ETCD_DATA_PATH \ --listen-client-urls $EXTERNAL_URL \ --advertise-client-urls $EXTERNAL_URL \ --listen-peer-urls $INTERNAL_URL \ --initial-advertise-peer-urls $INTERNAL_URL \ --initial-cluster-token etcd-cluster-1 \ --initial-cluster $ETCD_CLUSTER_URLS \ --auto-compaction-retention=1 \ --initial-cluster-state existing > $ETCD_DATA_PATH/etcd.log 2>&1 &
sleep 2 ~
|