我是安装人员的新手,直到现在才刚刚手动执行要安装的项目的逐行列表。显然,这不是一种可扩展的方法,特别是当需要定期安装新服务器时,而不是由同一个人安装。
目前我需要通过Yum安装大约30个软件包(从mySQL到大型70KB随机软件包) 手动安装一堆其他的(基本上只是“python setup.py install”命令的Python包) 创建一些目录,更改一些权限等。
创建自动执行此操作的最佳方法是什么。我不能总是假设客户端服务器有Yum,那么我是否需要下载所有二进制文件和依赖项并让脚本安装它们?
我知道这是一个有问题的问题。有谁知道这方面的任何好教程?
答案 0 :(得分:4)
你一次要问几个问题,所以我只想谈谈打包和安装Python库......
使用setup.py
,您可以将Python包转换为RPM,以便在任何Red Hat / CentOS上安装
使用yum的盒子。这就是我在工作中内部安装所有软件包的方法。假设安装了基础rpmbuild
实用程序,它就是这么简单:
python setup.py bdist_rpm
这将在dist
文件夹中构建您的包的RPM(例如dist/mypackage-1.01-1-noarch.rpm
)。然后,您只需将此RPM添加到内部yum镜像(如果您有内部镜像),然后就可以轻松地将软件包分发到内部主机。
答案 1 :(得分:2)
您可以创建一个RPM包,该包依赖于您需要的任何包 http://fedoraproject.org/wiki/PackageMaintainers/CreatingPackageHowTo(对于Fedora,但RHEL / CentOS也是如此)
你基本上会在.spec文件中有一行代码如下:
Requires: mysql-server, httpd, php
所以你可以把它添加到你的yum镜像中(假设你有一个),那么正在进行安装的任何人都可以执行yum install server-setup
并且它会自动拉入所有必需的包。正如jathanism所说,你可以从setup.py
脚本创建RPM并将它们放在镜像上,然后让你的元数据包依赖于那些RPM。
如果有可能使用Debian系统,你也可以使用Debian软件包。