Надеясь, что кто-то с большим опытом работы с марионетками, чем я, может дать мне несколько советов по поводу конфигурации, которую я пытаюсь.
Я использую saz / s sh в качестве модуля для this.
Моя цель
- Используйте этот модуль для создания конфигурации s sh по умолчанию, которая будет отправлена на все серверы redhat 7/8.
- Разрешить переопределение отдельных опций s sh, для каждого отдельного сервера, через hiera
для достижения # 1 я создал свой собственный модуль, который объявляет класс s sh :: server и определяет мои варианты. Я считаю, что это называется ресурсным объявлением класса. (Сокращенный код для удобства чтения)
#
class profiles::sshd::config {
class { 'ssh::server':
validate_sshd_file => true,
storeconfigs_enabled => false,
options => {
'Port' => [22],
'AddressFamily' => 'any',
'ListenAddress' => '0.0.0.0',
'Protocol' => '2',
'HostKey' => ['/etc/ssh/ssh_host_rsa_key', '/etc/ssh/ssh_host_ecdsa_key','/etc/ssh/ssh_host_ed25519_key'],
'RekeyLimit' => 'default none',
'SyslogFacility' => 'AUTHPRIV',
'LogLevel' => 'INFO',
}
}
}
Затем я включаю этот «модуль» в свою базу. Это работает хорошо, пока я не хочу переопределить любую из этих опций для отдельного сервера. Я не могу заставить hiera работать.
объявление
ssh::server::options:
Port: [2222]
в файле fqdn yaml сервера, например, ничего не делает. Если я включаю модуль s sh :: server напрямую, а не через свой собственный класс, переопределения hiera будут работать.
Я перепробовал все виды синтаксиса для переопределений hiera, но никогда не получал вывод Кукольный забег, если я не использую класс напрямую. Например, я пытался:
ssh::server:options:
profiles::sshd::config:
profiles::sshd::config::ssh::server:
profiles::sshd::config::options:
profiles::sshd::config::ssh::server::options:
Есть ли лучший способ, которым я могу делать то, что я хочу, или кто-нибудь может предложить помощь в том, как я могу объявить переопределения hiera таким способом?
Любая помощь будет невероятно полезной