Puppet(または類似の)は、基本的だが重要な質量変更を処理するための適切なテクノロジーですか?
はい、この方法で使用できます。これを使用して、外部クライアントシステムをサポートします。
どのサーバーにも表示してはいけない設定を表示できないようにしたい
パペットを使用している場合は、自動署名を有効にしないでください。自動署名により、ホストは証明書を自動的に要求できます。設定と権限は、ほぼ確実に証明書のCNに直接関連付けられます。ランダムコンピュータがオンラインになり、それらが実際にすべての秘密の高セキュリティ機能を備えたシステムであると主張できるようにしたくない場合。
本当に偏執的である場合は、puppetsファイルサーバー設定を調整して、一部のシステムのみがアクセスできる共有を作成できます。ファイルサーバーへのアクセスは証明書に基づいています。
Puppetにしてはいけない変更を加えたり、サーバーで手動で行った変更を元に戻したりしたくありません。
ローカルでの変更を許可するには、いくつかの異なるアプローチがあります。
私が頻繁に使用する1つの方法は次のとおりです。基本的に、リストをに渡すsource
と、人形はリスト内の各アイテムを試します。そこで、リストの最初の項目を追加して、ローカルファイルを指すようにします。
file { '/etc/ssh/sshd_config':
ensure => present,
source => ["/etc/ssh/sshd_config_local",
"puppet:///modules/ssh/$ssh_config_file"],
...
}
別のオプションは、シンボリックリンクを利用することです。誰かがパペットバージョンを使用したい場合、ファイルのパペットバージョンにシンボリックリンクします。ローカルで設定を維持したい場合は、シンボリックリンクを作成しません。
file { '/etc/ssh/sshd_config_puppet':
ensure => present,
source => "puppet:///modules/ssh/$ssh_config_file",
...
}
その他の可能性は、ファイル全体を変更するのではなく、augeasを使用して行レベルの変更を行うことです。何を変更するかについては非常に保守的にしてください。