lvs+keeepalive自动化部署

import paramiko
def ready():
ssh = paramiko.SSHClient()
ssh.set_missing_host_key_policy(paramiko.AutoAddPolicy())
ssh.connect(‘192.168.5.181’, 22, ‘root’, ‘123ece’, timeout=5)
stdin, stdout, stderr = ssh.exec_command(
‘hostnamectl set-hostname ece2;’
‘yum -y install httpd;’
‘echo “192.168.5.183 ece1” >> /etc/hosts;’
‘echo “192.168.5.181 ece2” >> /etc/hosts;’
‘echo “192.168.5.182 ece3” >> /etc/hosts;’
)

ssh = paramiko.SSHClient()
ssh.set_missing_host_key_policy(paramiko.AutoAddPolicy())
ssh.connect('192.168.5.182', 22, 'root', '123ece', timeout=5)
stdin, stdout, stderr = ssh.exec_command(
    'hostnamectl set-hostname ece3;'
    'yum -y install httpd;'
    'echo "192.168.5.183 ece1" >> /etc/hosts;'
    'echo "192.168.5.181 ece2" >> /etc/hosts;'
    'echo "192.168.5.182 ece3" >> /etc/hosts;'
)

ssh = paramiko.SSHClient()
ssh.set_missing_host_key_policy(paramiko.AutoAddPolicy())
ssh.connect('192.168.5.183', 22, 'root', '123ece', timeout=5)
stdin, stdout, stderr = ssh.exec_command(
    'hostnamectl set-hostname ece1;'
    'echo "192.168.5.183 ece1" >> /etc/hosts;'
    'echo "192.168.5.181 ece2" >> /etc/hosts;'
    'echo "192.168.5.182 ece3" >> /etc/hosts;'
    'ssh-copy-id ece2;'                                                    #前提是已经生成了密钥文件                                        
    'ssh-copy-id ece3;'
)
print(stdout.read().decode('utf-8'))                                       #将修改完的密码给返回结果打印出来
print(stderr.read().decode('utf-8'))

def provide_lvs():
ssh = paramiko.SSHClient()
ssh.set_missing_host_key_policy(paramiko.AutoAddPolicy())
ssh.connect(‘192.168.5.183’, 22, ‘root’, ‘123ece’, timeout=5)
stdin, stdout, stderr = ssh.exec_command(
‘yum -y install ansible;’
‘echo “[dssv]” >> /etc/ansible/hosts;’
‘echo “192.168.5.181” >> /etc/ansible/hosts;’
‘echo “192.168.5.182” >> /etc/ansible/hosts;’

    'yum -y install ipvsadm;'
    'ipvsadm -C;'
    'ipvsadm -A -t 192.168.5.250:80 -s rr;'
    'ipvsadm -a -t 192.168.5.250:80 -r 192.168.5.181:80 -g;'
    'ipvsadm -a -t 192.168.5.250:80 -r 192.168.5.182:80 -g;'
    'ifconfig ens33:0 192.168.5.250 broadcast 192.168.5.250 netmask 255.255.255.255 up;'
    'route add -host 192.168.5.250 dev ens33:0;'
    
    'ansible dssv -m shell -a "ifconfig lo:0 192.168.5.250 broadcast 192.168.5.250 netmask 255.255.255.255 up";'
    'ansible sddv -m hsell -a "route add -host 192.168.5.250 dev lo:0";'
    'ansible addv -m shell -a "echo "1" > /proc/sys/net/ipv4/conf/lo/arp_ignore";'
    'ansible addv -m shell -a "echo "2">/proc/sys/net/ipv4/conf/lo/arp_announce";'
    'ansible addv -m shell -a "echo "1">/proc/sys/net/ipv4/conf/all/arp_ignore";'
    'ansible addv -m shell -a "echo "2">/proc/sys/net/ipv4/conf/all/arp_announce";'
    'ansible addv -m service -a "name=httpd state=present";'

)
print(stdout.read().decode('utf-8'))
print(stderr.read().decode('utf-8'))
print('lvs部署成功')

