去年有出一个python整的LAMP自动安装,不过比较傻,直接调用的yum 去安装了XXX...不过这次一样有用shell..我也想如何不调用shell 来弄一个LAMP自动安装部署啥啥的..不过尼玛智商有限,没搞定,暂且分享一下
先说说目前的缺陷
这个脚本总体来说是调用一个字典,组成这个字典是最花费时间的,实际代码到是没几行,本来想把Nginx 的部署也加进去,什么memcached phpmyadmin apc 这样的常用组件作为功能加进去,尼玛,时间不够,只能打打酱油,包括最后我也只能用一行行if来让脚本能run起来,好吧,我想时间充足了一定要改进下,如果你看到此代码,如果仔细看看啊,对...日志记录这块,因为我没有判断异常,函数执行失败,脚本不会写日志,有时间改一下,不过近期不太会改。 注: 废话也不多说,这个脚本没有多少实用性,仅作分享学习之意吧,注(这类脚本还是用shell简单粗暴),有时间我也会改进它,也欢迎各位大牛来一起XXX
软件版本:
代码语言:javascript复制###怎么是这么奇葩的组合###
##等Nginx 加入的时候再改好了,只所以这么用是公司内部有套系统PHP版本要求高..所以直接用这个测试了..跑的也还行###
[root@ipython ~]# ls source/*.bz2 | sort
source/apr-1.5.1.tar.bz2
source/apr-util-1.5.3.tar.bz2
source/curl-7.36.0.tar.bz2
source/freetype-2.5.2.tar.bz2
source/httpd-2.4.9.tar.bz2
source/jpegsrc.v9a.tar.bz2
source/libmcrypt-2.5.8.tar.bz2
source/libpng-1.6.8.tar.bz2
source/libxml2-2.8.0.tar.bz2
source/mysql-5.1.58.tar.bz2
source/ncurses-5.9.tar.bz2
source/pcre-8.35.tar.bz2
source/php-5.5.12.tar.bz2
source/xcache-3.1.0.tar.bz2
source/zlib-1.2.8.tar.bz2
部分代码如下(具体看附件吧):
代码语言:javascript复制#!/usr/bin/python
##coding:utf-8##
#-------------------------------------------------------------------------------
# Name: LAMP-Auto-Install.py
#
# Author: LiuSha
#
# Created: 9/07/2014
# Copyright: (c) http://www.ipython.me/ 2014
#-------------------------------------------------------------------------------
import os
import sys
import time
import getopt
import logging
import commands
from Dict import Global
from platform import machine
#Define Log Output#
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',)
#Define Main Funtion Class#
class funcTion():
def main(self):
"""define global main config. get global build param"""
try:
longargs = ["prefix=","debug=","webservice=","jobdir=","add-vhost=","add-func=","howto="]
opts,args = getopt.getopt(sys.argv[1:],"h",longargs)
Global.Mainargs = dict(opts)
except getopt.GetoptError,err:
print str(err)
sys.exit(2)
def echo(self,output,color = '32'):
"""define calor Output funtion"""
return '