ElasticSearch,ansible自动化搭建(个人学习)

环境准备

 10.0.0.101 elk101.oldboyedu.com
 10.0.0.102 elk102.oldboyedu.com
 10.0.0.103 elk103.oldboyedu.com  

1)做好双击互信
    

vim fenfa.sh
    #!/bin/bash
    #vars
    elk_list="10.0.0.101 10.0.0.102 10.0.0.103"
    [ -e /root/.ssh/id_rsa ] || ssh-keygen -t rsa -P '' -f ~/.ssh/id_rsa -q
    function fenfa(){
    for ip in ${elk_list}
    do
       sshpass -p123456 ssh-copy-id -i ~/.ssh/id_rsa.pub  -o  StrictHostKeyChecking=no root@$ip
    done
    }
    sshpass >/dev/null
    if [ $? -ne 0 ];then
      yum install -y sshpass >/dev/null
      fenfa
    else
      fenfa
    fi


    


    2)环境准备,host解析、配置文件和脚本准备

    #host解析
    [root@elk101.oldboyedu.com ~]#cat /etc/hosts
    127.0.0.1   localhost localhost.localdomain localhost4 localhost4.localdomain4
    ::1         localhost localhost.localdomain localhost6 localhost6.localdomain6
    10.0.0.101 elk101.oldboyedu.com
    10.0.0.102 elk102.oldboyedu.com
    10.0.0.103 elk103.oldboyedu.com    
    #配置文件
    [root@elk101.oldboyedu.com ~]#cat ./elasticsearch.yml
    cluster.name: oldboyedu-linux85-binary
    path.data: /oldboyedu/data/es7
    path.logs: /oldboyedu/logs/es7
    network.host: 0.0.0.0
    discovery.seed_hosts: ["elk101.oldboyedu.com","elk102.oldboyedu.com","elk103.oldboyedu.com"]
    cluster.initial_master_nodes: ["elk101.oldboyedu.com","elk102.oldboyedu.com","elk103.oldboyedu.com"]
    #测试双机互信
    ssh elk101.oldboyedu.com ls
    ssh elk102.oldboyedu.com ls
    ssh elk103.oldboyedu.com ls



    


    3)使用10.0.0.101作为管理节点
  

yum install -y ansible
    #打开ansible日志
    [root@m01 ~]# egrep -vn '^$|#' /etc/ansible/ansible.cfg
    10:[defaults]
    71:host_key_checking = False
    111:log_path = /var/log/ansible.log
    #准备好主机清单
    [root@elk101.oldboyedu.com ~]#cat /etc/ansible/hosts
    [elk]
    10.0.0.101
    10.0.0.102
    10.0.0.103
    #内核调优
    [root@elk101.oldboyedu.com ~]# cat /etc/security/limits.d/es7.conf
    *    soft    nofile    65535
    *    hard    nofile    131070
    *    hard    nproc    8192
    [root@elk101.oldboyedu.com ~]# cat  /etc/sysctl.d/es.conf
    vm.max_map_count=524288


    #开始书写剧本

vim ~/deploy_es_multi_instance.yml
- hosts: elk
  gather_facts: false
  tasks:
  - name: 1)所有节点创建运行ES服务的用户
    user:
      name: oldboyedu
      uid: 2023
      state: present
  - name: 2)创建ElasticSearch的工作目录
    file:
      path: /oldboyedu/{{ item }}/es7
      owner: oldboyedu
      group: oldboyedu
      state: directory
    loop:
      - logs
      - data
      - softwares
  - name: 3)解压软件包
    unarchive:
      src: ./elasticsearch-7.17.5-linux-x86_64.tar.gz
      dest: /oldboyedu/softwares/es7/
      owner: oldboyedu
      group: oldboyedu
#模块参考链接https://docs.ansible.com/ansible/latest/collections/ansible/builtin/unarchive_module.html#ansible-collections-ansible-builtin-unarchive-module
  - name: 4)修改配置文件(分发配置文件并备份原有的配置文件)
    copy:
      src: ./elasticsearch.yml
      dest: /oldboyedu/softwares/es7/elasticsearch-7.17.5/config/
      backup: yes
  - name: 5)针对ES基础调优, 修改文件打开数量上线,修改后需要断开会话,调大内核虚拟内存映射值
#注意 nofile修改后要断开会话重连才有效
    copy:
      src: /etc/security/limits.d/es7.conf
      dest: /etc/security/limits.d/
      backup: yes
  - name: 5)针对ES基础调优, 修改文件打开数量上线,修改后需要断开会话,调大内核虚拟内存映射值
#注意 sysctl 参数修改 要sysctl -f|p  文件 才能修改
    copy:
      src: /etc/sysctl.d/es.conf
      dest: /etc/sysctl.d/es.conf
      backup: yes
  - name: 6)书写systemctl管理脚本并分发
    copy:
      src:  /usr/lib/systemd/system/es7.service
      dest: /usr/lib/systemd/system/
      backup: yes
  - name: 7)直接刷新后设置服务为开机自启动然后,重启机器,就要可以一步到位
    shell: sysctl -f /etc/sysctl.d/es.conf && systemctl enable es7 &&  shutdown -r 1

这是管理节点准备好的目录

[root@elk101.oldboyedu.com ~]#ll
total 588688
-rw-------. 1 root root      1370 Jul 30 17:34 anaconda-ks.cfg
-rw-r--r--  1 root root      1723 Jul 31 17:42 deploy_es_multi_instance.yml
-rw-r--r--  1 root root 149672445 Jul 30 16:29 elasticsearch-6.8.23.tar.gz
-rw-r--r--  1 root root 308183534 Jul 30 16:28 elasticsearch-7.17.5-linux-x86_64.tar.gz
-rw-r--r--  1 root root       317 Jul 31 17:19 elasticsearch.yml
-rw-r--r--  1 root root       379 Jul 31 16:07 fenfa.sh
-rw-r--r--  1 root root 144935989 Jul 30 16:28 jdk-8u291-linux-x64.tar.gz


    
运行剧本:

ansible-playbook -i /etc/ansible/hosts   ./deploy_es_multi_instance.yml
  • 7
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值