1. import paramiko
  2. vip = '192.168.42.250'
  3. ds = '192.168.42.8'
  4. rs1 = '192.168.42.9'
  5. rs2 = '192.168.42.10'
  6. ds_cmd = ''' #调度器配置
  7. ipvsadm -C;
  8. ipvsadm -A -t {vip}:80 -s wrr;
  9. ipvsadm -a -t {vip}:80 -r {rs1}:80 -w 1 -g;
  10. ipvasdm -a -t {vip}:80 -r {rs2}:80 -w 2 -g;
  11. ifconfig ens33:0 {vip} broadcast {vip} netmask 255.255.255.255 up;
  12. route add -host {vip} ens33:0'''.format(vip=vip,rs1=rs1,rs2=rs2)
  13.  
  14. rs1_cmd = ''' #real_server1配置
  15. ifconfig lo:0 {vip} broadcast {vip} netmask 255.255.255.255 up;
  16. route add -host {vip} lo:0;
  17. echo "1" > /proc/sys/net/ipv4/conf/all/arp_ignore;
  18. echo "2" > /proc/sys/net/ipv4/conf/all/arp_announce;
  19. echo "1" > /proc/sys/net/ipv4/conf/lo/arp_ignore;
  20. echo "2" > /proc/sys/net/ipv4/conf/lo/arp_announce;
  21. service httpd restart'''.format(vip=vip)
  22. rs2_cmd = ''' #real_server2配置
  23. ifconfig lo:0 {vip} broadcast {vip} netmask 255.255.255.255 up;
  24. route add -host {vip} lo:0;
  25. echo "1" > /proc/sys/net/ipv4/conf/all/arp_ignore;
  26. echo "2" > /proc/sys/net/ipv4/conf/all/arp_announce;
  27. echo "1" > /proc/sys/net/ipv4/conf/lo/arp_ignore;
  28. echo "2" > /proc/sys/net/ipv4/conf/lo/arp_announce;
  29. service httpd restart'''.format(vip=vip)
  30.  
  31. ssh=paramiko.SSHClient() #连接远程主机
  32. ssh.set_missing_host_key_policy(paramiko.AutoAddPolicy())
  33.  
  34. def direct_server():
  35. ssh.connect('{ds}'.format(ds=ds),22,'root','',timeout=3)
  36. stdin,stdout,stderr=ssh.exec_command(ds_cmd)
  37. print(stdout.read().decode('utf-8'))
  38. print(stderr.read().decode('utf-8'))
  39. print('direct_server配置完成')
  40.  
  41. def real_server1():
  42. ssh.connect('{rs1}'.format(rs1=rs1),22,'root','',timeout=3)
  43. stdin,stdout,stderr=ssh.exec_command(rs1_cmd)
  44. print(stdout.read().decode('utf-8'))
  45. print(stderr.read().decode('utf-8'))
  46. print('real_server1配置完成')
  47.  
  48. def real_server2():
  49. ssh.connect('{rs2}'.format(rs2=rs2),22,'root','',timeout=3)
  50. stdin,stdout,stderr=ssh.exec_command(rs2_cmd)
  51. print(stdout.read().decode('utf-8'))
  52. print(stderr.read().decode('utf-8'))
  53. print('real_server2配置完成')
  54.  
  55. def main(): #调用函数
  56. direct_server()
  57. real_server1()
  58. real_server2()
  59. ssh.close()
  60. if __name__ == '__main__':
  61. main()

