首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >无法使用ansible创建postgres数据库

无法使用ansible创建postgres数据库
EN

Stack Overflow用户
提问于 2019-03-19 21:10:07
回答 1查看 1.8K关注 0票数 0

这是我的代码:

代码语言:javascript
复制
- 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

这是执行主剧本后的错误:

完整的回溯是:

代码语言:javascript
复制
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"
}
EN

回答 1

Stack Overflow用户

发布于 2019-03-19 21:30:14

postgres仅当执行ansible的用户在目标服务器的sudoers文件中时才有效。如果没有,那么我们必须更新postgres的配置文件。

下面的代码适用于我

代码语言:javascript
复制
---
- 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
票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/55241886

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档