LAMP一键安装(Python版)

去年有出一个python整的LAMP自动安装,不过比较傻,直接调用的yum 去安装了XXX…不过这次一样有用shell..我也想如何不调用shell 来弄一个LAMP自动安装部署啥啥的..不过尼玛智商有限,没搞定,暂且分享一下

先说说目前的缺陷

这个脚本总体来说是调用一个字典,组成这个字典是最花费时间的,实际代码到是没几行,本来想把Nginx的部署也加进去,什么memcachedphpmyadminapc这样的常用组件作为功能加进去,尼玛,时间不够,只能打打酱油,包括最后我也只能用一行行if来让脚本能run起来,好吧,我想时间充足了一定要改进下,如果你看到此代码,如果仔细看看啊,对…日志记录这块,因为我没有判断异常,函数执行失败,脚本不会写日志,有时间改一下,不过近期不太会改。注:废话也不多说,这个脚本没有多少实用性,仅作分享学习之意吧,注(这类脚本还是用shell简单粗暴),有时间我也会改进它,也欢迎各位大牛来一起XXX

软件版本:

###怎么是这么奇葩的组合#####等Nginx加入的时候再改好了,只所以这么用是公司内部有套系统PHP版本要求高..所以直接用这个测试了..跑的也还行###[root@ipython~]#lssource/*.bz2|sortsource/apr-1.5.1.tar.bz2source/apr-util-1.5.3.tar.bz2source/curl-7.36.0.tar.bz2source/freetype-2.5.2.tar.bz2source/httpd-2.4.9.tar.bz2source/jpegsrc.v9a.tar.bz2source/libmcrypt-2.5.8.tar.bz2source/libpng-1.6.8.tar.bz2source/libxml2-2.8.0.tar.bz2source/mysql-5.1.58.tar.bz2source/ncurses-5.9.tar.bz2source/pcre-8.35.tar.bz2source/php-5.5.12.tar.bz2source/xcache-3.1.0.tar.bz2source/zlib-1.2.8.tar.bz2

部分代码如下(具体看附件吧):

#!/usr/bin/python##coding:utf-8###——————————————————————————-#Name:LAMP-Auto-Install.py##Author:LiuSha##Created:9/07/2014#Copyright:(c)2014#——————————————————————————-importosimportsysimporttimeimportgetoptimportloggingimportcommandsfromDictimportGlobalfromplatformimportmachine#DefineLogOutput#logging.basicConfig(filename=os.path.join(os.getcwd(),’log.txt’),filemode=’w’,level=logging.DEBUG,format=’%(asctime)s%(filename)s%(levelname)s%(message)s’,datefmt=’%a,%d%b%Y%H:%M’,)#DefineMainFuntionClass#classfuncTion():defmain(self):”””defineglobalmainconfig.getglobalbuildparam”””try:longargs=[“prefix=”,”debug=”,”webservice=”,”jobdir=”,”add-vhost=”,”add-func=”,”howto=”]opts,args=getopt.getopt(sys.argv[1:],”h”,longargs)Global.Mainargs=dict(opts)exceptgetopt.GetoptError,err:printstr(err)sys.exit(2)defecho(self,output,color=’32’):”””definecalorOutputfuntion”””return’\033[1;{1};40m{0}\033[0m’.format(output,color)defexec_commands(self,cmd,cmdAlias,istName=”):”””definecommandsexecfunction”””status,output=commands.getstatusoutput(“{0}”.format(cmd))ifint(status)==0:logging.info(‘{0}executionsuccessful–>\n####—{1}—####’.format(cmdAlias,istName))else:logging.debug(‘{0}executionexception–>\n####—{1}—####\n\n{2}\n\n’.format(cmdAlias,istName,output))defUnpack(self,istName,jobdir,tarname,tardir):”””defineunpackfunction”””printself.echo(“%sStartingInstall”.ljust(80)%istName)iftarname[-3:]==’bz2′:os.chdir(“%s”%jobdir)os.system(“tarjxf%s”%tarname)os.chdir(“%s”%tardir)else:printself.echo(‘[Error1]:UnparkformatError’,’31’)defcommand_Check(self,command,istCommand):”””defineCommandcheckviaYum”””ifos.path.exists(“/usr/bin/%s”%command)==False:self.exec_commands(“yum-yinstall{0}{1}”.format(istCommand,Global.workMode[‘OutPut’]),”yuminstall{0}”.format(command),”command_Check[function]”)else:pass没有行囊,没有目的,我孤独的走在路上,

LAMP一键安装(Python版)

相关文章:

你感兴趣的文章:

标签云: