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

cat get_ip.sh

  

#!/bin/bash
#将获得到的IP地址写进IP.txt
>ip.txt
#将原有的hosts信息清除
>/root/.ssh/known_hosts #如果没有公钥,退出建立
if [ ! -f ~/.ssh/id_rsa.pub ];then
echo "请使用ssh-kengen建立密钥!!!"
exit
fi
yum -y install expect for i in {..}
do
{
ip=192.168..$i
#ping一次,超时1s
ping -c1 -W1 $ip &>/dev/null
if [ $? -eq ];then
#ping成功则记录到ip.txt中
echo $ip >> ip.txt
#使用expect执行下列内容,spawn负责传递公钥给ip,传递yes和密码给可能出现的询问,遇到"#"退出expect
/usr/bin/expect <<-EOF
set timeout
spawn ssh-copy-id -i $ip
expect {
"*yes/no" { send "yes\r"; exp_continue }
"*password:" { send "uplooking\r" }
} expect "#"
send "exit\r"
expect eof
EOF
fi
}&
done wait
echo "finish..."

二,配置RS

vim lvs_dr_realserver_init.sh

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

二,调度器初始化

vim lvs_dr_director_init.sh

#!/bin/bash
#LVS_DR_Director初始化
#设置分隔符为回车
IFS=$'\n'
#避免sed修改文件时导致该文件的软连接失效
alias sed='sed -c --follow-symlinks'
ntpserver=172.16.8.100
gw=192.168.122.1 for line in `cat ip.txt`
#文件格式如下ip.txt
#old_ip hostname newip
#192.168.122.52 director1 192.168.122.2
#192.168.122.52 director2 192.168.122.3
#...
do
{
ip=`echo $line |awk '{print $1}'`
hostname=`echo $line |awk '{print $2}'`
newip=`echo $line |awk '{print $3}'`
#''强引用,变量失效;""变量正常调用
ssh root@$ip 'chkconfig NetworkManager off'
ssh root@$ip 'iptables -F; service iptables save'
#sed c 取代
ssh root@$ip "sed -r -i "/^SELINUX/cSELINUX=disabled" /etc/selinux/config"
ssh root@$ip "sed -r -i "/^HOSTNAME/cHOSTNAME=$hostname" /etc/sysconfig/network"
ssh root@$ip "sed -r -i "/^BOOTPROTO/cBOOTPROTO=none" /etc/sysconfig/network-scripts/ifcfg-eth0"
#sed 3a 第三行后边新增
ssh root@$ip "sed -r -i "/3aIPADDR=$newip" /etc/sysconfig/network-scripts/ifcfg-eth0"
ssh root@$ip "sed -r -i "/3aGATEWAY=$gw" /etc/sysconfig/network-scripts/ifcfg-eth0"
#ssh root@$ip "wget ftp://172.16.8.100/rhel6.repo -0 /etc/yum.repos.d/rhel6.repo"
ssh root@$ip "yum -y install ipvsadm keepalived"
ssh root@$ip "ntpdate -b $ntpserver"
ssh root@$ip "reboot"
}&
done wait
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. 神经网络反向传播算法&&卷积神经网络

    听一遍课程之后,我并不太明白这个算法的奇妙之处?? 为啥? 神经网络反向传播算法 神经网络的训练依靠反向传播算法,最开始输入层输入特征向量,网络层计算获得输出,输出层发现输出和正确的类号不一样,这时就 ...

  2. Normalizing flows

    probability VS likelihood: https://zhuanlan.zhihu.com/p/25768606 http://sdsy888.me/%E9%9A%8F%E7%AC%9 ...

  3. java读取解析application.yml

    java读取解析application.yml 不用依赖spring容器,可单独使用. bug已修改... 第一步.首先要2个jar <!-- properties和yaml格式化 --> ...

  4. (转)Android访问webservice

    纠正网上乱传的android调用Webservice方法.   1.写作背景: 笔者想实现android调用webservice,可是网上全是不管对与错乱转载的文章,结果不但不能解决问题,只会让人心烦 ...

  5. npm 基础命令

    npm是一个node包管理和分发工具,已经成为了非官方的发布node模块(包)的标准.有了npm,可以很快的找到特定服务要使用的包,进行下载.安装以及管理已经安装的包.npm 从5.2版开始,增加了 ...

  6. 八连通(vector动态数组法)

    题目和一般的八连通一样,但行数和列数未定,相乘对于1e6,直接开a[1e6][1e6]的数组肯定会爆内存.用二维的动态vector就能很好的解决这个问题 #include<bits/stdc++ ...

  7. ssh排错思路

    telnet远程22端口refused 先netstat  -utnlp  看一下22端口监听状态(一般都不在监听) 然后systemctl  restart sshd 如果有报错,执行sshd  - ...

  8. Java数组动态增加容量

    Java数组初始化需要指定数组容量,但是在许多情况下需要动态扩充容量.有两种方法可以实现:1.采用ArrayList类数组,它可以在需要时自动扩容:2.采用System.arraycopy方法实现,其 ...

  9. Python-Django学习笔记(三)-Model模型的编写以及Oracle数据库的配置

    Django使用的 MTV 设计模式(Models.Templates.Views) 因此本节将围绕这三部分并按照这个顺序来创建第一个页面 模型层models.py 模型是数据唯一而且准确的信息来源. ...

  10. MariaDB Windows 安装

    1.复制安装文件到服务器 2.解压到指定的目录,并创建my.ini: 3.编辑my.ini文件内容 [client] port=3307 [mysql] default-character-set=u ...