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 [2018/02/15 01:35]
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]]
-====== $FHHOME/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 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
Line 17: Line 38:
 env.eagerly_disconnect = True 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 # 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]:
Line 23: Line 50:
     env.hosts = filter(bool, lines)     env.hosts = filter(bool, lines)
  
-#FastHandle Operation log + 
-TIME = datetime.now().strftime('%Y/%m/%d %H:%M:%S')+#FastHandle Operation History to log file 
 +TIME = datetime.now().strftime('%Y-%m-%d %H:%M:%S')
 yymm = datetime.now().strftime('%Y%m') yymm = datetime.now().strftime('%Y%m')
  
-f=open("%s/log/history.%s.log" % (FHHOME,yymm) ,"a"+f=open("%s/log/fab.%s.log" % (FHHOME,yymm) ,"a"
-f.write("%s " % TIME) + 
-f.write(' '.join(str(p) for p in sys.argv)) +if env.hosts == []: 
-f.write("\n")+  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() f.close()
  
  
-#------------------------------------------- +auto import *.py 
-import  +Ref. https://gist.github.com/fereria/3331554f4c480679716b#file-__init__-py 
-#------------------------------------------- +pathThisFile = os.path.dirname(os.path.abspath(__file__))
-import auth +
-import test+
  
-## OS Management +def loadModule():
-import user +
-import pkg +
-import net +
-import set +
-import get +
-import check +
-import ope+
  
-## Middleware Management +    myself = sys.modules[__name__]
-import httpd +
-import nginx +
-import postfix +
-import squid+
  
-## Programing Languages +    #print __name__
-import php+
  
 +    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