我怎么能用Python自动化安装程序?

时间:2013-12-28 14:10:44

标签: python installer stdout stdin silent-installer

所以我们有我们的软件产品,我目前正致力于自动化安装。它将采取的方式是:

  • 我有一个config.cfg文件,其中包含有关ApacheTomcatMySQL's用户和密码以及端口号的所有信息。
  • 我使用ConfigParser提供该信息。

安装程序脚本是迭代的:您像sudo foo.run一样执行它并提示命令行,以便进行安装的人可以输入上面提到的输入。例如:

Apache user: **[foo]** 
Apache password: **[bar]**

在输入该信息后,安装程序实际安装了该产品。但是,我希望自动完成整个过程,包括使用Python输入这些信息。

到目前为止,我带来了这个:

  1 from subprocess import Popen, call, PIPE, STDOUT
  2 import errno
  3 import os
  4 fname = "/home/ec2-user/foo.run"
  5 os.chmod(fname, 0777) # make it executable
  6 cmd = "sudo %s" % fname
  7 print cmd
  9 p = Popen(cmd, stdin=PIPE, stdout=PIPE,
 10           stderr=STDOUT, shell=True)
 11 # now is actually the missing part ... reading from the stdout and writing
 12 # to stdin ... how could I accomplish that? Is there a easier way of doing it?
 13 p.wait()

所以我在设计stdin / stdout部分如何工作方面遇到了一些麻烦...... 我需要一个while循环来读取它,直到stdout为空,然后我将注入ConfigParser中包含的数据。 有人可以举例说明如何做到这一点?有没有其他更简单的方法呢?我对任何建议持开放态度......对我来说,第一步可能是使用Python's p.stdin.write()从python进行手动安装,以便向安装程序提供信息。

0 个答案:

没有答案