提交 f50e48e9 作者: martin

etcd install shell

上级 f45e50da
#!/bin/bash
# wget https://github.com/etcd-io/etcd/releases/download/v3.4.32/etcd-v3.4.32-linux-amd64.tar.gz
# 设置全局变量
DOWN_ETCD_URL='https://zzsn-doc.obs.cn-north-1.myhuaweicloud.com/martin/k8s/etcd-v3.4.32-linux-amd64.tar.gz'
SOFTWARE_DIR=/zzsn/software
INSTALL_DIR=/zzsn/etcd
node1_ip="192.168.58.21"
node2_ip="192.168.58.22"
node3_ip="192.168.58.23"
node_index=1
# 下面参数引用时需要用${!local_ip}这种形式
local_ip=node${node_index}_ip
# 设置日志函数
function log() {
echo "$(date +"%F %T")" "$*" >>/var/log/etcd_install.log
}
function install_etcd() {
log "start to install etcd ..."
# 验证文件夹
[ -d $SOFTWARE_DIR ] || mkdir -p $SOFTWARE_DIR
[ -d $INSTALL_DIR ] || mkdir -p $INSTALL_DIR
log "software dir is ${INSTALL_DIR},install dir is ${INSTALL_DIR}"
# 开始安装
cd $SOFTWARE_DIR || (echo "target software dir is not exist and exit ";exit 1)
log "start to download etcd files"
if wget $DOWN_ETCD_URL ;then
log "download etcd successfully";
else
log "download etcd failed and exit"
exit 1;
fi
tar -zxf etcd-v*.tar.gz
mkdir -p "$INSTALL_DIR"/{bin,cfg,ssl,data}
mv etcd-v*/{etcd,etcdctl} ${INSTALL_DIR}/bin/
echo "PATH=$PATH:${INSTALL_DIR}/bin" >/etc/profile.d/etcd.sh
source /etc/profile
etcd_ver_info="$(etcd --version)"
log "etcd install finished,version info is ${etcd_ver_info}"
}
function del_etcd() {
rm -rf /etc/profile.d/etcd.sh
rm -rf ${INSTALL_DIR}*
source /etc/profile
}
function config_etcd() {
cat >${INSTALL_DIR}/cfg/etcd.conf<<EOF
#[Member]
ETCD_NAME="etcd-${node_index}"
ETCD_DATA_DIR="${INSTALL_DIR}/data"
ETCD_LISTEN_PEER_URLS="https://${!local_ip}:2380"
ETCD_LISTEN_CLIENT_URLS="https://${!local_ip}:2379"
#[Clustering]
ETCD_INITIAL_ADVERTISE_PEER_URLS="https://${!local_ip}:2380"
ETCD_ADVERTISE_CLIENT_URLS="https://${!local_ip}:2379"
ETCD_INITIAL_CLUSTER="etcd-1=https://${node1_ip}:2380,etcd-2=https://${node2_ip}:2380,etcd-3=https://${node3_ip}:2380"
ETCD_INITIAL_CLUSTER_TOKEN="etcd-cluster"
ETCD_INITIAL_CLUSTER_STATE="new"
#[Security]
ETCD_CERT_FILE="${INSTALL_DIR}/ssl/etcd.pem"
ETCD_KEY_FILE="${INSTALL_DIR}/ssl/etcd-key.pem"
ETCD_CLIENT_CERT_AUTH="false"
ETCD_TRUSTED_CA_FILE="${INSTALL_DIR}/ssl/ca.pem"
ETCD_AUTO_TLS="false"
ETCD_PEER_CERT_FILE="${INSTALL_DIR}/ssl/etcd.pem"
ETCD_PEER_KEY_FILE="${INSTALL_DIR}/ssl/etcd-key.pem"
ETCD_PEER_CLIENT_CERT_AUTH="false"
ETCD_PEER_TRUSTED_CA_FILE="${INSTALL_DIR}/ssl/ca.pem"
ETCD_PEER_AUTO_TLS="false"
EOF
cat > /usr/lib/systemd/system/etcd.service << EOF
[Unit]
Description=Etcd Server
After=network.target
After=network-online.target
Wants=network-online.target
[Service]
Type=notify
EnvironmentFile=${INSTALL_DIR}/cfg/etcd.conf
ExecStart=${INSTALL_DIR}/bin/etcd --logger=zap
Restart=on-failure
RestartSec=5s
LimitNOFILE=65536
[Install]
WantedBy=multi-user.target
EOF
systemctl daemon-reload
}
function process_certs() {
pass
}
install_etcd
#del_etcd
#config_etcd
Markdown 格式
0%
您添加了 0 到此讨论。请谨慎行事。
请先完成此评论的编辑!
注册 或者 后发表评论