伪PostgresQL管理
我正在尝试使用puppet提供一个EC2实例。在此过程中,我从puppetlabs下载了puppetlabs postgresql模块。由于我对puppet相当陌生,我不想通过在/etc/puppet/manifests/site.pp中的site.pp文件中创建类来管理我的数据库。相反,我想在/etc/puppet/modules/database中调用模块数据库。 到目前为止,我所做的是在/etc/puppet/modules/database中创建一个init.pp文件。下面是我的init.pp文件的内容:伪PostgresQL管理,postgresql,ubuntu-14.04,puppet,packer,puppet-enterprise,Postgresql,Ubuntu 14.04,Puppet,Packer,Puppet Enterprise,我正在尝试使用puppet提供一个EC2实例。在此过程中,我从puppetlabs下载了puppetlabs postgresql模块。由于我对puppet相当陌生,我不想通过在/etc/puppet/manifests/site.pp中的site.pp文件中创建类来管理我的数据库。相反,我想在/etc/puppet/modules/database中调用模块数据库。 到目前为止,我所做的是在/etc/puppet/modules/database中创建一个init.pp文件。下面是我的init
class database {
# resources
postgresql::globals{'globals':
version => '9.3',
manage_package_repo => true,
encoding => 'UTF8',
locale => 'it_IT.utf8',
}
postgresql::server{'server':
ensure => 'present',
listen_addresses => '*',
manage_firewall => true,
}
postgresql::server::contrib{'contrib':
package_ensure => 'present',
}
}
然后在我的/etc/puppet/manifests/site.pp文件中,我包含了数据库类,如下所示:
node default {
include localusers
include database
}
但是,我不断得到一个错误:
Error: Puppet::Parser::AST::Resource failed with error ArgumentError: Invalid resource type postgresql::globals at /etc/puppet.manifests/init.pp:12
请问,在我自己的模块中使用postgresql类和资源并在模块中创建数据库的正确方法是什么?您的思路是正确的,但在如何使用postgresql模块方面存在一些问题。出现
无效资源类型
错误的原因是,您试图将postgresql::globals
用作定义的类型,而实际上它是一个类。您正在使用的其他两个类也有相同的问题。试试这个
class database {
# set global defaults before creating server
class { 'postgresql::globals':
version => '9.3',
manage_package_repo => true,
encoding => 'UTF8',
locale => 'it_IT.utf8',
}->
class { 'postgresql::server':
listen_addresses => '*',
manage_firewall => true,
}
# install the postgresql contrib package
class { 'postgresql::server::contrib':
package_ensure => 'present',
}
# create database with user and default permissions
postgresql::server::db { 'my_awesome_db':
user => 'my_db_user',
password => 'puppetRocks',
}
}
在中,有类和资源的细分(也称为定义的类型)。我使用的
postgresql::server::db
类型是一次创建数据库、用户和权限的最简单方法。每种类型都有单独的类型,可以提供更细粒度的控制。非常感谢,它解决了我的问题,只是postgresql::server类不存在“Sure”参数。除此之外,我对你的帮助感到高兴。我刚修好。