如何使用 puppet 和 .deb 文件更新包

del*_*247 27 package-management debian update puppet dpkg

我试图找出使用来自本地源 deb 文件的 puppet 更新/升级 deb 包的正确方法。我当前的配置看起来像这样......

class adobe-air-2-0-4 {

  file { "/opt/air-debs":
    ensure => directory
  }

  file { "/opt/air-debs/adobeair-2.0.4.deb":
    owner   => root,
    group   => root,
    mode    => 644,
    ensure  => present,
    source  => "puppet://puppet/adobe-air-2-0-4/adobeair-2.0.4.deb"
  }

  package { "adobeair":
    provider => dpkg,
    ensure => installed,
    source => "/opt/air-debs/adobeair-2.0.4.deb"
  }

}
Run Code Online (Sandbox Code Playgroud)

我首先将 deb 文件复制到客户端计算机,然后使用“package”,提供程序设置为“dpkg”。这有效,我安装了正确的版本。

我的问题是将来更新此软件包的正确方法是什么。我可以简单地更改源文件,puppet 会知道它是一个不同的版本并更新这个包吗?puppet 如何确定它安装的软件包版本与源 deb 文件的版本?

我对 puppet 还很陌生,所以如果您对我现有的配置有任何改进建议,我们将不胜感激。

del*_*247 37

我还在 puppet 用户组上发布了这个问题,这是我得到的回复。

如果您添加确保最新,它将根据当前安装的软件包检查源文件,如果是最新的,则安装新的。我仍然不确定您将如何回滚到旧版本,但这似乎暂时解决了我的问题。

package { "puppet-dashboard":
 provider => dpkg,
 ensure   => latest,
 source   => "/tmp/puppet-dashboard_1.0.4rc2-1_all.deb"
}
Run Code Online (Sandbox Code Playgroud)

这是 puppet 用户组帖子的链接... http://groups.google.com/group/puppet-users/browse_thread/thread/53f5e7119012fb3e/59e8596701fcaf3f