Ansible-role-postgresql: ¿Cómo se instala desde el repositorio YUM de PostgresSQL?

Creado en 1 mar. 2018  ·  8Comentarios  ·  Fuente: geerlingguy/ansible-role-postgresql

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

stale

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:

- 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.

Todos 8 comentarios

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.

¿Fue útil esta página
0 / 5 - 0 calificaciones

Temas relacionados

GoodBoy962 picture GoodBoy962  ·  10Comentarios

breml picture breml  ·  9Comentarios

svanschalkwyk picture svanschalkwyk  ·  6Comentarios

NiftyMist picture NiftyMist  ·  5Comentarios

FilBot3 picture FilBot3  ·  18Comentarios