我有一个木偶清单,但它抵制我的尝试使其正常工作,因为我不是puppet DSL的专家,而且我对Puppet相当陌生,所以我还没有弄清楚这个问题。
我正在尝试使用puppetlabs postgres模块安装Postgres,创建一个默认角色,并修复DB以在UTF8上工作。
一切都运行并安装了,但角色没有被创建。 但如果我再次运行此操作,则角色将被创建。 我猜也许与执行顺序有关,但老实说我迷失了方向。
以下是我在清单文件中使用的代码。
我正在尝试使用puppetlabs postgres模块安装Postgres,创建一个默认角色,并修复DB以在UTF8上工作。
一切都运行并安装了,但角色没有被创建。 但如果我再次运行此操作,则角色将被创建。 我猜也许与执行顺序有关,但老实说我迷失了方向。
以下是我在清单文件中使用的代码。
user { "user_vagrant":
ensure => "present",
}->
exec { 'apt_update':
command => 'apt-get update',
path => '/usr/bin/'
}
package { ['vim','postgresql-server-dev-9.1','libmysqlclient-dev','nodejs']:
ensure => 'installed',
before => Class['postgresql::server'],
require => Exec['apt_update'],
}
class { 'postgresql::server':
ip_mask_allow_all_users => '0.0.0.0/0',
listen_addresses => '*',
ipv4acls => ['local all all md5'],
postgres_password => 'postgres',
require => User['user_vagrant'],
}
postgresql::server::role { 'vagrant':
createdb => true,
login => true,
password_hash => postgresql_password("vagrant", "vagrant"),
require => Class['postgresql::server'],
} ->
exec { 'utf8_postgres':
command => 'pg_dropcluster --stop 9.1 main ; pg_createcluster --start --locale en_US.UTF-8 9.1 main',
unless => 'sudo -u postgres psql -t -c "\l" | grep template1 | grep -q UTF',
path => ['/bin', '/sbin', '/usr/bin', '/usr/sbin'],
}