FastHandle - IT Operations Examples

FastHandle is fast operation tools for infrastructure configurations and tests.

User Tools

Site Tools


preparation:fhhome:test.py.html



Differences

This shows you the differences between two versions of the page.

Link to this comparison view

Both sides previous revision Previous revision
Next revision
Previous revision
preparation:fhhome:test.py.html [2019/02/12 23:29]
kurihara
preparation:fhhome:test.py.html [2019/02/13 00:18] (current)
kurihara
Line 1: Line 1:
 [[:index.html#Preparation|Top#Preparation]] [[:index.html#Preparation|Top#Preparation]]
-====== $FHHOME/$FHLINUX/fabfile/__init__.py ====== +====== $FHHOME/linux/fabfile/test.py ======
- +
- +
- +
- +
-===== fabfile/__init__.py ===== +
- +
-<sxh bash toolbar:false gutter:false> +
-import sys, os, glob, select, importlib, re +
-from fabric.api import * +
-from fabric.contrib import files +
-from datetime import datetime +
- +
-#====================================================== +
-# SSH User +
-#====================================================== +
-hostname = os.uname()[1] +
- +
-if hostname == "fasthandle-1": +
-    env.user = 'fasthandle' +
-    env.password = 'fastpass' +
-elif hostname == "stg-fasthandle-1": +
-    env.user = 'fasthandle' +
-    env.password = 'fastpass' +
-elif hostname == "dev-fasthandle-1": +
-    env.user = 'fasthandle' +
-    env.key_filename = '$FHHOME/key/id_rsa.fasthandle.dev-fasthandle-1' +
-    #env.password = 'passphrase-for-key' +
- +
-#====================================================== +
-# Variable +
-#====================================================== +
-FHHOME=os.environ["FHHOME"+
- +
-env.warn_only = True +
-env.port = 22 +
-env.eagerly_disconnect = True +
- +
-#don't create *.pyc without __init__.pyc +
-sys.dont_write_bytecode = True +
- +
- +
- +
-#====================================================== +
-#====================================================== +
-# standard in for example echo x.x.x.x +
-if select.select([sys.stdin,],[],[],0.0)[0]: +
-    lines = sys.stdin.read().splitlines() +
-    env.hosts = filter(bool, lines) +
- +
- +
-#FastHandle Operation History to log file +
-TIME = datetime.now().strftime('%Y-%m-%d %H:%M:%S'+
-yymm = datetime.now().strftime('%Y%m'+
- +
-f=open("%s/log/fab.%s.log" % (FHHOME,yymm) ,"a"+
- +
-if env.hosts == []: +
-  f.write("%s stdin-null " % TIME) +
-  f.write(' '.join(str(p) for p in sys.argv)) +
-  f.write("\n"+
- +
-for p in env.hosts: +
-  f.write("%s %s " % (TIME,p)) +
-  f.write(' '.join(str(p) for p in sys.argv)) +
-  f.write("\n"+
-f.close() +
- +
- +
-# auto import *.py +
-# Ref. https://gist.github.com/fereria/3331554f4c480679716b#file-__init__-py +
-pathThisFile = os.path.dirname(os.path.abspath(__file__)) +
- +
-def loadModule(): +
- +
-    myself = sys.modules[__name__] +
- +
-    #print __name__ +
- +
-    mod_paths = glob.glob(os.path.join(pathThisFile, '*.py')) +
-    for py_file in mod_paths: +
-        mod_name = os.path.splitext(os.path.basename(py_file))[0] +
-        if re.search(".*__init__.*",mod_name) is None: +
-            mod = importlib.import_module(__name__+ "." + mod_name) +
-            #for m in mod.__dict__.keys(): +
-                #if not m in ['__builtins__', '__doc__', '__file__', '__name__', '__package__']: +
-                    #myself.__dict__[m] = mod.__dict__[m] +
-loadModule() +
-</sxh> +
- +
  
 \\ \\
 +{{INLINETOC}}
 \\ \\
-<WRAP box 90%> 
-[[:index.html#Preparation|Top#Preparation]] 
-<catlist ..: -noAddPageButton -noHead> 
-</WRAP> 
-\\ 
-[[:index.html#Preparation|Top#Preparation]]~~NOTOC~~ 
-[[:index.html#Preparation|Top#Preparation]] 
- 
-====== $FHLINUX/fabfile/test.py ====== 
  
  
Line 114: Line 16:
 $ fab -l |grep test.    # check options $ fab -l |grep test.    # check options
  
-$ echo xx.xx.xx.xx | fab test.hostname +$ echo xx.xx.xx.xx | fab  test.hostname 
-$ fhghost.sh "*" hosts/test | fab test.hostname+$ fhghost.sh "*" hosts/test | fab  test.hostname
 </sxh> </sxh>
  
Line 127: Line 29:
 from datetime import datetime from datetime import datetime
  
-FHHOME=os.environ["FHHOME"]+FHLINUX=os.environ["FHLINUX"]
  
 # test.local_hostname # test.local_hostname


preparation/fhhome/test.py.html.1549981748.txt.gz · Last modified: 2019/02/12 23:29 by kurihara