【发布时间】:2017-02-11 02:17:40
【问题描述】:
我是 ansible (2.2.1) 的新手,并且已经开始从我们的结构脚本迁移到 ansible,我发现它的结构更好。我遇到了一个问题,它应该很简单,但由于我不知道怎么做,所以我不知道如何继续。到目前为止,我正在对 vagrant 盒子运行它。
问题在于用户权限和 postgres。
假设我有这本剧本
- hosts: web
become: yes
become_user: root
vars:
dbname: myapp
tasks:
- name: ensure database is created
postgresql_db: name={{dbname}}
我不能让这个简单的例子工作!满足所有依赖项。如果我对 mysql 做同样的事情,这很好,但在这里我遇到了unable to connect to database: FATAL: Peer authentication failed for user "postgres" 的问题。
在 mysql 中,我使用带有空白密码的“root”用户,因为我知道该用户是在安装时使用空白密码创建的。
postgresql安装完成时创建了一个用户postgres,所以该用户存在。作为root,我应该可以通过说我是postgres 用户来登录。我错过了如何做到这一点吗?如果登录到服务器和sudo -su postgres && psql,它工作得很好。
我还尝试通过我要运行的任务添加become_user: postgres,但随后出现unprivileged user 问题。
关于缺少什么的任何想法?
【问题讨论】:
-
您的错误是由于 Postgres 配置问题而不是 Ansible 问题。
-
我不太确定,考虑到我在这个例子中使用了来自 aptitude 的 postgres 的默认安装,就像所有具有 ansible 和 postgres_db 模块的基本模板剧本一样。所以说实话,我不认为这是问题所在。请证明我错了。
标签: postgresql ansible ansible-playbook