0

例如让我们尝试让 Puppet安装 opengeo-suite

做类似的事情

wget -qO- http://apt.opengeo.org/gpg.key | apt-key add -
echo "deb http://apt.opengeo.org/suite/v3/ubuntu lucid main" >> /etc/apt/sources.list

我们可以用

exec {'getKey':
    command => "wget -qO- http://apt.opengeo.org/gpg.key | apt-key add -",
}

exec {'addRepo':
    command => "echo "deb http://apt.opengeo.org/suite/v3/ubuntu lucid main" >> /etc/apt/sources.list",
}

问题一:如果我们再次运行 puppet 脚本,wget 和 echo 不会运行两次吗?我们最终会在/etc/apt/sources.d. 运行package { "opengeo-suite": }两次不会尝试安装包两次,它只是确保它已安装。

问题#2:是否apt-get install opengeo-suite有几个用户输入提示。使用Package{"opengeo-suite":}时,Puppet 会以某种方式知道要使用的默认输入,还是会崩溃?

4

1 回答 1

1

首先,已经有一些特定于木偶的方法可以做到这一点:

https://serverfault.com/questions/111766/adding-a-yum-repo-to-puppet-before-doing-anything-else

Q1:是的,一切都会一次又一次地运行。通常,您必须保护您的执行官说“仅当此文件不存在时”,或“检查网站并在不同时更新”或“强制文件具有这些内容”。

此外,通常您可以创建 /etc/apt/sources.list.d/myrepo.conf,而不是附加到 /etc/apt/sources.list。

Q2:Puppet 可能会挂掉。您可以使用“apt-get install -y package”。但是最好使用为安装包而设计的 Puppet 资源来安装包。

于 2013-04-21T00:01:44.790 回答