Vagrant - Ansible - 安装 PostgreSQL 和 Postgis

问题描述 投票:0回答:0

我正在尝试在 Vagrant VM 上使用 Ansible 安装 PostgreSQL 和 Postgis。 但是我在安装和访问 PostgreSQL 时遇到了一些问题(还没有达到 Postgis 的步骤)。

我的 Vagrant VM 是一个 ubuntu/jammy64.

首先,我在虚拟机上安装了PHP。

然后我尝试安装 PostrgreSQL。接下来,我对 Ansible 的 psql 任务:

---
- name: Install
  apt:
    update_cache: true
    name:
      - bash
      - openssl
      - libssl-dev
      - libssl-doc
      - postgresql
      - postgresql-contrib
      - libpq-dev
      - python3-psycopg2
    state: present

- name: Check if initialized
  stat:
    path: "{{ postgresql_data_dir }}/pg_hba.conf"
  register: postgres_data

- name: Empty data dir
  file:
    path: "{{ postgresql_data_dir }}"
    state: absent
  when: not postgres_data.stat.exists

- name: Initialize
  shell: "{{ postgresql_bin_path }}/initdb -D {{ postgresql_data_dir }}"
  become: true
  become_user: postgres
  when: not postgres_data.stat.exists

- name: Start and enable service
  service:
    name: postgresql
    state: started
    enabled: true

- name: "Create database {{ postgresql_db }}"
  become: true
  become_user: "{{ postgresql_user }}"
  postgresql_db:
    name: "{{ postgresql_db }}"
    state: present

- name: "Create user {{ user }}"
  become: yes
  become_user: "{{ postgresql_user }}"
  postgresql_user:
    name: "{{ user }}"
    password: "{{ user }}"
    state: present

- name: "Grant user {{ user }}"
  become: yes
  become_user: "{{ postgresql_user }}"
  postgresql_privs:
    type: database
    database: "{{ postgresql_db }}"
    roles: "{{ user }}"
    grant_option: no
    privs: all
  notify: psql restart

我的变量:

---
postgresql_version: 14
postgresql_bin_path: "/usr/lib/postgresql/{{ postgresql_version }}/bin"
postgresql_data_dir: "/var/lib/postgresql/{{ postgresql_version }}/main"
postgresql_host: localhost
postgresql_port: 5432
postgresql_db: "db_{{ user }}"
postgresql_user: {{ user }}
postgresql_password: {{ user }}
ansible_ssh_pipelining: true

但是当我玩 Ansible 的剧本时,我得到以下反馈:

TASK [include_role : psql] *****************************************************

TASK [psql : Install] **********************************************************
ok: [192.168.50.50]

TASK [psql : Check if initialized] *********************************************
ok: [192.168.50.50]

TASK [psql : Empty data dir] ***************************************************
skipping: [192.168.50.50]

TASK [psql : Initialize] *******************************************************
skipping: [192.168.50.50]

TASK [psql : Start and enable service] *****************************************
ok: [192.168.50.50]

TASK [psql : Create database db_ojirai] ****************************************
An exception occurred during task execution. To see the full traceback, use -vvv. The error was:      Is the server running locally and accepting connections on that socket?
fatal: [192.168.50.50]: FAILED! => {"changed": false, "msg": "unable to connect to database: connection to server on socket \"/var/run/postgresql/.s.PGSQL.5432\" failed: Connection refused\n\tIs the server running locally and accepting connections on that socket?\n"}

PLAY RECAP *********************************************************************
192.168.50.50              : ok=14   changed=0    unreachable=0    failed=1    skipped=2    rescued=0    ignored=0

你们能告诉我我的错误在哪里吗?是我的 PostgreSQL 安装错了吗?

感谢您的反馈!

postgresql ansible vagrant postgis
© www.soinside.com 2019 - 2024. All rights reserved.