例如,让我们尝试让Puppet install the 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",
}
问题#1:如果我们再次运行puppet脚本,那么wget和echo不会运行两次吗?我们最终会在/etc/apt/sources.d
中找到重复的回购。运行package { "opengeo-suite": }
两次不会尝试两次安装软件包,它只是确保安装它。
问题2:执行apt-get install opengeo-suite
有几个用户输入的宣传。当使用Package{"opengeo-suite":}
时,Puppet会以某种方式知道要使用的默认输入,还是会崩溃?
答案 0 :(得分: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资源来安装软件包。