我试图在现有的pgsql数据库中添加数据库和用户(在centOS 7.1服务器上)。 我使用postgresql_user和postgresql_db模块(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。
答案 0 :(得分:1)
请尝试以下任一方法:
login_unix_socket
参数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连接,因为在我的设置中,他们在对数据库服务器或应用服务器运行时会工作。