postgresql - 无法使用 ansible 创建 postgres 数据库
问题描述
这是我的代码:
- name: Instalation of postgresql-9.6
apt:
name: postgresql-9.6
- name: start postgresql service
service: name=postgresql state=restarted enabled=yes
- name: create a database
become_user: postgres
postgresql_db:
name: managys
encoding: UTF-8
lc_collate: de_DE.UTF-8
template: template0
state: present
- name: crate user for database
become: yes
become_user: postgres
postgresql_user:
db: template0
name: Odoo
password: Odoo
priv: ALL
state: present
这是执行主剧本后的错误:
完整的追溯是:
Traceback (most recent call last):
File "/tmp/ansible_postgresql_db_payload_ce8a5D/__main__.py", line 421, in main
db_connection = psycopg2.connect(database=maintenance_db, **kw)
File "/usr/lib/python2.7/dist-packages/psycopg2/__init__.py", line 130, in connect
conn = _connect(dsn, connection_factory=connection_factory, **kwasync)
OperationalError: FATAL: Peer authentication failed for user "postgres"
fatal: [172.17.0.2]: FAILED! => {
"changed": false,
"invocation": {
"module_args": {
"db": "managys",
"encoding": "UTF-8",
"lc_collate": "de_DE.UTF-8",
"lc_ctype": "",
"login_host": "",
"login_password": "",
"login_unix_socket": "",
"login_user": "postgres",
"maintenance_db": "postgres",
"name": "managys",
"owner": "",
"port": 5432,
"ssl_mode": "prefer",
"ssl_rootcert": null,
"state": "present",
"target": "",
"target_opts": "",
"template": "template0"
}
},
"msg": "unable to connect to database: FATAL: Peer authentication failed for user \"postgres\"\n"
}
解决方案
become_user: postgres 仅在执行 ansible 的用户位于目标服务器的 sudoers 文件中时才起作用。如果没有,那么我们必须更新 postgres 的配置文件。
下面的代码对我有用
---
- name: test
hosts: localhost
tasks:
- name: Instalation of postgresql-9.6
apt:
name: postgresql-9.6
- name: start postgresql service
service: name=postgresql state=restarted enabled=yes
- name: create a database
postgresql_db:
name: managys
encoding: UTF-8
template: template0
state: present
become_user: postgres
become: yes
推荐阅读
- axios - axios:如何在axios中获取数据
- css - 我的引导卡隐藏在侧栏下
- php - laravel,mysql事务一旦回滚就不起作用
- elasticsearch - 包含字符串字段的对象上的嵌套术语聚合
- c# - 可为空的模板字段
- c# - 使用 nettcpbinding 时出现 WCF 通信异常
- javascript - 用于 Linux 挂载路径的正则表达式以验证用户在 java 脚本中输入的路径值
- amazon-ec2 - 无法将 IP 地址解析为我的域名,但反之亦然
- c++ - 开放式。苹果系统。从同一设备(蓝牙耳机)捕获和渲染
- python - 如何使用 OpenSeesPyMac 解决库未加载错误?