简单python脚本实例-python常用运维脚本实例

#提前配置好免密钥登陆,与apache服务

import pexpect

import os

ds_ip= '192.168.102.143'rs1_ip= '192.168.102.144'rs2_ip= '192.168.102.145'vip= '192.168.102.250'ds_cmd= ['ipvsadm -C','ipvsadm -A -t {vip}:80 -s rr'.format(vip=vip),'ipvsadm -a -t {vip}:80 -r {rs1_ip}:80 -g'.format(vip=vip, rs1_ip=rs1_ip),'ipvsadm -a -t {vip}:80 -r {rs2_ip}:80 -g'.format(vip=vip,rs2_ip=rs2_ip),'ifconfig ens33:0 {vip} broadcast {vip} netmask 255.255.255.255 up'.format(vip=vip),'route add -host {vip} dev ens33:0'.format(vip=vip)

]

#for ds_cmd inds_cmd:

rs1_cmd=['ansible rs1 -m shell -a "ifconfig lo:0 {vip} broadcast {vip} netmask 255.255.255.255 up" &>/dev/null'.format(vip=vip),'ansible rs1 -m shell -a "route add -host {vip} dev lo:0" &>/dev/null'.format(vip=vip),'ansible rs1 -m shell -a "echo "1" > /proc/sys/net/ipv4/conf/lo/arp_ignore" &>/dev/null','ansible rs1 -m shell -a "echo "2" > /proc/sys/net/ipv4/conf/lo/arp_announce" &>/dev/null','ansible rs1 -m shell -a "echo "1" > /proc/sys/net/ipv4/conf/all/arp_ignore" &>/dev/null','ansible rs1 -m shell -a "echo "2" > /proc/sys/net/ipv4/conf/all/arp_announce" &>/dev/null','service httpd restart']

#for rs_cmd inrs_cmd:

rs2_cmd=['ansible rs2 -m shell -a "ifconfig lo:0 {vip} broadcast {vip} netmask 255.255.255.255 up" &>/dev/null'.format(vip=vip),'ansible rs2 -m shell -a "route add -host {vip} dev lo:0" &>/dev/null'.format(vip=vip),'ansible rs2 -m shell -a "echo "1" > /proc/sys/net/ipv4/conf/lo/arp_ignore" &>/dev/null','ansible rs2 -m shell -a "echo "2" > /proc/sys/net/ipv4/conf/lo/arp_announce" &>/dev/null','ansible rs2 -m shell -a "echo "1" > /proc/sys/net/ipv4/conf/all/arp_ignore" &>/dev/null','ansible rs2 -m shell -a "echo "2" > /proc/sys/net/ipv4/conf/all/arp_announce" &>/dev/null','service httpd restart']

ansible='''echo "[rs1]" >> /etc/ansible/hosts;

echo"{rs1_ip}" >> /etc/ansible/hosts;

echo"[rs2]" >> /etc/ansible/hosts;

echo"{rs2_ip}" >> /etc/ansible/hosts;'''.format(rs1_ip=rs1_ip,rs2_ip=rs2_ip)

def Ansible():

res= os.system('yum install ansible -y &>/dev/null')if res== 0:

print('ansible安装完成!')

os.system(ansible)def lvs():

i= os.system('yum -y install ipvsadm &>/dev/null')if i == 0:

print('lvs下载完成')for a inds_cmd:

res=os.system(a)if res == 0:

print('ok')else:

print('false')for b inrs1_cmd:

res1=os.system(b)if res1 == 0:

print('ok')else:

print('false')for c inrs2_cmd:

res2=os.system(c)if res2 == 0:

print('ok')else:

print('false')else:

print('lvs下载失败')

keepalived= '''#全局配置! Configuration File forkeepalived

#全局配置

global_defs {

notification_email {

#收件人地址

}

#邮件服务器

}

VRRP配置DS1

vrrp_instance VI_1 {

state MASTER #角色类型MASTER|BACKUPinterfaceens33 #网卡名称

virtual_router_id51#虚拟路由id(需要与BACKUP一致)

priority100#优先级

advert_int1#没1秒检查一次

#nopreempt #非抢占模式

authentication {

auth_type PASS #认证类型 主备之间必须一样

auth_pass1111#认证密码 主备之间必须一样

}

virtual_ipaddress {192.168.102.250#虚拟ip(vip)

}

}

#LVS配置

virtual_server192.168.102.250 80{

delay_loop3#健康检查时间间隔

lb_algo rr #负载均衡调度算法

lb_kind DR #负载均衡转发规则

protocol TCP #协议

real_server192.168.102.144 80{ #要监控的real_server的ip和端口号

weight1#权重

TCP_CHECK { #基于tcp协议的检查

connect_timeout3#连接时间超时

retry3#重连次数

delay_before_retry3#重连间隔时间

}

}

real_server192.168.102.145 80{

weight1TCP_CHECK {

connect_timeout3retry3delay_before_retry3}

}

}'''def Keepalived():

d= os.system('yum install keepalived -y &> /dev/null')if d == 0:

print('keeplived下载完成')

with open(r'/etc/keepalived/keepalived.conf', 'w', encoding='utf-8') asf:

f.write(keepalived)

e= os.system('systemctl start keepalived')if e == 0:

print('keepalived部署完成!')else:

print('keepalived部署失败')else:

print('keepalived下载失败')

def main():

# key()

Ansible()

# ssh_copy()

lvs()

Keepalived()if __name__ == '__main__':

main()

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值