В настоящее время создается впечатление, что Puppet не поддерживает утилиту amazon-linux-extras.
Возможно, следует создать новый тип / поставщика для поддержки amazon-linux-extras.Он может жить в Puppet Core, если вы подали запрос на добавление функции, который принят.Или вы можете написать свой собственный и выпустить его как модуль в Puppet Forge, если вы знаете, как писать собственные типы и поставщиков.
В то же время, легко написать определенный тип для решения этой проблемы.проблема с использованием 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
и т. Д.