用于CloudFormation的UserData中的Postgres命令

时间:2016-05-02 18:16:35

标签: postgresql amazon-cloudformation

我在我的服务器上启动了一个postgres服务器,用于创建云形成模板。问题是我不确定如何在运行时加载文件,正确的用户或命令是什么:

我试过这个:

May  2 13:50:16 ip-10-205-0-135 cloud-init: 2016-05-02 13:50:16 (31.1 MB/s) - ‘psqlCloudera.sql’ saved [876/876]
May  2 13:50:16 ip-10-205-0-135 cloud-init: psql -U postgres -a -f psqlCloudera.sql
May  2 13:50:16 ip-10-205-0-135 cloud-init: psql: FATAL:  Peer authentication failed for user "postgres"

有点不同:

在我的用户数据中涉及“su-postgres \ n”。

May  2 13:31:05 ip-10-205-0-135 cloud-init: Saving to: ‘psqlCloudera.sql’
May  2 13:31:05 ip-10-205-0-135 cloud-init: 0K                                                       100% 36.2M=0s
May  2 13:31:05 ip-10-205-0-135 cloud-init: 2016-05-02 13:31:05 (36.2 MB/s) - ‘psqlCloudera.sql’ saved [876/876]
May  2 13:31:05 ip-10-205-0-135 cloud-init: psql -a -f psqlCloudera.sql
May  2 13:31:05 ip-10-205-0-135 cloud-init: psql: FATAL:  role "root" does not exist

在启动时加载postgres的正确方法是什么?

1 个答案:

答案 0 :(得分:0)

我发现只要您编辑pg_hba.conf并使其信任本地连接就可以使用第一部分代码,因此您无需在云形成的运行时期间通过postgres用户进行身份验证。第二个选项不起作用,因为在CF中显然当你切换到另一个用户时你需要将命令链接在一起,否则CF会注意到用户无事可做并退出该用户。