web-dev-qa-db-ja.com

Puppetでのfilebucket構成

Puppet filebucketをどのように構成して操作しますか?

そうしたいです:

  1. 単一サーバーにファイルバケットデータを保存する
  2. 必要なときにファイルバケットを監査/解析/プルーニングできる
  3. Filebucketデータがクライアント->マスター間で安全に転送されるようにする
11
robbyt

さて、すべての私のノードに含まれているクラスでは、私は持っています:

filebucket { puppet: server => "puppet.example.edu" }

Fileタイプのデフォルトは、「puppet」という名前のローカルfilebucketにバックアップすることです。 「パペット」ファイルバケットをサーバーファイルバケットに変更すると、デフォルトでサーバーベースのファイルバケットが得られます。

別の方法として、特定のファイルを上書きしてローカルのfilebucketを使用するオプションを保持したい場合は、次のようにします。

filebucket { main: server => "puppet.example.edu"; }
File { backup => main }

オプションの詳細については、 http://docs.puppetlabs.com/references/latest/type.html#filebucket を参照してください。

これは、すべてのノードにfilebucketに同じ単一サーバーを使用するように指示するため、項目1を達成します。項目#3は、SSL証明書の検証を伴うSSLベースの接続を経由するため、無料で提供されます。

Filebucketは、ほとんどの場合、同じ日に回復する場合に役立ちます。その場合は、レポートを確認して、「filebucket」または「puppet filebucket "コマンドを使用して、レポートのmd5sumに基づいて元のコンテンツを取得します。


アイテム#2は物事がトリッキーになるところです...

私はこのようなスクリプトでそれを剪定します:

find /var/lib/puppet/clientbucket/ -type f -mtime +45 -atime +45 -delete

これにより、45日以上経過していて、その時間にまったくアクセスされていないものが削除されます。 45日は、バックアップとバックアップ保持ポリシーに基づいています。これは、保持期間の長いバックアップが発生し、理論的には18か月の回復時間が得られるためです。


どのような構文解析を探していますか?サーバー上のバケット設定はmd5sumで編成された階層であり、md5sumと一致するディレクトリ名の中に、どのファイルと「コンテンツ」が実際のファイルであるかを示す「パス」があります。 reportsを見て、どのシステムから来たかを確認する必要があります。


私は監査を行いません。どのような監査を探していますか?それは多くのことを意味する可能性があります。

16
freiheit

1つの提案は、ファイルにリビジョン管理サーバー(svn、git)を追加することです。特定のモジュールに関連するすべてのファイルを/ filesの下のmodulesディレクトリに保存します。ファイルが変更されると、SVNにチェックインされ、フックを介してマスターにプッシュされます。

たとえば、postfixを管理し、/ etc/postfix/virtualファイルをクライアントにプッシュするモジュールがあります。そのファイルは/ etc/puppet/modules/postfix/filesに保存されます。

これにより、モジュールで作成されたコードを再利用したり、モジュールごとにファイルを整理したりできるという利点があります。

0
st3v3o