我正在尝试使用ubuntu服务器通过puppet更新已经安装的包。 但不更新是不会发生的。你知道吗
在puppet清单文件中,我们包含了如下所示的收集器包
if !defined(Package['package name'])
{
package { 'package name': }
}
else
{
package { 'package name':
ensure => latest,
require => Exec['apt-get update'],
}
}
你能解释一下这个说法吗-如果!已定义(包['Package name'])或 如何升级包。假设我想安装php,而下一次部署需要更新到最新版本…你能共享代码吗??你知道吗
首先,您应该避免使用
defined
函数,因为它将创建依赖于解析的行为,这是不建议的。你知道吗你可能没有做你认为它做的事情。只有在包已经定义的情况下,它才会进入
else
分支。在这种情况下,您应该看到一个错误,因为您正在重新定义它,这是禁止的。你知道吗这意味着包是没有定义的,并且您定义它时没有任何选项。您可能想看看puppetlabs apt module,它可以配置为在每个包安装之前运行
apt-get update
,通常会使事情更易于管理(ppa、自定义软件源等)。你知道吗相关问题 更多 >
编程相关推荐