【问题标题】:Could not evaluate: Error evaluating 'unless' clause无法评估:评估“除非”子句时出错
【发布时间】:2019-03-28 13:42:41
【问题描述】:

它试图通过 puppet 将“副本”用户添加到我的 postgres 服务器,以便我可以在我的主从集群中使用它。

当我手动操作时(“CREATE ROLE replica ENCRYPTED PASSWORD '123';”)它确实可以工作,但由于某种原因它不能从 puppet 工作。

从木偶我得到错误:

错误:/Stage[main]/Role::Ofir_testing/Postgresql::Server::Role[replica]/Postgresql_psql[CREATE ROLE replica ENCRYPTED PASSWORD ****]:无法评估:评估“除非”子句时出错, 返回 pid 2064 exit 1: ''

注意:/Stage[main]/Role::Ofir_testing/Postgresql::Server::Role[replica]/Postgresql_psql[ALTER ROLE "replica" NOSUPERUSER]: Dependency Postgresql_psql[CREATE ROLE replica ENCRYPTED PASSWORD ****]有失败:是的

这是我的 pp 文件:

class { 'postgresql::globals':
  manage_package_repo => true,
  version  => $pg_version,
}

class { 'postgresql::server':
  ip_mask_deny_postgres_user => '0.0.0.0/32',
  ip_mask_allow_all_users    => '0.0.0.0/0',
  listen_addresses           => "localhost,${master_IP_address}",
}

postgresql::server::config_entry { 'archive_mode':
  value => 'on',
}
postgresql::server::config_entry { 'archive_command':
  value => "cp %p /var/lib/postgresql/${pg_version}/main/archive/%f",
}

postgresql::server::config_entry { 'wal_level':
  value => 'hot_standby',
}

postgresql::server::config_entry { 'synchronous_commit':
  value => 'local',
}

postgresql::server::config_entry { 'max_wal_senders':
  value => '2',
}

postgresql::server::config_entry { 'wal_keep_segments':
  value => '10',
}

file { "/var/lib/postgresql/${pg_version}/main/archive/":
  ensure  => 'directory',
  owner   => 'postgres',
  group   => 'postgres',
  mode    => '700',
  recurse =>  true,
}

postgresql::server::pg_hba_rule { "Allow ${user} a replication connection from Localhost":
  description => 'Open up access from 127.0.0.1/32',
  type        => 'host',
  database    => 'replication',
  user        => 'replica',
  address     => '127.0.0.1/32',
  auth_method => 'md5',
  }

postgresql::server::pg_hba_rule { "Allow ${user} replication connection from Master":
  description => 'Open up access from master',
  type        => 'host',
  database    => 'replication',
  user        => 'replica',
  address     => "${master_IP_address}/32",
  auth_method => 'md5',
}

postgresql::server::pg_hba_rule { "Allow ${user} replication connection from Slave":
  description => 'Open up access from slave',
  type        => 'host',
  database    => 'replication',
  user        => 'replica',
  address     => "${slave_IP_address}/32",
  auth_method => 'md5',
}

postgresql::server::role { "${user}":
  password_hash      => postgresql_password("${user}", "${password}"),
  replication        => true,
  connection_limit   => 1,
}

错误出现在“角色”中。 我试图添加

  user                       => 'postgres',
  group                      => 'postgres',

到 'postgresql::server' 但没有帮助。

唯一有帮助的是删除“manage_package_repo => true” 来自 'postgresql::globals',但在尝试安装非默认的 postgres 版本时会出现问题。

【问题讨论】:

  • 使用--test 选项从命令行运行代理应该会为您提供有关失败的更多详细信息,包括失败的特定命令,甚至其退出代码是什么。这将是有用的信息。

标签: postgresql ubuntu puppet


【解决方案1】:

我已修复它,您的问题是由于在创建服务器之前应用了 postgresql::server::role。 这是解决方案,感谢 Eimhin https://tickets.puppetlabs.com/browse/MODULES-8824

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-05-01
    • 1970-01-01
    • 2017-04-26
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多