一、编写脚本
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
------
往事如烟,伴着远去的步伐而愈加朦胧。未来似雾,和着前进的风儿而逐渐清晰!
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· AI与.NET技术实操系列:基于图像分类模型对图像进行分类
· go语言实现终端里的倒计时
· 如何编写易于单元测试的代码
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
· 分享一个免费、快速、无限量使用的满血 DeepSeek R1 模型,支持深度思考和联网搜索!
· 基于 Docker 搭建 FRP 内网穿透开源项目(很简单哒)
· ollama系列01:轻松3步本地部署deepseek,普通电脑可用
· 25岁的心里话
· 按钮权限的设计及实现