7

puppet モジュール puppetlabs/postgresql を使用しようとしています。使い方がとてもわかりずらいです。誰でも私に例を挙げてもらえますか? ドキュメントには、設定を使用してクラスを作成するように指示されていますが、クラスを作成する場所がわかりません.site.ppを使用する印象を受けましたが、site.ppでクラスを作成すると. モジュールをインストールした後、次のブロックをsite.ppに入れました

node default {
# This is where you can declare classes for all nodes.
# Example:
#   class { 'my_class': }

    include postgresql::server
    class { 'postgresql::server':
      config_hash => {
            'ip_mask_deny_postgres_user' => '0.0.0.0/32',
            'ip_mask_allow_all_users'    => '0.0.0.0/0',
            'listen_addresses'           => '*',
            'ipv4acls'                   => ['hostssl all johndoe 192.168.0.0/24 cert'],
            'manage_redhat_firewall'     => true,
            'manage_pg_hba_conf'         => false,
            'postgres_password'          => 'TPSrep0rt!',
      },
    }

    postgresql::db { 'testdb':
      user     => 'testdbuser',
      password => 'testdbuser'
    }

    postgresql::database_grant { 'testdbuser':
      privilege => 'ALL',
      db        => 'testdbuser',
      role      => 'dbo',
    }

 }

たくさんのエラーが発生します。

err: Could not retrieve catalog from remote server: Error 400 on SERVER: Duplicate declaration: Class[Postgresql::Server] is already declared; cannot redeclare at /etc/puppetlabs/puppet/manifests/site.pp:55 on node caaers
warning: Not using cache on failed catalog
err: Could not retrieve catalog; skipping run
4

2 に答える 2

5

投稿したコードでは、クラスの使用を含めて宣言しています。

include postgresql::server
class { 'postgresql::server':

両方を行う必要はありません。構成をサーバーに適用したいので、インクルード行を削除します。

于 2013-08-28T08:35:46.690 に答える
3

基本構成 (モジュールをインストールした後):

node default {
  include postgresql::server

  postgresql::db { 'testdb':
    user     => 'testdbuser',
    password => 'testdbuser',
  }

}

puppet parser validateあなたの友達です :-)

Puppet ブログには、postgresql モジュールについて説明した役立つ投稿があります。

于 2013-08-10T05:47:12.490 に答える