我试图在现有的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_host
、login_user
和login_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连接,因为在我的设置中,当在数据库服务器或应用程序服务器上运行时,它们会工作。