Não tenho certeza se entendo como ou por que o usuário postgres
não é capaz de fazer o login para verificar se o banco de dados existe ou não, mas o seguinte Manual ...
---
- 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
...
Dê os seguintes erros:
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
Não tenho certeza se ele deveria estar usando postgres
user ou o usuário que criei, concourse
neste caso.
Arquivo de requisitos do Ansible-Galaxy
---
# https://galaxy.ansible.com/geerlingguy/postgresql
- src: geerlingguy.postgresql
version: 1.4.5
...
Informações do sistema de destino
[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
Versões do Ansible e do 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)]
Parece estar relacionado a isso: PR https://github.com/geerlingguy/ansible-role-postgresql/pull/31
nestas linhas:
A troca de databases.yml e users.yml gerou novos erros.
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 Acabei de testar isso caso você esteja se perguntando:
Isso ocorre porque os usuários são criados antes dos bancos de dados. Então, quando você cria um usuário e faz referência a um banco de dados - não há banco de dados para fazer referência e ele apresenta erros
E então você cria um banco de dados para fazer referência a um usuário - bem, não há nenhum usuário. Você deve criar um usuário primeiro sem referência de banco de dados e, em seguida, criar o banco de dados.
Este problema foi marcado como 'obsoleto' devido à falta de atividade recente. Caso não haja mais atividades, a emissão será encerrada em mais 30 dias. Obrigado pela sua contribuição!
Leia esta postagem do blog para ver os motivos pelos quais eu marco os problemas como obsoletos.
Tive o mesmo problema hoje com a versão da galáxia ansible
Este problema não está mais marcado para encerramento.
Este problema foi marcado como 'obsoleto' devido à falta de atividade recente. Caso não haja mais atividades, a emissão será encerrada em mais 30 dias. Obrigado pela sua contribuição!
Leia esta postagem do blog para ver os motivos pelos quais eu marco os problemas como obsoletos.
Enfrentando o mesmo problema também
Este problema não está mais marcado para encerramento.
Este problema foi marcado como 'obsoleto' devido à falta de atividade recente. Caso não haja mais atividades, a emissão será encerrada em mais 30 dias. Obrigado pela sua contribuição!
Leia esta postagem do blog para ver os motivos pelos quais eu marco os problemas como obsoletos.
não velho
Este problema não está mais marcado para encerramento.
Este problema foi marcado como 'obsoleto' devido à falta de atividade recente. Caso não haja mais atividades, a emissão será encerrada em mais 30 dias. Obrigado pela sua contribuição!
Leia esta postagem do blog para ver os motivos pelos quais eu marco os problemas como obsoletos.
não velho
Este problema não está mais marcado para encerramento.
Eu estava tendo um problema semelhante com a seguinte falha
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}
Eu recomendo que você tente definir postgres_users_no_log: false
em seu arquivo de variáveis e ver do que se trata o erro. No meu caso, estava relacionado à dependência psycopg2
(que eu já estava instalando com python3-psycopg2
, mas estava faltando ansible_python_interpreter: /usr/bin/python3
em minhas variáveis)
Este problema foi marcado como 'obsoleto' devido à falta de atividade recente. Caso não haja mais atividades, a emissão será encerrada em mais 30 dias. Obrigado pela sua contribuição!
Leia esta postagem do blog para ver os motivos pelos quais eu marco os problemas como obsoletos.
Este problema foi resolvido devido à inatividade. Se você acha que isso é um erro, reabra o problema ou registre um novo problema com os detalhes relevantes.
Comentários muito úteis
Tive o mesmo problema hoje com a versão da galáxia ansible