
나는 mysql.conf 파일을 정의하지만 그 내용은 정의하지 않는 이전 버전의 example42 mysql 모듈을 사용하고 있습니다. Mmy 목표는 mysql 모듈을 포함하고 노드에 콘텐츠 정의를 추가하는 것입니다.
class mysql {
...
file { "mysql.conf":
path => "${mysql::params::configfile}",
mode => "${mysql::params::configfile_mode}",
owner => "${mysql::params::configfile_owner}",
group => "${mysql::params::configfile_group}",
ensure => present,
require => Package["mysql"],
notify => Service["mysql"],
}
...
}
node xyz
{
include mysql
File["mysql.conf"] { content => template("mymodule/mysql.conf.erb")}
}
위의 코드는 "하위 클래스만 매개변수를 재정의할 수 있습니다"를 생성합니다.
기존 파일 정의에 콘텐츠 정의를 추가하는 올바른 방법은 무엇입니까?
답변1
사용자원 수집가, 설명여기. 리소스 수집기는 하위 클래스에 있지 않더라도 리소스 매개변수를 재정의할 수 있습니다. 또한 제목뿐만 아니라 태그나 기타 매개변수를 사용하여 리소스를 수집할 수 있어 더욱 다양합니다.
node xyz
{
include mysql
File <| title == "mysql.conf" |> {
content => template("mymodule/mysql.conf.erb"),
}
}
편집: 서브클래스 사용
또 다른 옵션은 하위 클래스를 선언하고 이를 노드 정의에 포함하는 것입니다.
class mysql_custom inherits mysql {
File["mysql.conf"] { content => template("mymodule/mysql.conf.erb")}
}
node xyz {
include mysql_custom
}