fabric/
fabfile.py
host.sh
host.list
test.py
check.py
user.py
middleware.py
os.py
tmp.py
$ echo |fab -l $ host.sh host.list -t XXXX $ host.sh host.list hostlist.XXXX |fab test.hostname $ host.sh host.list XXXX |fab -- COMMAND $ host.sh host.list XXXX |fab -- uptime $ host.sh host.list XXXX |fab -- uptime |grep load $ host.sh host.list XXXX |fab -- uptime |grep load > tmp.txt $ host.sh host.list XXXX |fab -- uptime |grep load tee tmp.txt $ host.sh host.list XXXX |fab -- uptime |grep load 2>&1 | tee tmp.txt $ echo xx.xx.xx.xx |fab -- uptime
import sys
from fabric.api import *
from fabric.contrib import files
env.warn_only = True
@task
def production():
env.user = 'USER01'
env.key_filename = '~/.ssh/id_rsa_production'
env.password = 'passphrase-for-key'
@task
def staging():
env.port = 22
env.user = 'USER01'
env.password = 'PASSWORD'
@task
def develop():
env.port = 22
env.user = 'USER02'
env.key_filename = '~/.ssh/id_rsa_develop'
env.password = 'passphrase-for-key'
lines = sys.stdin.read().splitlines()
env.hosts = filter(bool, lines)
print "target hosts: %r" % env.hosts
import test
import user
import middleware
import os
#!/bin/sh
LIST=$1
case "$2" in
-t | --test )
cat "${LIST}" |grep -Ev "^#|^$" |grep "$3"
;;
-a | --all )
cat "${LIST}" |grep -Ev "^#|^$" |awk '{print $2'}
;;
* )
cat "${LIST}" |grep -Ev "^#|^$" |grep "$2" |awk '{print $2'}
;;
esac
#test test-web1 test-web reboot1 test-web2 test-web reboot1 test-db1 test-db reboot2 test-db2 test-db reboot2 #Example example-web2 example-web reboot2 example-web2 example-web reboot4
DNS or /etc/hosts
#test 192.168.0.1 test-web1 192.168.0.2 test-web2 192.168.0.3 test-db1 192.168.0.4 test-db2 #Example 192.168.1.1 example-web2 192.168.1.2 example-web2
#!/bin/sh
LIST=$1
for i in `cat $1 |grep -Ev "^#|^$"`
do
echo $i
ping -i 0.5 -c 2 $i
done
exit
import sys
from fabric.api import *
from fabric.contrib import files
@task
def test1():
'''hostname , whoami test3'''
run('hostname')
run('whoami')
test3()
@task
def test2():
'''uptime'''
run('uptime')
@task
def test3():
'''test3'''
run('echo test3')
@task
def sudotest():
'''sudo test'''
sudo('cat /etc/passwd')
import sys
from fabric.api import *
from fabric.contrib import files
env.warn_only = True
@task
def check_ping():
run('ping -i 0.1 -c 3 xx.xx.xx.xx')
@task
def check_user():
'''check user'''
run('/usr/bin/id user01 > /dev/null 2>&1 || echo "ERR : there isn\'t user01. "')
run('/usr/bin/id user02 > /dev/null 2>&1 || echo "ERR : there isn\'t user02. "')
run('/usr/bin/id user03 > /dev/null 2>&1 || echo "ERR : there isn\'t user03. "')