2013-08-10 2 views
7

Я пытаюсь использовать кукольный модуль puppetlabs/postgresql. Я очень смущен тем, как его использовать. Кто-нибудь может дать мне пример? в документации говорится создать класс с настройками, но я не уверен, где создать класс, я был под впечатлением использовать site.pp, но когда я создаю класс в site.pp. Я установил следующий блок в site.pp после установки модуляpuppetlabs/postgresql примеры не работают

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 
+1

Обратите внимание: структура config_hash {} была удалена и является старым синтаксисом. См.: Https://github.com/puppetlabs/puppetlabs-postgresql#config_hash-parameter-collapsed-for-the-postgresqlserver-class – r3cgm

ответ

3

Bare конфигурации костей (после того, как вы установили модуль):

node default { 
    include postgresql::server 

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

} 

puppet parser validate является вашим другом :-)

Там в пост на блоге кукол, которые walks through the postgresql module, которые могут быть полезно.

+5

Это не более поздний 'postgresql :: db', но был изменен на' postgresql :: сервер :: db'. – cevaris

5

В коде, который вы в курсе, вы оба в том числе, и объявить использование класса:

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

Вам не нужно делать так, - как вы, желающих применить конфигурации на сервер, Я бы удалил строку include.

+0

Это сделало трюк для меня. :) – r3cgm