一,获取所需配置的主机IP

cat get_ip.sh

  

  1. #!/bin/bash
  2. #将获得到的IP地址写进IP.txt
  3. >ip.txt
  4. #将原有的hosts信息清除
  5. >/root/.ssh/known_hosts
  6.  
  7. #如果没有公钥,退出建立
  8. if [ ! -f ~/.ssh/id_rsa.pub ];then
  9. echo "请使用ssh-kengen建立密钥!!!"
  10. exit
  11. fi
  12. yum -y install expect
  13.  
  14. for i in {..}
  15. do
  16. {
  17. ip=192.168..$i
  18. #ping一次,超时1s
  19. ping -c1 -W1 $ip &>/dev/null
  20. if [ $? -eq ];then
  21. #ping成功则记录到ip.txt中
  22. echo $ip >> ip.txt
  23. #使用expect执行下列内容,spawn负责传递公钥给ip,传递yes和密码给可能出现的询问,遇到"#"退出expect
  24. /usr/bin/expect <<-EOF
  25. set timeout
  26. spawn ssh-copy-id -i $ip
  27. expect {
  28. "*yes/no" { send "yes\r"; exp_continue }
  29. "*password:" { send "uplooking\r" }
  30. }
  31.  
  32. expect "#"
  33. send "exit\r"
  34. expect eof
  35. EOF
  36. fi
  37. }&
  38. done
  39.  
  40. wait
  41. echo "finish..."

二,配置RS

vim lvs_dr_realserver_init.sh

  1. #!/bin/bash
  2. #LVS_DR_Realserver初始化
  3. #设置分隔符为回车
  4. IFS=$'\n'
  5. #避免sed修改文件时导致该文件的软连接失效
  6. alias sed='sed -c --follow-symlinks'
  7. ntpserver=172.16.8.100
  8. gw=192.168.122.1
  9. vip=192.168.122.100
  10.  
  11. for line in `cat real_serverip.txt`
  12. #文件格式如下real_serverip.txt
  13. #old_ip hostname newip
  14. #192.168.122.62 web10 192.168.122.10
  15. #192.168.122.72 web20 192.168.122.20
  16. #192.168.122.82 web30 192.168.122.30
  17. #...
  18. do
  19. {
  20. ip=`echo $line |awk '{print $1}'`
  21. hostname=`echo $line |awk '{print $2}'`
  22. newip=`echo $line |awk '{print $3}'`
  23. }
  24. #''强引用,变量失效;""变量正常调用
  25. ssh root@$ip 'chkconfig NetworkManager off'
  26. ssh root@$ip 'iptables -F; service iptables save'
  27. #sed c 取代
  28. ssh root@$ip "sed -r -i "/^SELINUX/cSELINUX=disabled" /etc/selinux/config"
  29. ssh root@$ip "sed -r -i "/^HOSTNAME/cHOSTNAME=$hostname" /etc/sysconfig/network"
  30. ssh root@$ip "sed -r -i "/^BOOTPROTO/cBOOTPROTO=none" /etc/sysconfig/network-scripts/ifcfg-eth0"
  31. #sed 3a 第三行后边新增
  32. ssh root@$ip "sed -r -i "/3aIPADDR=$newip" /etc/sysconfig/network-scripts/ifcfg-eth0"
  33. ssh root@$ip "sed -r -i "/3aGATEWAY=$gw" /etc/sysconfig/network-scripts/ifcfg-eth0"
  34. #ssh root@$ip "wget ftp://172.16.8.100/rhel6.repo -0 /etc/yum.repos.d/rhel6.repo"
  35. ssh root@$ip "yum -y install lftp tree httpd"
  36. ssh root@$ip "chkconfig httpd on"
  37. ssh root@$ip "echo $hostname > /var/www/html/index.html"
  38. ssh root@$ip "ntpdate -b $ntpserver"
  39. ssh root@$ip "echo 'echo 1 > /proc/sys/net/ipv4/conf/all/arp_ignore' >> /etc/rc.local"
  40. ssh root@$ip "echo 'echo 2 > /proc/sys/net/ipv4/conf/all/arp_announce' >> /etc/rc.local"
  41. ssh root@$ip "echo 'echo 'ip addr add dev lo' $vip/32 >> /etc/rc.local"
  42. ssh root@$ip "reboot"
  43. }&
  44. done
  45.  
  46. wait
  47. echo "所有主机初始化完成"

