Ansible-role-postgresql: postgres не может войти в систему, чтобы проверить наличие базы данных

Созданный на 6 февр. 2019  ·  18Комментарии  ·  Источник: geerlingguy/ansible-role-postgresql

Я не уверен, что понимаю, как и почему пользователь postgres не может войти в систему, чтобы проверить, существует ли база данных или нет, но следующий Playbook ...

---
- hosts: concourse_db
  roles:
    - role: geerlingguy.postgresql
      tags:
        - concourse_db
      vars:
        postgresql_restarted_state: "restarted"
        postgresql_service_state: started
        postgresql_service_enabled: true
        postgresql_hba_entries:
          - { type: local, database: all, user: postgres, auth_method: peer }
          - { type: local, database: all, user: all, auth_method: peer }
          - { type: host, database: all, user: all, address: '127.0.0.1/32', auth_method: md5 }
          - { type: host, database: all, user: all, address: '::1/128', auth_method: md5 }
        postgresql_locales:
          - 'en_US.UTF-8'
        postgresql_databases:
          - name: concourse
            owner: concourse
            login_user: postgres
            state: present
        postgresql_users:
          - name: concourse
            password: concoursepassword
            encrypted: true
            db: concourse
            login_user: postgres
            state: present
...

Выдают следующие ошибки:

TASK [geerlingguy.postgresql : Ensure PostgreSQL is started and enabled on boot.] ***************************************************************************************************
ok: [10.144.0.137]

TASK [geerlingguy.postgresql : Ensure PostgreSQL databases are present.] ************************************************************************************************************
An exception occurred during task execution. To see the full traceback, use -vvv. The error was: ProgrammingError: role "concourse" does not exist
failed: [10.144.0.137] (item={'name': 'concourse', 'owner': 'concourse', 'login_user': 'postgres', 'state': 'present'}) => {"changed": false, "item": {"login_user": "postgres", "name": "concourse", "owner": "concourse", "state": "present"}, "msg": "Database query failed: role \"concourse\" does not exist\n"}
    to retry, use: --limit @/Users/pd028300/Documents/development/Ansible/concourse_ci_playbook/playbook_2.retry

Я не уверен, должен ли он использовать postgres user или пользователя, которого я создал, concourse в этом случае.

Файл требований Ansible-Galaxy

---
# https://galaxy.ansible.com/geerlingguy/postgresql
- src: geerlingguy.postgresql
  version: 1.4.5
...

Информация о целевой системе

[email protected]:~ ( concourse-ci-db.novalocal )
12:38:42 $ uname -a
Linux concourse-ci-db.novalocal 3.10.0-957.1.3.el7.x86_64 #1 SMP Mon Nov 26 17:43:08 PST 2018 x86_64 x86_64 x86_64 GNU/Linux
[email protected]:~ ( concourse-ci-db.novalocal )
12:38:44 $ cat /etc/oracle-release
Oracle Linux Server release 7.6

Версии Ansible и Ansible Playbook

$ ansible --version && ansible-playbook --version
ansible 2.7.6
  config file = /Users/pd028300/Documents/development/Ansible/concourse_ci_playbook/ansible.cfg
  configured module search path = ['/Users/pd028300/.ansible/plugins/modules', '/usr/share/ansible/plugins/modules']
  ansible python module location = /Users/pd028300/.pyenv/versions/3.7.2/lib/python3.7/site-packages/ansible
  executable location = /Users/pd028300/.pyenv/versions/3.7.2/bin/ansible
  python version = 3.7.2 (default, Jan 22 2019, 09:35:39) [Clang 9.0.0 (clang-900.0.39.2)]
ansible-playbook 2.7.6
  config file = /Users/pd028300/Documents/development/Ansible/concourse_ci_playbook/ansible.cfg
  configured module search path = ['/Users/pd028300/.ansible/plugins/modules', '/usr/share/ansible/plugins/modules']
  ansible python module location = /Users/pd028300/.pyenv/versions/3.7.2/lib/python3.7/site-packages/ansible
  executable location = /Users/pd028300/.pyenv/versions/3.7.2/bin/ansible-playbook
  python version = 3.7.2 (default, Jan 22 2019, 09:35:39) [Clang 9.0.0 (clang-900.0.39.2)]

Самый полезный комментарий

