一键部署etcd集群管理脚本

一、编写脚本

 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

原文地址:https://www.cnblogs.com/cutesnow/p/14049030.html