我正试图在Amazon 2上安装一个Puppet模块来安装PHP7.3,它可以作为一个amazon临时包使用。
我可以使用CLI简单地安装它:
amazon-linux-extras install php7.3但我想将它定义为一个包,并确保它已经安装,如下所示:
package { "php7.3":
ensure => installed,
provider => 'amazon-linux-extras'
}不幸的是,我不能将包provider设置为amazon-linux-extras,因为这样的提供者不存在。
安装这个软件包的正确方法是什么?
发布于 2019-03-28 07:02:19
此时,Puppet似乎不支持amazon额外的实用程序。
可以说,应该创建一种新的类型/提供程序来支持amazon附加程序。它可以生活在木偶核心,如果你提出了一个功能请求被接受。或者,如果您知道如何编写自定义类型和提供程序,则可以编写自己的程序并将其作为一个模块发布到Puppet上。
同时,使用exec很容易编写一个定义的类型来解决这个问题。
define al::amazon_linux_extras(
Enum['present'] $ensure = present,
) {
$pkg = $name
exec { "amazon-linux-extras install -y $pkg":
unless => "amazon-linux-extras list | grep -q '${pkg}=.*enabled'",
path => '/usr/bin',
}
} 用法:
al::amazon_linux_extras { 'php7.3':
ensure => present,
}进一步解释:
al中。但这可能是个人资料等等,例如profile::amazon_linux_extras是另一种可能性。ensure => present,即它实际上什么也不做,如果您以后决定实现ensure => absent或ensure => latest等等。https://stackoverflow.com/questions/55342847
复制相似问题