Порт PostgreSQL не готов к выполнению заданий - PullRequest
0 голосов
/ 10 июня 2018

Я почти закончил с настройкой роли PostgreSQL HA Ansible между главным и подчиненным узлами, но он продолжает давать сбой одной командой:

- name: Create base backup
  command: pg_basebackup -X stream -D {{ postgres_home }} -h {{ master_ip }} -U {{ replica_user }}
  become: yes
  become_user: postgres

Вывод ошибки Ansible:

"stderr": "pg_basebackup: could not connect to server: could not connect to server: Connection refused\n\tIs the server running on host \"10.44.164.159\" and accepting\n\tTCP/IP connections on port 5432?",
    "stderr_lines": [
        "pg_basebackup: could not connect to server: could not connect to server: Connection refused",
        "\tIs the server running on host \"10.44.164.159\" and accepting",
        "\tTCP/IP connections on port 5432?"

Но когда я запускаю эту команду после сбоя playbook, она запускается без каких-либо ошибок и успешно.

Почему это работает без Ansible, а не внутри роли и сборника пьес?

Спасибо!

1 Ответ

0 голосов
/ 12 июня 2018

вам нужно добавить задачу перед этой задачей, чтобы дождаться готовности сервера postgresql.

Вы можете сделать это так

- name: hold until Postgresql is up and running
  wait_for:
    host "{{ master_ip }}"
    port: 5432

Вы также можете посмотреть полную документацию здесь

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...