FastHandle - IT Operations Examples

FastHandle is fast operation tools for infrastructure configurations and tests.

User Tools

Site Tools


preparation:fhhome:init.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
Last revision Both sides next revision
preparation:fhhome:init.py.html [2017/12/02 01:15]
kurihara
preparation:fhhome:init.py.html [2019/02/12 23:28]
kurihara
Line 1: Line 1:
 [[:index.html#Preparation|Top#Preparation]] [[:index.html#Preparation|Top#Preparation]]
-====== fabfile/__init__.py ======+====== $FHHOME/$FHLINUX/fabfile/__init__.py ======
  
  
Line 8: Line 8:
  
 <sxh bash toolbar:false gutter:false> <sxh bash toolbar:false gutter:false>
-import sys, select+import sys, os, glob, select, importlib, re
 from fabric.api import * from fabric.api import *
 from fabric.contrib import files 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.warn_only = True
 env.port = 22 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]: if select.select([sys.stdin,],[],[],0.0)[0]:
     lines = sys.stdin.read().splitlines()     lines = sys.stdin.read().splitlines()
     env.hosts = filter(bool, lines)     env.hosts = filter(bool, lines)
  
-import auth + 
-import test +#FastHandle Operation History to log file 
-import user +TIME = datetime.now().strftime('%Y-%m-%d %H:%M:%S') 
-import centos7 +yymm = datetime.now().strftime('%Y%m') 
-import checklinux+ 
 +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> </sxh>
  


preparation/fhhome/init.py.html.txt · Last modified: 2019/02/13 00:18 by kurihara