使用Puppet管理shell命令

时间:2013-04-20 22:00:29

标签: linux ubuntu deployment puppet vagrant

例如,让我们尝试让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会以某种方式知道要使用的默认输入,还是会崩溃?

1 个答案:

答案 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资源来安装软件包。