重构ensure_packages以切换已安装软件包的版本

时间:2020-10-09 17:42:51

标签: puppet

我已经在Debian linux上成功地通过puppet安装了多个PHP模块,如下所示:

113.00 would show as 113

113.11 would show as 113.11

113.10 would show as 113.10

现在我想为从PHP 7.3到7.4的更新做准备。这基本上可以工作,但是7.3软件包仍保持安装状态。我想修改代码以删除旧软件包。我正在寻找一种可重复使用的模块软件包列表进行卸载的方法。

我正在考虑这样的签名

  $php_version = '7.3'

  ensure_packages([
    "php$php_version-xml",
    "php$php_version-zip",
    "php$php_version-curl",
    "php$php_version-mbstring",
    "libapache2-mod-php$php_version",
  ],
    {
      'ensure' => 'present',
    }
  )

有没有办法解决这个问题?

thx

1 个答案:

答案 0 :(得分:0)

我能够通过使用puppet的迭代函数来解决这个问题。

从这两个参数中,我构建了一个哈希,其中包含要处理的版本键以及用于安装或删除给定版本的值。 现在,我可以遍历每个哈希,重用结构:

List<Entry>

hth