Ansible 2.2 创建 Postgresql 数据库
Ansible 2.2 Create Postgresql Database
我是 ansible (2.2.1) 的新手,并且已经开始从我们的 fabric 脚本迁移到 ansible,我发现它在结构方面更好一些。我遇到了 运行 一个问题,它应该很简单,但由于我不了解 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
问题。
有什么遗漏的想法吗?
找到了一些变通办法和解决方案,前提是您可以放弃一些安全措施(这是有道理的,这就是出于这个原因的问题)。
更多人在这个 github 问题线程中对新的 ansible 有这个问题
https://github.com/ansible/ansible/issues/16048
我最后做的是 ansible.cfg 文件中的设置 allow_world_readable_tmpfiles = True
。然后这不再是问题,但您会收到警告。我只在处理 postgres 角色时需要此设置,所以也许我最终会将其拆分或将设置放在不太全局的地方。
我是 ansible (2.2.1) 的新手,并且已经开始从我们的 fabric 脚本迁移到 ansible,我发现它在结构方面更好一些。我遇到了 运行 一个问题,它应该很简单,但由于我不了解 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
问题。
有什么遗漏的想法吗?
找到了一些变通办法和解决方案,前提是您可以放弃一些安全措施(这是有道理的,这就是出于这个原因的问题)。
更多人在这个 github 问题线程中对新的 ansible 有这个问题 https://github.com/ansible/ansible/issues/16048
我最后做的是 ansible.cfg 文件中的设置 allow_world_readable_tmpfiles = True
。然后这不再是问题,但您会收到警告。我只在处理 postgres 角色时需要此设置,所以也许我最终会将其拆分或将设置放在不太全局的地方。