二,调度器初始化

vim lvs_dr_director_init.sh

  1. #!/bin/bash
  2. #LVS_DR_Director初始化
  3. #设置分隔符为回车
  4. IFS=$'\n'
  5. #避免sed修改文件时导致该文件的软连接失效
  6. alias sed='sed -c --follow-symlinks'
  7. ntpserver=172.16.8.100
  8. gw=192.168.122.1
  9.  
  10. for line in `cat ip.txt`
  11. #文件格式如下ip.txt
  12. #old_ip hostname newip
  13. #192.168.122.52 director1 192.168.122.2
  14. #192.168.122.52 director2 192.168.122.3
  15. #...
  16. do
  17. {
  18. ip=`echo $line |awk '{print $1}'`
  19. hostname=`echo $line |awk '{print $2}'`
  20. newip=`echo $line |awk '{print $3}'`
  21. #''强引用,变量失效;""变量正常调用
  22. ssh root@$ip 'chkconfig NetworkManager off'
  23. ssh root@$ip 'iptables -F; service iptables save'
  24. #sed c 取代
  25. ssh root@$ip "sed -r -i "/^SELINUX/cSELINUX=disabled" /etc/selinux/config"
  26. ssh root@$ip "sed -r -i "/^HOSTNAME/cHOSTNAME=$hostname" /etc/sysconfig/network"
  27. ssh root@$ip "sed -r -i "/^BOOTPROTO/cBOOTPROTO=none" /etc/sysconfig/network-scripts/ifcfg-eth0"
  28. #sed 3a 第三行后边新增
  29. ssh root@$ip "sed -r -i "/3aIPADDR=$newip" /etc/sysconfig/network-scripts/ifcfg-eth0"
  30. ssh root@$ip "sed -r -i "/3aGATEWAY=$gw" /etc/sysconfig/network-scripts/ifcfg-eth0"
  31. #ssh root@$ip "wget ftp://172.16.8.100/rhel6.repo -0 /etc/yum.repos.d/rhel6.repo"
  32. ssh root@$ip "yum -y install ipvsadm keepalived"
  33. ssh root@$ip "ntpdate -b $ntpserver"
  34. ssh root@$ip "reboot"
  35. }&
  36. done
  37.  
  38. wait
  39. echo "所有主机初始化完成"

三、配置调度器