def provede_keepalived():
ssh = paramiko.SSHClient()
ssh.set_missing_host_key_policy(paramiko.AutoAddPolicy())
ssh.connect(‘192.168.5.181’, 22, ‘root’, ‘123ece’, timeout=5)
stdin, stdout, stderr = ssh.exec_command(
‘yum -y install keepalived;’
‘echo “! Configuration File for keepalived” > /etc/keepalived/keepalived.conf;’
‘echo “global_defs {” >> /etc/keepalived/keepalived.conf;’
‘echo " notification_email {" >> /etc/keepalived/keepalived.conf;’
‘echo " #收件人地址" >> /etc/keepalived/keepalived.conf;’
‘echo " }" >> /etc/keepalived/keepalived.conf;’
‘echo " #邮件服务器" >> /etc/keepalived/keepalived.conf;’
‘echo “}” >> /etc/keepalived/keepalived.conf;’
‘echo “#VRRP配置DS1” >> /etc/keepalived/keepalived.conf;’
‘echo “vrrp_instance VI_1 {” >> /etc/keepalived/keepalived.conf;’
‘echo " state MASTER" >> /etc/keepalived/keepalived.conf;’
‘echo " interface ens33" >> /etc/keepalived/keepalived.conf;’
‘echo " virtual_router_id 51" >> /etc/keepalived/keepalived.conf;’
‘echo " priority 100" >> /etc/keepalived/keepalived.conf;’
‘echo " advert_int 1" >> /etc/keepalived/keepalived.conf;’
‘echo " nopreempt" >> /etc/keepalived/keepalived.conf;’
‘echo “authentication {” >> /etc/keepalived/keepalived.conf;’
‘echo " auth_type PASS" >> /etc/keepalived/keepalived.conf;’
‘echo " auth_pass 1111" >> /etc/keepalived/keepalived.conf;’
‘echo " }" >> /etc/keepalived/keepalived.conf;’
‘echo " virtual_ipaddress {" >> /etc/keepalived/keepalived.conf;’
‘echo " 192.168.5.250" >> /etc/keepalived/keepalived.conf;’
‘echo " }" >> /etc/keepalived/keepalived.conf;’
‘echo “}” >> /etc/keepalived/keepalived.conf;’
‘echo “#LVS配置” >> /etc/keepalived/keepalived.conf;’
‘echo “virtual_server 192.168.5.250 80 {” >> /etc/keepalived/keepalived.conf;’
‘echo " delay_loop 3" >> /etc/keepalived/keepalived.conf;’
‘echo " lb_algo rr" >> /etc/keepalived/keepalived.conf;’
‘echo " lb_kind DR" >> /etc/keepalived/keepalived.conf;’
‘echo " protocol TCP" >> /etc/keepalived/keepalived.conf;’
‘echo “real_server 192.168.5.181 80 {” >> /etc/keepalived/keepalived.conf;’
‘echo " weight 1" >> /etc/keepalived/keepalived.conf;’
‘echo " TCP_CHECK {" >> /etc/keepalived/keepalived.conf;’
‘echo " connect_timeout 3" >> /etc/keepalived/keepalived.conf;’
‘echo " retry 3" >> /etc/keepalived/keepalived.conf;’
‘echo " delay_before_retry 3" >> /etc/keepalived/keepalived.conf;’
‘echo " }" >> /etc/keepalived/keepalived.conf;’
‘echo " }" >> /etc/keepalived/keepalived.conf;’
‘echo “real_server 192.168.254.182 80 {” >> /etc/keepalived/keepalived.conf;’
‘echo " weight 1" >> /etc/keepalived/keepalived.conf;’
‘echo " TCP_CHECK {" >> /etc/keepalived/keepalived.conf;’
‘echo " connect_timeout 3" >> /etc/keepalived/keepalived.conf;’
‘echo " retry 3" >> /etc/keepalived/keepalived.conf;’
‘echo " delay_before_retry 3" >> /etc/keepalived/keepalived.conf;’
‘echo " }" >> /etc/keepalived/keepalived.conf;’
‘echo " }" >> /etc/keepalived/keepalived.conf;’
‘echo “}” >> /etc/keepalived/keepalived.conf;’
‘systemctl restart keepalived’

)
print(stdout.read().decode('utf-8'))
print(stderr.read().decode('utf-8'))
print('keepalived部署成功')

if name == ‘main’:
ready()
provide_lvs()
provede_keepalived()

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值