一、编写脚本
1 #!/bin/sh 2 # 安装 3 # ./run.sh etcd03 etcd01=http://192.168.2.44:2380,etcd02=http://192.168.2.45:2380,etcd03=http://192.168.2.46:2380 4 5 etcd --version 6 if [[ $? -eq 0 ]]; 7 then 8 echo 'etcd exists, exit!' 9 exit 10 else 11 yum -y install etcd 12 fi 13 14 15 export HOST=$(ifconfig eth0 | grep 'inet'| grep -v '127.0.0.1' | cut -d: -f2 | awk '{ print $2}') 16 echo $HOST 17 18 tee /etc/etcd/etcd.conf <<-'EOF' 19 ETCD_NAME="$1" 20 ETCD_DATA_DIR="/var/lib/etcd/$1" 21 ETCD_LISTEN_PEER_URLS="http://$HOST:2380" 22 ETCD_LISTEN_CLIENT_URLS="http://$HOST:2379,http://127.0.0.1:2379" 23 ETCD_INITIAL_ADVERTISE_PEER_URLS="http://$HOST:2380" 24 ETCD_ADVERTISE_CLIENT_URLS="http://$HOST:2379" 25 ETCD_INITIAL_CLUSTER_STATE="new" 26 ETCD_INITIAL_CLUSTER_TOKEN="etcd-cluster1" 27 ETCD_INITIAL_CLUSTER="$2" 28 EOF 29 30 # etcd01=http://192.168.2.44:2380,etcd02=http://192.168.2.45:2380,etcd03=http://192.168.2.46:2380 31 # 替换掉$HOST及$1 32 sed -i "s%$HOST%"$HOST"%g" /etc/etcd/etcd.conf 33 sed -i "s%$1%"$1"%g" /etc/etcd/etcd.conf 34 sed -i "s%$2%"$2"%g" /etc/etcd/etcd.conf 35 36 tee /usr/lib/systemd/system/etcd.service <<-'EOF' 37 [Unit] 38 Description=Etcd Server 39 After=network.target 40 After=network-online.target 41 Wants=network-online.target 42 43 [Service] 44 Type=notify 45 WorkingDirectory=/var/lib/etcd/ 46 EnvironmentFile=/etc/etcd/etcd.conf 47 User=etcd 48 # set GOMAXPROCS to number of processors 49 ExecStart=/bin/bash -c "GOMAXPROCS=$(nproc) /usr/bin/etcd --name="${ETCD_NAME}" --data-dir="${ETCD_DATA_DIR}" --listen-client-urls="${ETCD_LISTEN_CLIENT_URLS}" --listen-peer-urls="${ETCD_LISTEN_PEER_URLS}" --advertise-client-urls="${ETCD_ADVERTISE_CLIENT_URLS}" --initial-cluster-token="${ETCD_INITIAL_CLUSTER_TOKEN}" --initial-cluster="${ETCD_INITIAL_CLUSTER}" --initial-cluster-state="${ETCD_INITIAL_CLUSTER_STATE}" " 50 Restart=on-failure 51 LimitNOFILE=65536 52 53 [Install] 54 WantedBy=multi-user.target 55 EOF 56 57 systemctl daemon-reload 58 systemctl start etcd 59 systemctl enable etcd 60 61 62 etcd --version 63 if [[ $? -eq 0 ]]; 64 then 65 echo 'etcd install success!' 66 else 67 echo 'etcd install error!' 68 fi
二、运行
./run.sh etcd03 etcd01=http://192.168.2.44:2380,etcd02=http://192.168.2.45:2380,etcd03=http://192.168.2.46:2380