一 功能需求

1 下载Python的源码

2 安装Python需要的依赖库

3 编译安装Python

二 伪代码版本

python安装脚本 python自动化安装脚本_python

三 主要函数讲解

1 os.system

功能:执行命令

返回:命令的返回值

补充:命令的输出会输出到标准输出

2 raw_input()

功能:暂停程序运行,等待用户输入

返回:用户输入的内容

四 实战

1 代码

#coding=utf-8
import os
import sys
if os.getuid() == 0:
    pass
else:
    print '当前用户不是root用户,请以root用户执行脚本'
    sys.exit(1)

version = raw_input('请输入你想安装的python版本(2.7/3.6)')
if version == '2.7':
    url = 'https://www.python.org/ftp/python/2.7.12/Python-2.7.12.tgz'
elif version == '3.6':
    url = 'https://www.python.org/ftp/python/3.6.8/Python-3.6.8.tgz'
else:
    print '您输入的版本号有误,请输入输入2.7或3.6'
    sys.exit(1)

cmd = 'wget '+url
res = os.system(cmd)
if res != 0:
    print '下载源码包失败,请检查网络'
    sys.exit(1)

if version == '2.7':
    package_name = 'Python-2.7.12'

else:
    package_name = 'Python-3.6.8'
cmd = 'tar xf ' + package_name+ '.tgz'
res = os.system(cmd)
if res != 0:
    os.system('rm '+package_name+'.tgz')
    print '解压源码包失败,请重新运行这个脚本下载源码'
    sys.exit(1)

cmd = 'cd '+ package_name+ ' && ./configure --prefix=/usr/local/python && make && make install'
res = os.system(cmd)
if res !=0:
    print '编译python源码失败,请检查是否缺少依赖库'
    sys.exit(1)

2 运行

[root@centos python]# python install_python.py
请输入你想安装的python版本(2.7/3.6)3.5
您输入的版本号有误,请输入输入2.7或3.6

五 自动化运维缺点

1 数据无法共享

2 无法主动发现问题

3 部署成本高

4 标准不统一

六 云运维简介

1 资源数据共享

2 主动发现问题

3 统一标准

4 成本低