我试图在现有的PGSQL数据库(在CITOS 7.1服务器上)添加数据库和用户。
我正在使用postgresql_user和postgresql_db modules(Ansible 2.2)来执行此操作,但我得到错误:

fatal: [XXXXXXXXXXXXXX]: FAILED! => {"changed": false, "failed": true, "msg": "unable to connect to database: could not connect to server: No such file or directory\n\tIs the server running locally and accepting\n\tconnections on Unix domain socket \"/var/run/postgresql/.s.PGSQL.6543\"?\n"}

我正在使用以下任务创建数据库
- name: Create database
  postgresql_db: name=db port=6543
  become: true
  become_user: postgres

现在,我所作的,是好的,但不是等幂的
- name: Create database
  command: {{ PGBIN }}/bin/createdb db -p 6543 -w
  become: true
  become_user: postgres

我已经按要求安装了psycopg2包。有关信息,数据库未安装在标准目录中,也未使用标准端口5432。

最佳答案

请尝试下列任一操作:
通过login_unix_socket参数传入postgres套接字的正确路径
切换到IP连接并使用login_hostlogin_userlogin_password但您需要设置postgres用户密码或创建另一个超级用户。
下面是我的任务之一

- name: Ensure application database is created
  postgresql_db:  name={{ postgres_app_db }}
                  encoding='UTF-8'
                  lc_collate='en_US.UTF-8'
                  lc_ctype='en_US.UTF-8'
                  state=present
                  login_host={{ postgres_client_host }}
                  login_user="{{ postgres_superuser }}"
                  login_password="{{ postgres_superuser_password }}"
                  port="{{ postgres_client_port }}"

我更喜欢使用IP连接,因为在我的设置中,当在数据库服务器或应用程序服务器上运行时,它们会工作。

10-01 18:17