一键部署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
一键部署etcd集群管理脚本的更多相关文章
- 一键部署ETCD集群脚本
这里使用三个节点,系统版本为CentOS7 # vim deploy-etcd.sh #!/bin/bash set -x set -e #更改这里的IP, 只支持部署3个节点etcd集群 decla ...
- 一键部署etcd集群
这里使用三个节点,系统版本为CentOS7 # vim deploy-etcd.sh #!/bin/bash set -x set -e #更改这里的IP, 只支持部署3个节点etcd集群 decla ...
- supervisor的安装部署及集群管理
supervisor的安装部署及集群管理 supervisor官网:http://www.supervisord.org/ 参考链接: http://blog.csdn.net/xyang81/art ...
- 2、二进制安装K8s 之 部署ETCD集群
二进制安装K8s 之 部署ETCD集群 一.下载安装cfssl,用于k8s证书签名 二进制包地址:https://pkg.cfssl.org/ 所需软件包: cfssl 1.6.0 cfssljson ...
- suse 12 二进制部署 Kubernetets 1.19.7 - 第02章 - 部署etcd集群
文章目录 1.2.部署etcd集群 1.2.0.下载etcd二进制文件 1.2.1.创建etcd证书和私钥 1.2.2.生成etcd证书和私钥 1.2.3.配置etcd为systemctl管理 1.2 ...
- Kubernetes后台数据库etcd:安装部署etcd集群,数据备份与恢复
目录 一.系统环境 二.前言 三.etcd数据库 3.1 概述 四.安装部署etcd单节点 4.1 环境介绍 4.2 配置节点的基本环境 4.3 安装部署etcd单节点 4.4 使用客户端访问etcd ...
- 使用二进制文件部署Etcd集群
Etcd 是一个分布式键值存储系统,Kubernetes使用Etcd进行数据存储,所以先准备一个Etcd数据库,为解决Etcd单点故障,应采用集群方式部署,这里使用3台组建集群,可容忍1台机器故障,当 ...
- 基于已有集群动态发现方式部署 Etcd 集群
etcd提供了多种部署集群的方式,在「通过静态发现方式部署etcd集群」 一文中我们介绍了如何通过静态发现方式部署集群. 不过很多时候,你只知道你要搭建一个多大(包含多少节点)的集群,但是并不能事先知 ...
- 基于 DNS 动态发现方式部署 Etcd 集群
使用discovery的方式来搭建etcd集群方式有两种:etcd discovery和DNS discovery.在 「基于已有集群动态发现方式部署etcd集群」一文中讲解了etcd discove ...
随机推荐
- bash shell cli tools
bash shell cli tools before # create files $ mkdir app-component $ cd app-component $ touch index.ht ...
- project config generator
project config generator React, Vue, https://createapp.dev/ parcel https://parceljs.org/ https://git ...
- 瞧一瞧React Fiber
啥是React Fiber? React Fiber,简单来说就是一个从React v16开始引入的新协调引擎,用来实现Virtual DOM的增量渲染. 说人话:就是一种能让React视图更新过程变 ...
- 【python接口自动化】- 正则用例参数化
我们在做接口自动化的时候,处理接口依赖的相关数据时,通常会使用正则表达式来进行提取相关的数据. 正则表达式,又称正规表示式.正规表示法.正规表达式.规则表达式.常规表示法(Regular Ex ...
- java算法题
1.下面输出结果是什么? public class Test { public static void main(String[] args) { Person person=new Person(& ...
- 采用lua脚本获取mysql、redis数据以及jwt的校验
一.安装配置Openresty 1,安装 wget https://openresty.org/download/ngx_openresty-1.9.7.1.tar.gz # 下载 tar xzvf ...
- CentOS7 下Docker最新入门教程 超级详细 (安装以及简单的使用)
转载https://blog.csdn.net/wzsy_ll/article/details/82866627 1.为什么使用Docker(本人) 最近总是频繁的在新服务器发布项目, 每次发布都需要 ...
- MVCC多版本并发控制器
在多个事务并发执行的时候,MVCC机制可以协调数据的可见性,事务的隔离级别就是建立在MVCC之上的: MVCC机制通过undo log链和ReadView机制来实现: undo log版本链: 在数据 ...
- 后端程序员之路 17、LaTeX公式
之前的文章写了两个公式:d(x,y)=\sqrt{\sum_{i=1}^{n}(x_i-y_i)^2} H_x=-\sum_{i=1}^{n}p(x_i)\log_{2}{p(x_i)} LaTex ...
- Linux自学之旅-基础命令(chown和chgrp)
转: Linux自学之旅-基础命令(chown和chgrp) Linux自学之旅-基础命令(改变所有者与所属组的命令) 文章目录 前言 一.chown命令 二.chgrp命令 总结 前言 1.上一节我 ...