【发布时间】:2019-06-29 23:15:11
【问题描述】:
我想通过 Ansible 在 PostgreSQL 9.6 中创建一个用户和一个数据库。
在 shell 中我是这样做的: sudo -u postgres createuser -S -D -R -P ckan_default createdb -O ckan_default ckan_default -E utf-8
我正在运行 Ansible Tower 中的所有内容。
我尝试过的是,有多种选择,比如删除 become 和 become_user:
- name: Create postgres user
become: yes
become_user: postgres
postgresql_user:
name: "ckan_default"
password: "ckan_default"
role_attr_flags: NOCREATEDB, NOCREATEROLE, NOSUPERUSER
- name: Create DB
become: yes
become_user: postgres
postgresql_db:
name: ckan_default
encoding: UTF-8
owner: ckan_default
我遇到的错误:
{
"_ansible_parsed": true,
"exception": "Traceback (most recent call last):\n File \"/tmp/ansible_postgresql_db_payload_FsaEtw/__main__.py\", line 421, in main\n db_connection = psycopg2.connect(database=maintenance_db, **kw)\n File \"build/bdist.linux-x86_64/egg/psycopg2/__init__.py\", line 126, in connect\n conn = _connect(dsn, connection_factory=connection_factory, **kwasync)\nOperationalError: FATAL: Peer authentication failed for user \"postgres\"\n\n",
"_ansible_no_log": false,
"changed": false,
"invocation": {
"module_args": {
"ssl_rootcert": null,
"ssl_mode": "prefer",
"target": "",
"encoding": "UTF-8",
"login_user": "postgres",
"login_host": "",
"target_opts": "",
"db": "ckan_default",
"lc_ctype": "",
"owner": "",
"port": 5432,
"login_unix_socket": "",
"state": "present",
"template": "",
"login_password": "",
"maintenance_db": "postgres",
"lc_collate": "",
"name": "ckan_default"
}
},
"msg": "unable to connect to database: FATAL: Peer authentication failed for user \"postgres\"\n"
}
【问题讨论】:
标签: postgresql ansible