require 'spec_helper_acceptance' describe 'remote-access', :unless => UNSUPPORTED_PLATFORMS.include?(fact('osfamily')) do before do skip "These tests require the spec/acceptance/nodesets/centos-64-x64-2-hosts nodeset" end describe "configuring multi-node postgresql" do # Get the database's IP to connect to from the database let(:database_ip_address) do hosts_as('database').inject({}) do |memo,host| fact_on host, "ipaddress_eth1" end end hosts_as('database').each do |host| it "should be able to configure a host as database on #{host}" do pp = <<-EOS # Stop firewall so we can easily connect service {'iptables': ensure => 'stopped', } class { 'postgresql::server': ip_mask_allow_all_users => '0.0.0.0/0', listen_addresses => '*', } postgresql::server::db { 'puppet': user => 'puppet', password => postgresql_password('puppet', 'puppet'), } postgresql::server::pg_hba_rule { 'allow full yolo access password': type => 'host', database => 'all', user => 'all', address => '0.0.0.0/0', auth_method => 'password', order => '002', } EOS apply_manifest_on(host, pp, :catch_failures => true) end end hosts_as('client').each do |host| it "should be able to configure a host as client on #{host} and then access database" do pp = <<-EOS class { 'postgresql::client':} $connection_settings = { 'PGUSER' => "puppet", 'PGPASSWORD' => "puppet", 'PGHOST' => "#{database_ip_address}", 'PGPORT' => "5432", 'PGDATABASE' => "puppet", } postgresql_psql { 'run using connection_settings': command => 'select 1', psql_user => 'root', psql_group => 'root', connect_settings => $connection_settings, } EOS apply_manifest_on(host, pp, :catch_failures => true) end end end end