在木偶中更新包裹?

时间:2013-12-26 17:39:39

标签: python linux ubuntu puppet

我正在尝试使用ubuntu服务器通过puppet更新已安装的软件包。 但是没有发生更新。

在puppet清单文件中,我们包含了收集程序包,如下所示,

if !defined(Package['package name'])
{
        package { 'package name': }
}
else
{
         package { 'package name':
                        ensure => latest,
                        require  => Exec['apt-get update'],
          }
}

可以解释这句话 - 如果!定义(包['包名'])或 如何升级软件包。假设我想在下次部署时安装php需要更新到最新版本...可以共享代码吗?

1 个答案:

答案 0 :(得分:0)

首先,您应该避免使用defined函数,因为它会创建与解析相关的行为,这是不建议的。

你可能没有做你认为的木偶代码。只有在已定义包的情况下,它才会进入else分支。在这种情况下,您应该看到一个错误,因为您正在重新定义它,这是被禁止的。

这意味着该软件包定义,并且您没有选项定义它。您可能希望查看可以配置为在每个软件包安装之前运行apt-get update的{​​{3}},并且通常会使事情更容易管理(ppa,自定义软件源等)。< / p>