$FHHOME/fabfile/net.py
$ fab -l |grep -F net.
$ H=test-server-01,test-server-02 # Interface's IP $ fab -H $H -- "ip a |grep inet" # Bonding $ fab -H $H -- egrep "*" /proc/net/bonding/bond* $ fab -H $H -- egrep -i "mode|currently|status|count" /proc/net/bonding/bond* # Bonding Driver $ fab -H $H -- "lsmod |grep bonding" # NIC Driver $ fab -H $H -- for i in `ip a |grep mtu |awk -F: {'print $2'} |egrep -v "lo"` ; do echo "----------" ; echo $i ;echo "----------"; ethtool -i $i ; done # Routing $ fab -H $H -- netstat -rn $ fab -H $H -- cat /etc/sysconfig/static-route # nmap $ fab -H $H -- sudo nmap -Pn -sT -p 22 xx.xx.xx.xx # tcpdump $ fab -H $H -- sudo tcpdump udp port 53 -i any -W1 -G30 # check 30 seconds $ fab -H $H -- sudo tcpdump -n not arp and not port 123 and not port 22 -W1 -G30 # check 30 seconds # DNS $ fab -H $H -- cat /etc/resolv.conf $ fab -H $H -- host google.com $ fab -H $H -- host test-server-01 $ fab -H $H -- host x.x.x.x
$FHHOME/fabfile/net.py
import sys, os from fabric.api import * from fabric.contrib import files from datetime import datetime FHHOME=os.environ["FHHOME"] # net.backup_config @task def backup_config(): date = datetime.now().strftime('%Y%m%d_%H%M') run("test -d /tmp/nwconf_%s || mkdir /tmp/nwconf_%s" % date) # RHEL/CentOS run("cp -f /etc/sysconfig/network-scripts/ifcfg* /tmp/nwconf_%s/" % date) # Debian/Ubuntu run("cp -f /etc/network/interfaces /tmp/nwconf_%s/" % date) run("cp -f /etc/sysconfig/static-routes /tmp/nwconf_%s/" % date) # net.set_bond:192.168.0.10,bond0,eth0,eth2 @task def set_bond(ip,bond,nic1,nic2): backup_config() date = datetime.now().strftime('%Y%m%d_%H%M') # put put("%s/etc/sysconfig/network-scripts/ifcfg-bond.tpl" % FHHOME, "/tmp/ifcfg-%s.%s" % (bond,date)) put("%s/etc/sysconfig/network-scripts/ifcfg-bond_nic.tpl" % FHHOME, "/tmp/ifcfg-%s.%s" % (nic1,date)) put("%s/etc/sysconfig/network-scripts/ifcfg-bond_nic.tpl" % FHHOME, "/tmp/ifcfg-%s.%s" % (nic2,date)) # bond sed("/tmp/ifcfg-%s.%s" % (bond,date), before="DEVICE=bondX", after="DEVICE=%s" % ip) sed("/tmp/ifcfg-%s.%s" % (bond,date), before="IPADDR=x.x.x.x", after="IPADDR=%s" % ip) # nic1 sed("/tmp/ifcfg-%s.%s" % (nic1,date), before="DEVICE=X", after="DEVICE=%s" % nic1) sed("/tmp/ifcfg-%s.%s" % (nic1,date), before="MASTER=X", after="MASTER=%s" % bond) # nic2 sed("/tmp/ifcfg-%s.%s" % (nic2,date), before="DEVICE=X", after="DEVICE=%s" % nic2) sed("/tmp/ifcfg-%s.%s" % (nic2,date), before="MASTER=X", after="MASTER=%s" % bond) run("diff /tmp/ifcfg-%s.%s /etc/sysconfig/network-scripts/ifcfg-%s" % (bond,date,bond)) run("diff /tmp/ifcfg-%s.%s /etc/sysconfig/network-scripts/ifcfg-%s" % (nic1,date,nic1)) run("diff /tmp/ifcfg-%s.%s /etc/sysconfig/network-scripts/ifcfg-%s" % (nic2,date,nic2)) sudo("mv /tmp/ifcfg-%s.%s /etc/sysconfig/network-scripts/ifcfg-%s" % (bond,date,bond)) sudo("mv /tmp/ifcfg-%s.%s /etc/sysconfig/network-scripts/ifcfg-%s" % (nic1,date.nic1)) sudo("mv /tmp/ifcfg-%s.%s /etc/sysconfig/network-scripts/ifcfg-%s" % (nic2,date,nic2))