Была такая же проблема сегодня с доступной версией галактики

Все 18 Комментарий

При переключении файлов databases.yml и users.yml возникли новые ошибки.

TASK [geerlingguy.postgresql : Ensure PostgreSQL is started and enabled on boot.] ***************************************************************************************************
ok: [10.144.0.137]

TASK [geerlingguy.postgresql : Ensure PostgreSQL users are present.] ****************************************************************************************************************
failed: [10.144.0.137] (item=None) => {"censored": "the output has been hidden due to the fact that 'no_log: true' was specified for this result", "changed": false}
fatal: [10.144.0.137]: FAILED! => {"censored": "the output has been hidden due to the fact that 'no_log: true' was specified for this result", "changed": false}

@ predatorian3 Я только что проверил это на случай, если вам интересно:

Это происходит потому, что пользователи создаются раньше баз данных. Поэтому, когда вы создаете пользователя и ссылаетесь на базу данных - нет базы данных, на которую можно было бы ссылаться, и она выдает ошибки

А затем вы создаете базу данных для ссылки на пользователя - ну, пользователя нет. Вы должны сначала создать пользователя без ссылки на базу данных, а затем создать базу данных.

Эта проблема помечена как устаревшая из-за отсутствия активности в последнее время. Если больше не будет активности, вопрос будет закрыт еще через 30 дней. Спасибо Вам за Ваш вклад!

Прочтите это сообщение в блоге, чтобы узнать, почему я помечаю проблемы как устаревшие.

Была такая же проблема сегодня с доступной версией галактики

Эта проблема больше не помечена для закрытия.

Эта проблема помечена как устаревшая из-за отсутствия активности в последнее время. Если больше не будет активности, вопрос будет закрыт еще через 30 дней. Спасибо Вам за Ваш вклад!

Прочтите это сообщение в блоге, чтобы узнать, почему я помечаю проблемы как устаревшие.

Испытываю ту же проблему

Эта проблема больше не помечена для закрытия.

Эта проблема помечена как устаревшая из-за отсутствия активности в последнее время. Если больше не будет активности, вопрос будет закрыт еще через 30 дней. Спасибо Вам за Ваш вклад!

Прочтите это сообщение в блоге, чтобы узнать, почему я помечаю проблемы как устаревшие.

не устаревший

Эта проблема больше не помечена для закрытия.

Эта проблема помечена как устаревшая из-за отсутствия активности в последнее время. Если больше не будет активности, вопрос будет закрыт еще через 30 дней. Спасибо Вам за Ваш вклад!

Прочтите это сообщение в блоге, чтобы узнать, почему я помечаю проблемы как устаревшие.

не устаревший

Эта проблема больше не помечена для закрытия.

У меня была аналогичная проблема со следующей ошибкой
TASK [geerlingguy.postgresql : Ensure PostgreSQL users are present.] ***************************** failed: [production] (item=None) => {"censored": "the output has been hidden due to the fact that 'no_log: true' was specified for this result", "changed": false} fatal: [production]: FAILED! => {"censored": "the output has been hidden due to the fact that 'no_log: true' was specified for this result", "changed": false}

Я рекомендую вам попробовать установить postgres_users_no_log: false в свой файл переменных и посмотреть, в чем ошибка. В моем случае это было связано с зависимостью psycopg2 (которую я уже устанавливал с помощью python3-psycopg2 , но отсутствовал ansible_python_interpreter: /usr/bin/python3 в моих переменных)

Эта проблема помечена как устаревшая из-за отсутствия активности в последнее время. Если больше не будет активности, вопрос будет закрыт еще через 30 дней. Спасибо Вам за Ваш вклад!

Прочтите это сообщение в блоге, чтобы узнать, почему я помечаю проблемы как устаревшие.

Этот вопрос был закрыт из-за бездействия. Если вы считаете, что это ошибка, повторно откройте проблему или отправьте новую проблему с соответствующими сведениями.

Была ли эта страница полезной?
0 / 5 - 0 рейтинги

Смежные вопросы

GoodBoy962 picture GoodBoy962  ·  10Комментарии

NiftyMist picture NiftyMist  ·  5Комментарии

worldofchris picture worldofchris  ·  8Комментарии

breml picture breml  ·  9Комментарии

svanschalkwyk picture svanschalkwyk  ·  6Комментарии