一,获取所需配置的主机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. 【13】正则化网络激活函数(Batch归一化)

    正则化网络激活函数(Batch归一化): 在神经网络训练中,只是对输入层数据进行归一化处理,却没有在中间层进行归一化处理.要知道,虽然我们对输入数据进行了归一化处理,但是输入数据经过σ(WX+b)σ( ...

  2. hextorgb

    function hexToRgb(hex) { // By Tim Down - http://stackoverflow.com/a/5624139/3493650 // Expand short ...

  3. canvas-画圆心的算法

    公式为x=16sin~3t,y=(13cost-5cos2t-2cos3t-cos4t) x+r(16Math.pow(Math.sin(t),3)) y-r(13Math.cos(t)-5Math. ...

  4. 【巨杉数据库SequoiaDB】为“战疫” 保驾护航,巨杉在行动

    2020年,我们经历了一个不平静的新春,在这场大的“战疫”中,巨杉数据库也积极响应号召,勇于承担新一代科技企业的社会担当,用自己的行动助力这场疫情防控阻击战! 赋能“战疫”快速响应 巨杉数据库目前服务 ...

  5. PAT (Advanced Level) Practice 1120 Friend Numbers (20 分) (set)

    Two integers are called "friend numbers" if they share the same sum of their digits, and t ...

  6. ASP.NET常用内置对象(一)Request

    用来获取客户端在请求一个页面或传送一个Form是提供的所有信息.它包括用户的HTTP变量.能够识别的浏览器信息.存储客户端的Cookie信息和请求地址等. Request对象是System.Web.H ...

  7. vue里使用element饿了么的el-menu+vue-router实现路由跳转的两种方法

    最近准备写一个echarts的可视化展示案例,首先用vue-cli3创建了一个项目(好像vue-cli4也出来,感觉变化不大,就没升级了) 然后,开始配置路由↓下面是我的router.js文件 imp ...

  8. java - CAS及CAS底层原理

    CAS是什么? CAS的全称为Compare-And-Swap它是一条CPU并发原语,也就是在CPU硬件层面上来说比较并且判断是否设置新值这段操作是原子性的,不会被其他线程所打断.在JAVA并发包ja ...

  9. 将内裤穿在外面的男人(mysql)

    superman 的好处是可以为所欲为,不仅可以修改自己的密码,还能给别人授权,修改别人的密码. 1.修改自己 的密码 首先要先登录mysql, 然后: mysqladmin   -u   root ...

  10. 常用sql 2018.08.31

    concat()函数 concat(str1, str2,...)功能:将多个字符串连接成一个字符串 返回结果为连接参数产生的字符串,如果有任何一个参数为null,则返回值为null. 如:CONCA ...