Sim, isso parece uma abordagem razoável. Eu sugeriria uma ligeira variação, adicione um novo parâmetro que determine se o recurso package
que usa $php_package_name
deve ser aplicado:
case $::osfamily {
'RedHat': {
$package_server = 'mariadb-server'
$package_client = 'mariadb'
$php_package_name = 'php-mysql'
$php_package_install = true
}
'otherOS': {
$package_server = 'mariadb-server'
$package_client = 'mariadb'
$php_package_install = false
}
...
Então, onde o recurso é:
if $thismodule::params::php_package_install {
package { $thismodule::params::php_package_name:
ensure => present,
...
}
}
Tenha em mente que o método de fazer todo o material específico do sistema operacional em params.pp pode não acabar sendo mais limpo se os recursos necessários para a instalação no novo sistema operacional forem muito diferentes; Isso pode transformar seu arquivo de manifesto no ninho de condições e parâmetros de um ilegível rato. Nesse caso, não tenha medo de dividir o sistema operacional em uma classe separada (como install_el.pp
para a família RedHat e install_otheros.pp
para a nova família, com a correta sendo incluída de init.pp
ou params.pp
).