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/04 23:09]
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 
 + 
 +#====================================================== 
 +# 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 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 +#FastHandle Operation History to log file 
-import test +TIME = datetime.now().strftime('%Y-%m-%d %H:%M:%S'
-  +yymm = datetime.now().strftime('%Y%m'
-## OS Management + 
-import user +f=open("%s/log/fab.%s.log" % (FHHOME,yymm) ,"a"
-import pkg + 
-import net +if env.hosts == []: 
-import set +  f.write("%s stdin-null " % TIME) 
-import get +  f.write(' '.join(str(p) for p in sys.argv)) 
-import check +  f.write("\n") 
-import ope + 
-  +for p in env.hosts: 
-## Middleware Management +  f.write("%s %s " % (TIME,p)) 
-import httpd +  f.write(' '.join(str(p) for p in sys.argv)) 
-import nginx +  f.write("\n") 
-import postfix +f.close() 
-import squid + 
-  + 
-## Programing Languages +# auto import *.py 
-import php+# 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