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 *
上記のコードスニペットでは、コードはクライアントからファイル/private/file.txtを検索しようとしています。 client1.vipin.com。/data/private/client1/file.txtで検索しますが、client2.vipin.comに対する同じリクエストは、ファイルサーバー上のファイル/data/private/client2/file.txtを取得しようとします。
セキュリティ
Puppetは、Puppetファイルサーバー上のファイルを保護するという2つの基本的な概念をサポートしています。これは、特定のファイルへのアクセスを許可し、不要なファイルへのアクセスを拒否することで実現されます。デフォルトでは、Puppetはどのファイルにもアクセスを許可しません。明示的に定義する必要があります。ファイルでアクセスを許可または拒否するために使用できる形式は、IPアドレス、名前、またはグローバル許可を使用することです。
クライアントがPuppetファイルサーバーに直接接続されていない場合、たとえばリバースプロキシとMongrelを使用している場合、ファイルサーバーはすべての接続をPuppetクライアントではなくプロキシサーバーからのものとして認識します。上記の場合、ホスト名に基づいてホスト名を制限することがベストプラクティスです。
ファイル構造を定義する際に注意すべき重要な点の1つは、すべてのdenyステートメントがallowステートメントの前に解析されることです。したがって、いずれかのdenyステートメントがホストに一致する場合、そのホストは拒否され、allowステートメントが次のファイルに書き込まれない場合、ホストは拒否されます。この機能は、特定のサイトの優先順位を設定するのに役立ちます。
ホスト名
どのファイルサーバー構成でも、ファイルホスト名は、次の例に示すように、完全なホスト名を使用するか、*ワイルドカードを使用してドメイン名全体を指定するかの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
グローバル許可
グローバル許可は、ユーザーが全員が特定のモジュールにアクセスできるようにする場合に使用されます。これを行うには、1つのワイルドカードを使用すると、全員がモジュールにアクセスできるようになります。
[export]
path /export
allow *