自动化脚本-配置LVS(DR模式)的更多相关文章

  1. CentOS下LVS DR模式负载均衡配置详解

    一安装LVS准备: 1.准备4台Centos 6.2 x86_64 注:本实验关闭 SELinux和IPtables防火墙. 管理IP地址 角色 备注 192.168.1.101 LVS主调度器(Ma ...

  2. centos LB负载均衡集群 三种模式区别 LVS/NAT 配置 LVS/DR 配置 LVS/DR + keepalived配置 nginx ip_hash 实现长连接 LVS是四层LB 注意down掉网卡的方法 nginx效率没有LVS高 ipvsadm命令集 测试LVS方法 第三十三节课

    centos   LB负载均衡集群 三种模式区别 LVS/NAT 配置  LVS/DR 配置  LVS/DR + keepalived配置  nginx ip_hash 实现长连接  LVS是四层LB ...

  3. Keepalived+LVS DR模式高可用架构实践

    Keepalived最初是为LVS设计,专门监控各服务器节点的状态(LVS不带健康检查功能,所以使用keepalived进行健康检查),后来加入了VRRP(虚拟路由热备协议(Virtual Route ...

  4. lvs dr 模式请求过程

    一. lvs dr 模式请求过程 1.整个请求过程如下: client在发起请求之前,会发一个arp广播的包,在网络中找"谁是vip",由于所有的服务器,lvs和rs都有vip,为 ...

  5. LVS DR模式 负载均衡服务搭建

    LVS 负载均衡 最近在研究服务器负载均衡,阅读了网上的一些资料,发现主要的软件负载均衡方案有nginx(针对HTTP服务的负载均衡),LVS(针对IP层,MAC层的负载均衡).LVS模式工作在网络层 ...

  6. 一个公网地址部署LVS/DR模式

    http://blog.chinaunix.net/uid-7411781-id-3436142.html 一个公网地址部署LVS/DR模式   网上看了很多关于LVS的文章,在选取2种模式LVS/D ...

  7. 负载均衡LVS(DR模式)安装实战

    1.编译安装ipvsadm 首先从LVS官网下载tarball,解压后make && make install即可. 要注意的是LVS的依赖有:popt-static.libnl.ke ...

  8. LVS DR模式搭建、keepalived+lvs

    1.LVS DR模式搭建 条件: 即三台机器,在同一内网. 编辑脚本文件:/usr/local/sbin/lvs_dr.sh #! /bin/bashecho 1 > /proc/sys/net ...

  9. LVS DR模式搭建 keepalived lvs

    LVS DR模式搭建• 三台机器 • 分发器,也叫调度器(简写为dir)172.16.161.130 • rs1 172.16.161.131 • rs2 172.16.161.132 • vip 1 ...

随机推荐

  1. 【剑指Offer】04、重建二叉树

    题目描述 输入某二叉树的前序遍历和中序遍历的结果,请重建出该二叉树.假设输入的前序遍历和中序遍历的结果中都不含重复的数字.例如输入前序遍历序列{1,2,4,7,3,5,6,8}和中序遍历序列{4,7, ...

  2. Java链表常见操作【剑指Offer】03:从尾到头打印链表

    题目描述 输入一个链表,按链表从尾到头的顺序返回一个ArrayList. 题解一:递归 /* 在最后一次递归方法返回以后,每一层的递归方法都会做一个arrayList.add(listNode.val ...

  3. sqli-labs less-17 --> less-20

    Less-17 (报错盲注) 参考资料1:https://www.cnblogs.com/AmoBlogs/p/8673748.html

  4. WPF Dispatcher.BeginInvoke子线程更新UI

    在开发WPF应用时出现:”调用线程无法访问此对象,因为另一个线程拥有该对象.“ 是因为UI线程是WPF应用的主线程,若尝试子线程更新UI线程应使用Dispatcher.BeginInvoke()或者I ...

  5. 服务&软件&基础设施的区别

    IT基础设施: 软件 硬件 数据库相关DBM 网络相关 networking(网络通信) 以上4个会出现的比较多 application people 上面的东西都能提供IT服务 一半的互联网公司都会 ...

  6. C++——继承与派生

    1.类的继承与派生  保持已有类的特性而构造新类的过程成为继承: 在已有类的基础上新增自己的特性而产生新类的过程称为派生: 被继承的已有类为基类:派生出的新类成为派生类.继承和派生其实是一回事. 继承 ...

  7. Java基本语法--程序流程控制

    流程控制语句是用来控制程序中各语句执行顺序的语句,可以把语句组合成能完成一定功能的小逻辑模块.流程控制方式采用结构化程序设计中规定的三种基本流程结构,即:顺序结构.分支结构.循环结构.本篇博客主要是对 ...

  8. Ubuntu 安装交叉编译器出错问题

    安装教程网上有很多,可参考:Ubuntu14.04(64位)下gcc-linaro-arm-linux-gnueabihf交叉编译环境搭建 但是我的问题一直是路径搭好了,就是找不到文件:反复查找,花了 ...

  9. 巨杉TechDay回顾 | 技术人的夏天 · 就是这么燃!

    在All in Cloud的云计算时代,业务和应用正在不断“云化”,在此过程中云原生(Cloud Native)理念应运而生.作为云化改造的重要部分,云数据库因其天生的弹性扩展能力以及灵活.易用等特点 ...

  10. xshell连接本地虚拟机中的centos

    1. 一开始Xshell连接不上(设置为DHCP 动态IP)虚拟机上的centos8 参考这篇博文,将centos上的DHCP改为static 静态IP xshell连接本地虚拟机中的centos 2 ...