如何在虚拟机中自动安装应用程序?

How to automate application installation in virtual machine?

使用 Open Nebula 我已经用 Open Nebula Marketplace 提供的 Centos 6.5 映像实例化了几个虚拟机 (qemu-kvm)。现在我想在 VM 上安装更多应用程序和 运行 一些后记。虽然我可以通过在每个虚拟机上执行 ssh 来做到这一点,但我想自动化这个过程。

我们使用 Salt (http://www.saltstack.com) 就是为了这个目的。

通过一些或多或少复杂的配置文件,可以让机器自动安装软件,配置文件,用户,ssh-keys,...

例如,您可以设置一个规则,任何 FQDN 以 "web" 开头的虚拟机都必须安装 httpd。

备选方案是 Puppet(https://puppetlabs.com), Chef (https://www.chef.io/chef/), Ansible (http://www.ansible.com/home)和可能的其他一些。

对于 Salt 的安装,我们在 VM 中使用额外的上下文脚本(注意,您必须添加 'init.sh' 和其他上下文脚本),它负责安装奴才。该脚本看起来有点像这样(将 ##salt-master-FQDN## 替换为 salt-master IP 或 fqdn):

#!/bin/sh

if [ ! -f /etc/salt/minion ]; then
    yum clean all
    yum -y update
    yum -y install salt-minion
    sed -i '/master:/c\master: ##salt-master-FQDN##' /etc/salt/minion
    systemctl enable salt-minion.service
    systemctl start salt-minion.service
fi