Hola,
Estoy tratando de usar este rol para instalar PostgresSQL 9.6 en Centos 7.
Está bien hacer 9.2, que está en los repositorios base, pero no puedo averiguar cómo configurarlo para usar el repositorio YUM de PostgresSQL para obtener 9.6.
¿Cuál es el valor que debe ir en la variable postgresql_enablerepo
?
Solo puedo encontrar los rpm del repositorio, por ejemplo https://download.postgresql.org/pub/repos/yum/9.6/redhat/rhel-7-x86_64/pgdg-centos96-9.6-3.noarch.rpm
Cuando configuro:
postgresql_enablerepo: "https://download.postgresql.org/pub/repos/yum/9.6/redhat/rhel-7-x86_64/pgdg-centos96-9.6-3.noarch.rpm"
Da como resultado el error:
"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"
¿Puedes ver lo que estoy haciendo mal?
Gracias
Creo que he contestado esto yo mismo.
corrí:
yum install https://download.postgresql.org/pub/repos/yum/9.6/redhat/rhel-7-x86_64/pgdg-centos96-9.6-3.noarch.rpm
Luego, buscando en /etc/yum.repos.d/pgdg-96-centos.repo
encontré el nombre pgdg96
. Establecer postgresql_enablerepo
en esto dio como resultado que postgresql96-libs
se extrajeran de pgdg96
pero todo lo demás ( postgresql
, postgresql-contrib
etc.) aún proviniera de updates
.
Así que seguí las instrucciones en https://wiki.postgresql.org/wiki/YUM_Installation para excluir postgresql*
de base
y updates
.
Luego volví a ejecutar el libro de jugadas con el rol e instalé 9.6.
Para hacer esto en Ansible, agregué estas tareas previas:
- 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
¿Es esta la forma correcta de hacerlo o estoy trabajando en mi propia ineptitud?
Gracias
Hola @worldofchris , me encontré con el mismo problema al intentar instalar PostgreSQL 9.6 en CentOS 7 y su enfoque me ayudó a comenzar por el camino correcto. Sin embargo, todavía me encontré con algunos problemas porque Postgres no se está instalando desde los paquetes del sistema. Después de varios intentos fallidos, noté la sección en el LÉAME que aborda el uso de paquetes que no son del sistema y se me ocurrió lo siguiente:
- 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
Resulta que debe ser muy específico acerca de las variables específicas de la versión, pero todo parece funcionar ahora y no tuve que realizar ningún cambio en CentOS-Base.repo. Espero que esto te ayude.
gracias @worldofchris @matthiase ambos me ayudaron considerablemente!
Impresionante ayuda. Esto debería estar documentado en un wiki o algo así.
Si alguien quiere que PostgreSQL 10 se ejecute con un rol ansible, logré hacerlo funcionar con el siguiente libro de jugadas:
- 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 se ha marcado como "obsoleto" debido a la falta de actividad reciente. Si no hay más actividad, el problema se cerrará en otros 30 días. ¡Gracias por tu contribución!
Lea esta publicación de blog para ver las razones por las que marco los problemas como obsoletos.
Este problema ha sido cerrado debido a la inactividad. Si cree que se trata de un error, vuelva a abrir el problema o presente uno nuevo con los detalles pertinentes.
Comentario más útil
Hola @worldofchris , me encontré con el mismo problema al intentar instalar PostgreSQL 9.6 en CentOS 7 y su enfoque me ayudó a comenzar por el camino correcto. Sin embargo, todavía me encontré con algunos problemas porque Postgres no se está instalando desde los paquetes del sistema. Después de varios intentos fallidos, noté la sección en el LÉAME que aborda el uso de paquetes que no son del sistema y se me ocurrió lo siguiente:
Resulta que debe ser muy específico acerca de las variables específicas de la versión, pero todo parece funcionar ahora y no tuve que realizar ningún cambio en CentOS-Base.repo. Espero que esto te ayude.