ICode9

精准搜索请尝试: 精确搜索
首页 > 其他分享> 文章详细

etcd集群部署

2022-02-10 19:00:26  阅读:156  来源: 互联网

标签:NAME 部署 IP -- HOST 集群 etcd addr


ansible自动部署:

相关安装包下载链接:

链接:https://pan.baidu.com/s/1DYU-JBod0HAAX5foyFs48w 
提取码:7571
## etcd-v3.4.13-linux-amd64.tar.gz

目录结构:

[root@localhost ansible]# tree etcd_install/
etcd_install/
├── conf
│   └── run.sh
├── etcd.yml
├── id_rsa
├── inv
├── README.TXT
└── run.sh

etcd.yml配置文件
- name: etcd集群安装
  hosts: all
  gather_facts: no
  remote_user: sa
  become_user: root
  serial: 3
  vars:
  tasks:
    - name: 下载安装包
      get_url:
        url: http://192.168.1.230/packages/etcd-v3.4.13-linux-amd64.tar.gz
        dest: /tmp/
        mode: 0644
        force: no
        checksum: md5:b4a093f33fb75e49f2b53f8062ead621
      become: yes
    - name: 解压安装包到
      unarchive:
        src: /tmp/etcd-v3.4.13-linux-amd64.tar.gz
        dest: /data/op/
        remote_src: yes
      args:
        creates: /data/op/etcd-v3.4.13-linux-amd64/etcdctl
      become: yes
    - name: 传输文件到 {{ addr_1 }}
      template:
        src: ./conf/run.sh
        dest: /data/op/etcd-v3.4.13-linux-amd64/
      vars:
        THIS_NAME: '${NAME_1}'
        THIS_IP: '${HOST_1}'
      when: inventory_hostname == (addr_1)
      become: yes
    - name: 传输文件到 {{ addr_2 }}
      template:
        src: ./conf/run.sh
        dest: /data/op/etcd-v3.4.13-linux-amd64/
      vars:
        THIS_NAME: '${NAME_2}'
        THIS_IP: '${HOST_2}'
      when: inventory_hostname == (addr_2) 
      become: yes
    - name: 传输文件到 {{ addr_3 }}
      template:
        src: ./conf/run.sh
        dest: /data/op/etcd-v3.4.13-linux-amd64/
      vars:
        THIS_NAME: '${NAME_3}'
        THIS_IP: '${HOST_3}'
      when: inventory_hostname == (addr_3)
      become: yes
    - name: 启动服务etcd
      shell: nohup sh ./run.sh > /dev/null 2>&1 &
      args:
        chdir: /data/op/etcd-v3.4.13-linux-amd64/
      become: yes

run.sh配置文件
cd `dirname $0`

IP=`awk 'BEGIN{ ORS="" }{a[NR]=$1}END{for(i=1;i<=NR;i++){print i%5?a[i]",":a[i]"\n"}}' inv`
addr_1=`awk 'NR == 1' inv | awk {'print $1'}`
addr_2=`awk 'NR == 2' inv | awk {'print $1'}`
addr_3=`awk 'NR == 3' inv | awk {'print $1'}`
HOSTNAME_1=`awk 'NR == 1' inv | awk {'print $2'}`
HOSTNAME_2=`awk 'NR == 2' inv | awk {'print $2'}`
HOSTNAME_3=`awk 'NR == 3' inv | awk {'print $2'}`

ansible_options="
    -e addr_1=$addr_1
    -e addr_2=$addr_2
    -e addr_3=$addr_3
    -e HOSTNAME_1=$HOSTNAME_1
    -e HOSTNAME_2=$HOSTNAME_2
    -e HOSTNAME_3=$HOSTNAME_3"
 
ansible-playbook -i ${IP} \
    $ansible_options \
    --key-file "./id_rsa"\
    etcd.yml $*


inv配置文件
10.10.80.176 k8s-slave2
10.10.80.177 k8s-slave1
10.10.80.178 k8s-master

id_rsa配置文件
三台服务器公用的私钥

conf目录:

run.sh配置文件
TOKEN=etcd_test
CLUSTER_STATE=new
DATA_DIR=/data/appdata/etcd/data.etcd
NAME_1={{ HOSTNAME_1 }}
NAME_2={{ HOSTNAME_2 }}
NAME_3={{ HOSTNAME_3 }}
HOST_1={{ addr_1 }}
HOST_2={{ addr_2 }}
HOST_3={{ addr_3 }}
CLUSTER=${NAME_1}=http://${HOST_1}:2380,${NAME_2}=http://${HOST_2}:2380,${NAME_3}=http://${HOST_3}:2380
THIS_NAME={{ THIS_NAME }}
THIS_IP={{ THIS_IP }}
./etcd --data-dir=${DATA_DIR} --name ${THIS_NAME} \
        --initial-advertise-peer-urls http://${THIS_IP}:2380 --listen-peer-urls http://${THIS_IP}:2380 \
        --advertise-client-urls http://${THIS_IP}:2379 --listen-client-urls http://${THIS_IP}:2379 \
        --initial-cluster ${CLUSTER} \
        --initial-cluster-state ${CLUSTER_STATE} --initial-cluster-token ${TOKEN}

标签:NAME,部署,IP,--,HOST,集群,etcd,addr
来源: https://www.cnblogs.com/yanwen94/p/15880429.html

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有