zoukankan      html  css  js  c++  java
  • 用pyhton配置LVS_DR模式

    import paramiko
    vip = '192.168.42.250'
    ds = '192.168.42.8'
    rs1 = '192.168.42.9'
    rs2 = '192.168.42.10'
    ds_cmd = '''                                      #调度器配置
            ipvsadm -C;
            ipvsadm -A -t {vip}:80 -s wrr;
            ipvsadm -a -t {vip}:80 -r {rs1}:80 -w 1 -g;
            ipvasdm -a -t {vip}:80 -r {rs2}:80 -w 2 -g;
            ifconfig ens33:0 {vip} broadcast {vip} netmask 255.255.255.255 up;
            route add -host {vip} ens33:0'''.format(vip=vip,rs1=rs1,rs2=rs2)
    
    rs1_cmd = '''                                #real_server1配置
            ifconfig lo:0 {vip} broadcast {vip} netmask 255.255.255.255 up;
            route add -host {vip} lo:0;
            echo "1" > /proc/sys/net/ipv4/conf/all/arp_ignore;
            echo "2" > /proc/sys/net/ipv4/conf/all/arp_announce;
            echo  "1" > /proc/sys/net/ipv4/conf/lo/arp_ignore;
            echo "2" > /proc/sys/net/ipv4/conf/lo/arp_announce;
            service httpd restart'''.format(vip=vip)
    rs2_cmd = '''                                #real_server2配置
            ifconfig lo:0 {vip} broadcast {vip} netmask 255.255.255.255 up;
            route add -host {vip} lo:0;
            echo "1" > /proc/sys/net/ipv4/conf/all/arp_ignore;
            echo "2" > /proc/sys/net/ipv4/conf/all/arp_announce;
            echo  "1" > /proc/sys/net/ipv4/conf/lo/arp_ignore;
            echo "2" > /proc/sys/net/ipv4/conf/lo/arp_announce;
            service httpd restart'''.format(vip=vip)
    
    ssh=paramiko.SSHClient()                                  #连接远程主机
    ssh.set_missing_host_key_policy(paramiko.AutoAddPolicy())
    
    def direct_server():
        ssh.connect('{ds}'.format(ds=ds),22,'root','0330',timeout=3)
        stdin,stdout,stderr=ssh.exec_command(ds_cmd)
        print(stdout.read().decode('utf-8'))
        print(stderr.read().decode('utf-8'))
        print('direct_server配置完成')
    
    def real_server1():
        ssh.connect('{rs1}'.format(rs1=rs1),22,'root','0330',timeout=3)
        stdin,stdout,stderr=ssh.exec_command(rs1_cmd)
        print(stdout.read().decode('utf-8'))
        print(stderr.read().decode('utf-8'))
        print('real_server1配置完成')
    
    def real_server2():
        ssh.connect('{rs2}'.format(rs2=rs2),22,'root','0330',timeout=3)
        stdin,stdout,stderr=ssh.exec_command(rs2_cmd)
        print(stdout.read().decode('utf-8'))
        print(stderr.read().decode('utf-8'))
        print('real_server2配置完成')
    
    def main():                                   #调用函数
        direct_server()
        real_server1()
        real_server2()
        ssh.close()
    if __name__ == '__main__':
        main()
  • 相关阅读:
    第十周阅读内容
    第十周学习小结
    第九周阅读内容
    第九周学习小结
    第八周学习小结
    ..总结
    .总结
    总结.
    周总结
    总结
  • 原文地址:https://www.cnblogs.com/daisyyang/p/10836525.html
Copyright © 2011-2022 走看看