用pyhton配置LVS_DR模式的更多相关文章

  1. External Configuration Store Pattern 外部配置存储模式

    Move configuration information out of the application deployment package to a centralized location. ...

  2. rabbitmq配置镜像模式

    学习是spring cloud的时候用到了rabbitmq,在实际项目中也用到了,镜像模式是集群的基础上面配置的,就多了一个数据同步,rabbitmq存储消息用的是cookie,配置之前先同步cook ...

  3. Redis配置sentinel模式

    Redis配置sentinel模式 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. 哨兵(sentinel)主要是完成三个功能:监控,通知,自动故障转移功能.sentinel是安装R ...

  4. thinkphp配置rewrite模式访问时不生效 出现No input file specified解决方法

    使用thinkphp配置rewire模式的路径访问网站时, 直接复制官网的.htaccess文件的代码复制过去 1 2 3 4 5 6 <IfModule mod_rewrite.c>   ...

  5. 【Linux】VirtualBox网络配置桥接模式

    VirtualBox网络配置桥接模式 CentOS/RHEL (虚拟机)配置 # 基于桥接模式设置固定 ip cat >> /etc/sysconfig/network-scripts/i ...

  6. Redis主从复制配置+哨兵模式

    架构设计: master:s0 slave:s1.s2 主机映射信息如下: 192.168.32.100 s0 192.168.32.101 s1 192.168.32.102 s2 1.安装Redi ...

  7. LVS_DR模式构建配置

    一.环境准备 lvs负载均衡器 系统:centos6.8 ip:192.168.2.203 vip:192.168.2.17 web服务器RS1 系统:centos6.8 ip:192.168.2.2 ...

  8. keepalived深度结合lvs_dr模式

    keepalived与dr模式结合 keepalived介绍 keepalived可提供vrrp以及health-check功能,可以只用它提供双机浮动的vip(vrrp虚拟路由功能), 这样可以简单 ...

  9. nginx中配置pathinfo模式示例

    要想让nginx支持PATH_INFO,首先需要知道什么是pathinfo,为什么要用pathinfo? pathinfo不是nginx的功能,pathinfo是php的功能. php中有两个path ...

随机推荐

  1. bug是前端还是后端

    分析bug是前端还是后端的   如何分析一个bug是前端还是后端的? 平常提bug的时候,前端开发和后端开发总是扯皮,不承认是对方的bug这种情况很容易判断,先抓包看请求报文,对着接口文档,看请求报文 ...

  2. HTML5——2 HTML5视频

    在以往我们还是使用flash来进行播放视频,但是它有先天的缺陷,比如,很多的浏览器并不会直接去支持flash插件,需要你自己去安装,而且版本也很难去统一,也有浏览器先天集成了这个插件,比如Chrome ...

  3. JavaScript变量、作用域和内存问题总结

    ㈠理解基本类型和引用类型的值  ⑴JavaScript变量可以用来保存两种类型的值:基本类型值和引用类型值. ⑵基本类型的值源自以下 5 种基本数据类型:Undefined.Null.Boolean. ...

  4. 创建一个新的laravel

    //创建laravelcomposer create-project laravel/laravel shop 安装好 Laravel 之后的下一步是设置你的应用密钥为随机字符串.如果你通过 comp ...

  5. vim 自动代码格式调整

    1,gg 跳转到第一行 2,shift+v 转到可视模式 3,shift+g 全选 4,按下神奇的 =

  6. spring boot+idea实现程序热部署

    pring为开发者提供了一个名为spring-boot-devtools的模块来使Spring Boot应用支持热部署,提高开发者的开发效率,无需手动重启Spring Boot应用. devtools ...

  7. 云栖社区 Tensorflow快餐教程

    云栖社区 Tensorflow快餐教程(1) - 30行代码搞定手写识别:https://yq.aliyun.com/articles/582122云栖社区 Tensorflow快餐教程(2) - 标 ...

  8. hive-server 启动失败问题小记

    Unable to instantiate using constructor(MetricRegistry, HiveC onf) for reporter org.apache.hadoop.hi ...

  9. 利用Python构建时间序列模型解决实际问题的正确姿势

    要本着应用到实际工作中目的去学时间序列分析,才能深入浅出的学会,不要纠结于理论,只听我的,我有信心说明白. 本章内容 趋势分析 序列分解 序列预测 序列分解 统计学基础铺垫 划分 时间序列按照季节性划 ...

  10. CSS高级学习-1

    优先级 权值 标签权值为1,类权值为10,ID权值最高为100. p{color:red;} /*权值为1*/ p span{color:green;} /*权值为1+1=2*/ .warning{c ...