加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

在Vagrant上使用Puppet配置PostgreSQL

发布时间:2020-12-13 15:59:57 所属栏目:百科 来源:网络整理
导读:我有一个木偶清单抵制我试图让它正常工作,因为我不是傀儡DSL的专家,而且我对Puppet很新,我还没有设法解决这个问题. 我正在尝试使用puppetlabs posgres模块安装Postgres,创建默认角色,并修复数据库以使用UTF8. 一切都运行和安装,但角色不会被创建.但是,如果我
我有一个木偶清单抵制我试图让它正常工作,因为我不是傀儡DSL的专家,而且我对Puppet很新,我还没有设法解决这个问题.

我正在尝试使用puppetlabs posgres模块安装Postgres,创建默认角色,并修复数据库以使用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'],}

解决方法

最后找到了正确的方法来修复应用的顺序和UTF8问题,迫使我尝试“pg_dropcluster”开始.顺便说一句,这是一个已知的问题,这是问题网址 http://projects.puppetlabs.com/issues/4695

这是我用来安装带有UTF8的PostgreSQL 9.1和RVM ruby??的整个文件.希望这可以帮助.

模块:
– puppetlabs / apt – 1.4
– puppetlabs / concat – 1.0
– puppetlabs / stdlib – 4.1.0
– puppetlabs / postgresql – 3.2
– blt04 / puppet-rvm – git://github.com/blt04/puppet-rvm.git

stage { 'pre':
  before => Stage['main']
}

class pre_req {
  user { "vagrant":
    ensure => "present",}

  exec { 'apt-update':
    command => 'apt-get update',path    => '/usr/bin'
  }->
  exec { 'install_postgres':
    command => "/bin/bash -c 'LC_ALL=en_US.UTF-8; /usr/bin/apt-get -y install postgresql'",}
}

class { 'pre_req':
  stage => pre
}

package { ['postgresql-server-dev-9.1']:
  ensure  => 'installed',before  => Class['postgresql::server']
}

class { 'postgresql::globals':
  encoding => 'UTF8',locale   => 'en_US.UTF-8'
}->
class { 'postgresql::server':
  stage                   => main,locale                  => 'en_US.UTF-8',ip_mask_allow_all_users => '0.0.0.0/0',require                 => User['vagrant']
}->
postgresql::server::role { 'vagrant':
  createdb      => true,}

class rvm_install {
  class { 'rvm': version => '1.23.10' }
  rvm::system_user { vagrant: ; }
  rvm_system_ruby {
    "ruby-2.0.0-p247":
    ensure      => "present",default_use => false;
  }
  rvm_gemset {
    "ruby-2.0.0-p247@plyze":
    ensure  => present,require => Rvm_system_ruby['ruby-2.0.0-p247'];
  }
  rvm_gem {
    "puppet":
    name         => "puppet",ruby_version => "ruby-2.0.0-p247",ensure       => latest,require      => Rvm_system_ruby["ruby-2.0.0-p247"];
  }
  rvm_gem {
    "bundler":
    name         => "bundler",require      => Rvm_system_ruby["ruby-2.0.0-p247"];
  }
}

class { 'rvm_install':
  require => User['vagrant'],}

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读