2015-04-06 2 views
0

Я пытаюсь установить postgresql, настроить базу данных и пользователя, но я застрял в настройке базы данных и использования части. То, что я до сих пор:Использование куклы для установки postgres без puppet-postgres

# Install postgres 
class postgres::install { 

    package { [ 
    'postgresql', 
    'postgresql-contrib', 
    ]: 
    ensure => "installed", 
    } 
} 

Но теперь, как я могу использовать это, чтобы создать пользователя, базу данных и предоставить все права на эту базу данных для этого пользователя?

ответ

1

Вы можете сделать это несколько способов, но самый простой способ сделать это несколько раз это с определить, что вызывает несколько Execs:

Exec { 
    path => [ 
    '/usr/local/sbin', 
    '/usr/local/bin', 
    '/usr/bin', 
    '/usr/sbin', 
    '/bin', 
    '/sbin', 
    ] 
} 
define postgres::db_setup (
    $dbname, 
){ 
    exec { "configure_db_${dbname}": 
    command => "pg command here using ${dbname}; touch success.txt" 
    creates => "db_${dbname}_success.txt" 
    } 
} 
define postgres::user_setup (
    $dbuser, 
    $dbpassword, 
    $dbname, 
){  
    exec { "configure_user_${dbuser}_on_${dbname}": 
    command => "pg command here using ${dbuser} on ${dbname} identified by ${dbpassword}; touch usersuccess.txt" 
    creates => "user_${dbuser}_success.txt" 
    } 

Тогда при вызове устанавливает:

Это очень грязный способ выполнить то, что вы хотите, используя фиктивные файлы для регистрации, когда exec был завершен. В моей среде MySQL я использую execs для скриптов, созданных с помощью шаблонов erb, чтобы обеспечить более точную проверку ошибок.

+0

Итак, что же это за чистый способ сделать это? – TheWebs

+1

@KyleAdams Чистым способом является использование уже существующего модуля и в этом конкретном случае реализовать собственный поставщик в рубине. –

+0

Я обновил операторы «создает», чтобы дать возможность функциям работать с разными объявлениями ресурсов. Если имя файла совпадает с указанным, тогда будет применяться только первый. – tthayer

Смежные вопросы