设为首页 收藏本站
查看: 1073|回复: 0

[经验分享] Python实现一键安装部署LNMP环境

[复制链接]

尚未签到

发表于 2018-8-5 13:56:46 | 显示全部楼层 |阅读模式
#!/bin/env python  

  
import os
  
import sys
  
def enter(i):    #定义一个函数,传递一个参数,用作计数器
  
info='''    #定义开头显示的提示选择信息
  
----- Select Install option -----
  

  
1.Install Nginx-1.10.1
  
2.Install Mysql-5.5.6.34
  
3.Install PHP-5.3.3
  
4.Install Required Components    #安装必备组件
  
5.Exit Program
  

  
---------------------------------
  
'''
  
print info
  
n=raw_input('Input your select: ')    #接收一个输入数值
  

  
if n.isdigit():    #判断是否是数字
  
  n=int(n)        #如果是就转换成整型,raw_input接收类型默认是字符串型
  
  if n<=5 and="" n="">=1:    #数字必须在可选范围之内
  
    if not os.path.isdir('/data'):    #判断是否存在/data目录
  
                 os.mkdir('/data')        #不存在就创建
  
    else:
  
            if n==1:        #如果选的是1
  
             os.system('yum -y install nginx')    #运行shell命令安装nginx
  
             enter(i)        #装完返回继续选择
  
            if n==2:        #编译安装mysql,每个命令都在屏幕上显示
  
             print "useradd mysql"
  
             os.system('useradd mysql')
  
             print "tar zxf /root/soft/mysql-5.6.34-linux-glibc2.5-x86_64.tar.gz"
  
             os.system('tar zxf /root/soft/mysql-5.6.34-linux-glibc2.5-x86_64.tar.gz')
  
             print "mv /root/soft/mysql-5.6.34-linux-glibc2.5-x86_64 /data/mysql"
  
             os.system('mv /root/soft/mysql-5.6.34-linux-glibc2.5-x86_64 /data/mysql')
  
             print "chown -R mysql.mysql /data/mysql/"
  
             os.system('chown -R mysql.mysql /data/mysql/')
  
             print "/bin/cp /root/soft/my.cnf /etc"
  
             os.system('mv /root/soft/my.cnf /etc')
  
             print "cd /data/mysql/&&scripts/mysql_install_db --user=mysql --basedir=/data/mysql --datadir=/data/mysql/data/"
  
             os.system('cd /data/mysql/&&scripts/mysql_install_db --user=mysql --basedir=/data/mysql --datadir=/data/mysql/data/')
  
             print "sed -i 's/PATH=$PATH:$HOME\/bin/PATH=$PATH:$HOME\/bin:\/data\/mysql\/bin:\/data\/mysql\/lib/'  /root/.bash_profile"
  
             os.system('sed -i "s/PATH=\$PATH:\$HOME\/bin/PATH=\$PATH:\$HOME\/bin:\/data\/mysql\/bin:\/data\/mysql\/lib/"  /root/.bash_profile')
  
             print "source /root/.bash_profile"
  
             os.system('source /root/.bash_profile')
  
             print "cd /data/mysql/&&cp support-files/mysql.server /etc/init.d/mysql"
  
             os.system('cd /data/mysql/&&cp support-files/mysql.server /etc/init.d/mysql')
  
             print "service mysql start"
  
             os.system('service mysql start')
  
             print "chkconfig --add mysql"
  
             os.system('chkconfig --add mysql')
  
             enter(i)
  
            if n==3:    #如果是编译安装PHP,要先选4进行必要组件安装
  
             print "please install Required Components befor install PHP!"
  
             os.system('yum -y install php-tidy php-common php-devel php-fpm php-mysql php-mysql php-odbc php-pear php-xml php-xmlrpc php lighttpd-fastcgi php-cli php-gd php-imap php-ldap')
  
             enter(i)
  
            if n==4:
  
             os.system('yum -y install epel-release gcc gcc-c++ libxml2 libxml2-devel bzip2 bzip2-devel libmcrypt libmcrypt-devel openssl openssl-devel libcurl-devel libjpeg-devel libpng-devel freetype-devel readline readline-devel libxslt-devel perl perl-devel psmisc.x86_64 recode recode-devel libtidy libtidy-devel')
  
             enter(i)
  
            if n==5:    #退出程序
  
             print "Program will be quite!"
  
             sys.exit()
  
     else:        #对应输入错数字,如果输入错误次数超过3次就退出程序
  
         i-=1
  
         if i==0:
  
             print "Input error times too many! Program will be quite!"
  
             sys.exit()
  
         print "input error! please input again!"
  
         enter(i)
  
else:           #对应输入如果不是数字
  
   i-=1
  
   if i==0:
  
     print "Input error times too many! Program will be quite!"
  
     sys.exit()
  
   print "input error! please input again!"
  
   enter(i)
  
i=3         #定义计数器
  
enter(i)      #函数调用,传入参数

运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其承担任何法律责任,如涉及侵犯版权等问题,请您及时通知我们,我们将立即处理,联系人Email:kefu@iyunv.com,QQ:1061981298 本贴地址:https://www.yunweiku.com/thread-547072-1-1.html 上篇帖子: Python的C扩展-应用与陷阱 下篇帖子: Python 的 Socket 编程教程
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

扫码加入运维网微信交流群X

扫码加入运维网微信交流群

扫描二维码加入运维网微信交流群,最新一手资源尽在官方微信交流群!快快加入我们吧...

扫描微信二维码查看详情

客服E-mail:kefu@iyunv.com 客服QQ:1061981298


QQ群⑦:运维网交流群⑦ QQ群⑧:运维网交流群⑧ k8s群:运维网kubernetes交流群


提醒:禁止发布任何违反国家法律、法规的言论与图片等内容;本站内容均来自个人观点与网络等信息,非本站认同之观点.


本站大部分资源是网友从网上搜集分享而来,其版权均归原作者及其网站所有,我们尊重他人的合法权益,如有内容侵犯您的合法权益,请及时与我们联系进行核实删除!



合作伙伴: 青云cloud

快速回复 返回顶部 返回列表