Puppet-file-server
Puppet-ファイルサーバー
Puppetはクライアントとサーバーの概念に従い、セットアップ内の1台のマシンがPuppetサーバーソフトウェアが実行されているサーバーマシンとして機能し、残りがPuppetエージェントソフトウェアが実行されているクライアントとして機能します。 ファイルサーバーのこの機能は、複数のマシンにファイルをコピーするのに役立ちます。 Puppetのファイルサービス機能のこの機能は、中央のPuppetデーモンの一部として提供されます。 Puppetmasterdとクライアント関数は、ファイルオブジェクトとしてファイル属性を取得する際に重要な役割を果たします。
class { 'java':
package => 'jdk-8u25-linux-x64',
java_alternative => 'jdk1.8.0_25',
java_alternative_path => '/usr/java/jdk1.8.0_25/jre/bin/java'
}
上記のコードスニペットのように、Puppetのファイルサービス機能は、ファイルサービスモジュールをサポートすることにより、ローカルファイルシステムトポロジを抽象化します。 ファイルサービングモジュールは次の方法で指定します。
“puppet://server/modules/module_name/sudoers”
ファイルフォーマット
Puppetディレクトリ構造では、デフォルトでファイルサーバー設定は /etc/puppet/fileserver.config ディレクトリにあります。ユーザーがこのデフォルト設定ファイルパスを変更したい場合は、新しい設定フラグを puppetmasterdに使用して実行できます。 。 構成ファイルはINIファイルに似ていますが、まったく同じではありません。
[module]
path/path/to/files
allow *.domain.com
deny *.wireless.domain.com
上記のコードスニペットに示すように、3つのオプションはすべて構成ファイルで表されます。 モジュール名は大括弧で囲みます。 パスは唯一の必須オプションです。 デフォルトのセキュリティオプションはすべてのアクセスを拒否するため、許可行が指定されていない場合、設定されるモジュールは誰でも利用できます。
パスには、ドメイン名、ホスト名、完全修飾ホスト名で動的に置き換えられる%d、%h、%Hのいずれかまたはすべてを含めることができます。 すべてがクライアントのSSL証明書から取得されます(ホスト名と証明書名に不一致がある場合は注意してください)。 これは、各クライアントのファイルが完全に個別に保持されるモジュールを作成するのに役立ちます。 例、プライベートホストキーの場合。
[private]
path/data/private/%h
allow *
上記のコードスニペットでは、コードはクライアント client1.vipin.com からファイル/private/file.txtを検索しようとしています。/data/private/client1/file.txtで検索しますが、client2.vipin.comに対する同じ要求は、ファイルサーバー上のファイル/data/private/client2/file.txtを取得しようとします。
セキュリティ
Puppetは、Puppetファイルサーバー上のファイルを保護する2つの基本概念をサポートしています。 これは、特定のファイルへのアクセスを許可し、不要なファイルへのアクセスを拒否することにより実現されます。 デフォルトでは、Puppetはどのファイルへのアクセスも許可しません。 明示的に定義する必要があります。 アクセスを許可または拒否するためにファイルで使用できる形式は、IPアドレス、名前、またはグローバル許可を使用することです。
クライアントが、たとえばリバースプロキシとMongrelを使用してPuppetファイルサーバーに直接接続されていない場合、ファイルサーバーはすべての接続をPuppetクライアントではなくプロキシサーバーからのものとして認識します。 上記の場合、ホスト名に基づいてホスト名を制限することがベストプラクティスです。
ファイル構造を定義する際に注意すべき重要な点は、すべての拒否ステートメントが許可ステートメントの前に解析されることです。 したがって、いずれかの拒否ステートメントがホストと一致する場合、そのホストは拒否され、許可ファイルが今後のファイルに書き込まれない場合、ホストは拒否されます。 この機能は、特定のサイトの優先順位を設定するのに役立ちます。
ホスト名
任意のファイルサーバー構成で、次の例に示すように、完全なホスト名を使用するか、*ワイルドカードを使用してドメイン名全体を指定することにより、2つの方法でファイルホスト名を指定できます。
[export]
path/usr
allow brcleprod001.brcl.com
allow *.brcl.com
deny brcleprod002.brcl.com
IPアドレス
任意のファイルサーバー構成で、完全なIPアドレスまたはワイルドカードアドレスを使用して、ホスト名と同様にファイルアドレスを指定できます。 CIDRシステム表記も使用できます。
[export]
path/usr
allow 127.0.0.1
allow 172.223.30. *
allow 172.223.30.0/24
グローバル許可
ユーザーが特定のモジュールにアクセスできるようにしたい場合、グローバル許可が使用されます。 これを行うには、単一のワイルドカードを使用して、全員がモジュールにアクセスできるようにします。
[export]
path/export
allow*