Oi,
Estou tentando usar esta função para instalar o PostgresSQL 9.6 no Centos 7.
Não há problema em fazer 9.2, que está nos repositórios base, mas não consigo descobrir como configurá-lo para usar o repositório PostgresSQL YUM para obter 9.6.
Qual é o valor que precisa ir na variável postgresql_enablerepo
?
Eu só consigo encontrar os rpms do repositório, por exemplo https://download.postgresql.org/pub/repos/yum/9.6/redhat/rhel-7-x86_64/pgdg-centos96-9.6-3.noarch.rpm
Quando eu configuro:
postgresql_enablerepo: "https://download.postgresql.org/pub/repos/yum/9.6/redhat/rhel-7-x86_64/pgdg-centos96-9.6-3.noarch.rpm"
Isso resulta no erro:
"Error setting/accessing repos: Error getting repository data for https://download.postgresql.org/pub/repos/yum/9.6/redhat/rhel-7-x86_64/pgdg-centos96-9.6-3.noarch.rpm, repository not found"
Você pode ver o que estou fazendo de errado?
Obrigado
Eu _acho_ eu mesmo respondi isso.
eu corri:
yum install https://download.postgresql.org/pub/repos/yum/9.6/redhat/rhel-7-x86_64/pgdg-centos96-9.6-3.noarch.rpm
Então olhando em /etc/yum.repos.d/pgdg-96-centos.repo
encontrei o nome pgdg96
. Definir postgresql_enablerepo
para isso resultou em postgresql96-libs
sendo puxado de pgdg96
mas todo o resto ( postgresql
, postgresql-contrib
etc) ainda vem de updates
.
Então eu segui as instruções em https://wiki.postgresql.org/wiki/YUM_Installation para excluir postgresql*
de base
e updates
.
Em seguida, executei novamente o manual com a função e instalei o 9.6.
Para fazer isso no Ansible, adicionei estas pre_tasks:
- ini_file:
path: /etc/yum.repos.d/CentOS-Base.repo
option: exclude
value: postgresql*
section: "{{ item }}"
with_items:
- base
- updates
- yum:
name: https://download.postgresql.org/pub/repos/yum/9.6/redhat/rhel-7-x86_64/pgdg-centos96-9.6-3.noarch.rpm
state: present
Essa é a maneira certa de fazer isso ou estou contornando minha própria inépcia?
Obrigado
Oi @worldofchris , me deparei com o mesmo problema ao tentar instalar o PostgreSQL 9.6 no CentOS 7 e sua abordagem me levou a seguir o caminho correto. No entanto, ainda encontrei alguns problemas porque o Postgres não está sendo instalado a partir de pacotes do sistema. Após várias tentativas malsucedidas, notei a seção no README que aborda o uso de pacotes que não são do sistema e cheguei ao seguinte:
- hosts: all
gather_facts: true
pre_tasks:
- name: make selinux permissive
selinux:
policy: targeted
state: permissive
become: yes
- name: install PostgreSQL 9.6 repository
yum:
name: https://download.postgresql.org/pub/repos/yum/9.6/redhat/rhel-7-x86_64/pgdg-centos96-9.6-3.noarch.rpm
state: present
become: yes
tasks:
- name: install system packages
yum:
name: "{{ item }}"
state: installed
with_items:
- "<strong i="7">@Development</strong> tools"
become: yes
roles:
- role: geerlingguy.postgresql
postgresql_enablerepo: "pgdg96"
postgresql_version: 9.6
postgresql_data_dir: /var/lib/pgsql/9.6/data
postgresql_bin_path: /usr/pgsql-9.6/bin
postgresql_config_path: /var/lib/pgsql/9.6/data
postgresql_daemon: postgresql-9.6.service
postgresql_packages:
- postgresql96
- postgresql96-server
- postgresql96-libs
- postgresql96-contrib
- postgresql96-devel
become: yes
Acontece que você precisa ser muito específico sobre as variáveis específicas da versão, mas tudo parece funcionar agora e eu não precisei fazer nenhuma alteração no CentOS-Base.repo. Espero que isso ajude você.
obrigado @worldofchris @matthiase ambos me ajudaram consideravelmente!
Ajuda incrível. Isso deve ser documentado em um wiki ou algo assim
Se alguém quiser executar o PostgreSQL 10 com a função ansible, consegui fazê-lo funcionar com o seguinte manual:
- hosts: all
pre_tasks:
- name: install PostgreSQL 10 repository
yum:
name: https://download.postgresql.org/pub/repos/yum/10/redhat/rhel-7.5-x86_64/pgdg-redhat10-10-2.noarch.rpm
state: present
become: yes
tasks:
roles:
- role: geerlingguy.postgresql
postgresql_enablerepo: "pgdg10"
postgresql_version: 10
postgresql_data_dir: /var/lib/pgsql/10/data
postgresql_bin_path: /usr/pgsql-10/bin
postgresql_config_path: /var/lib/pgsql/10/data
postgresql_daemon: postgresql-10.service
postgresql_packages:
- postgresql10
- postgresql10-server
- postgresql10-libs
- postgresql10-contrib
- postgresql10-devel
become: yes
- hosts: db
pre_tasks:
- name: install repository PostgresQL
yum:
name: https://download.postgresql.org/pub/repos/yum/reporpms/EL-7-x86_64/pgdg-redhat-repo-latest.noarch.rpm
state: present
become: yes
become: yes
vars_files:
- /home/sane/ansible_roles/pg/geerlingguy.postgresql/defaults/main.yml
roles:
- role: geerlingguy.postgresql
postgresql_enablerepo: "pgdg11"
postgresql_version: 11
postgresql_data_dir: /var/lib/pgsql/11/data
postgresql_bin_path: /usr/pgsql-11/bin
postgresql_config_path: /var/lib/pgsql/11/data
postgresql_daemon: postgresql-11.service
postgresql_packages:
- postgresql11
- postgresql11-server
- postgresql11-libs
- postgresql11-contrib
- postgresql11-devel
become: yes
Este problema foi marcado como "obsoleto" devido à falta de atividade recente. Se não houver mais atividade, a questã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 encerrado devido à inatividade. Se você achar que isso é um erro, reabra o problema ou registre um novo problema com os detalhes relevantes.
Comentários muito úteis
Oi @worldofchris , me deparei com o mesmo problema ao tentar instalar o PostgreSQL 9.6 no CentOS 7 e sua abordagem me levou a seguir o caminho correto. No entanto, ainda encontrei alguns problemas porque o Postgres não está sendo instalado a partir de pacotes do sistema. Após várias tentativas malsucedidas, notei a seção no README que aborda o uso de pacotes que não são do sistema e cheguei ao seguinte:
Acontece que você precisa ser muito específico sobre as variáveis específicas da versão, mas tudo parece funcionar agora e eu não precisei fazer nenhuma alteração no CentOS-Base.repo. Espero que isso ajude você.