У нас есть кластер узлов, конфигурация которых поддерживается Puppet. Puppet гарантирует, что sssd установлен через:
service { 'sssd':
ensure => running,
enable => true,
require => Package[$libsss_sudo_package],
}
Однако по умолчанию используется sssd.conf ; Я не могу найти изменяемый шаблон. Конкретный пример сгенерированного sssd.conf из определенного узла в кластере выглядит следующим образом:
[domain/example.com]
cache_credentials = True
krb5_store_password_if_offline = True
ipa_domain = example.com
id_provider = ipa
auth_provider = ipa
access_provider = ipa
ipa_hostname = host-1.muskrat.local
chpass_provider = ipa
ipa_server = _srv_, ipa-server.example.com
ldap_tls_cacert = /etc/ipa/ca.crt
[sssd]
services = nss, sudo, pam, ssh
domains = example.com
[nss]
homedir_substring = /home
[pam]
[sudo]
[autofs]
[ssh]
[pac]
[ifp]
Каждый sssd.conf отличается, потому что параметр ipa_hostname варьируется на каждом хосте. Поэтому я не могу просто определить модуль "sssd" и использовать фиксированный sssd.conf.
В Puppet, как я могу гарантировать, что определенная строка будет добавлена в определенный раздел существующего sssd.conf?
В частности, я хочу отключить хеширование /var/lib/sss/pubconf/known_hosts , добавив эту строку в раздел [ssh] файла sssd.conf:
[ssh]
ssh_hash_known_hosts = false
Как я могу сделать это в Puppet?