Ansible-role-postgresql: No se puede cambiar postgres_version

Creado en 2 sept. 2020  ·  10Comentarios  ·  Fuente: geerlingguy/ansible-role-postgresql

Agregar var postgresql_version: "12" no cambia la versión real que se instaló en VM con Ubuntu 18.

stale

Comentario más útil

Hola. No estoy 100% seguro de esto, pero si especifica una versión diferente de PostgreSQL usando postgresql_version , necesita configurar el resto de las variables postgres_ . De lo contrario, utilizará los valores predeterminados de ./vars/<OS>-<version>.yml para las variables que no definió y entrará en conflicto con la versión que desea instalar.

Por ejemplo, en mi entorno de prueba CentOS 6, quería instalar PostgreSQL v9.6. Esa versión de PostgreSQL no se encuentra en los repositorios estándar de CentOS. Creo que la versión más alta de PostgreSQL en los repositorios CentOS estándar es la v8.4. Estos libros de jugadas de Jeff solo usan los repositorios predeterminados. Verifique que la versión de PostgreSQL que desea instalar esté en los repositorios habilitados en su servidor. En mi caso, tuve que instalar los repositorios oficiales de PostgreSQL v9.6 yum antes de configurar el rol:

- name: Install PostgreSQL 9.6 Repository
  yum_repository:
    name: postgresql96
    baseurl: https://download.postgresql.org/pub/repos/yum/9.6/redhat/rhel-$releasever-$basearch
    enabled: True
    file: postgresql96
    description: PostgreSQL 9.6 for RHEL/CentOS $releasever - $basearch
    gpgcheck: False

Agregué las siguientes variables a ./vars/main.yml NOTA: Este archivo no existía y tenía que ser creado. Además, tenga en cuenta que las siguientes variables solo funcionan en distribuciones basadas en RHEL. Estos serán diferentes para las distribuciones basadas en Debian.

postgres_users_no_log: false # not needed; enabled for troubleshooting
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
postgresql_packages:
  - postgresql96
  - postgresql96-libs
  - postgresql96-server

Una vez que haya definido todas estas variables, es de esperar que también funcione para usted.

Todos 10 comentarios

También noté esto en Debian 10

roles/postgres.yml

- name: Install Postgres
  become: yes
  become_method: sudo
  include_role:
    name: geerlingguy.postgresql
  vars:
    postgresql_version: "12"

@geerlingguy ¿ es posible especificar una versión psql personalizada que se instalará a través de este rol ansible?

Problema

Esta función no admite la instalación de una versión personalizada de PSQL en la plataforma de destino.

Notas

postgresql_version: [OS-specific]
postgresql_data_dir: [OS-specific]
postgresql_bin_path: [OS-specific]
postgresql_config_path: [OS-specific]
postgresql_daemon: [OS-specific]
postgresql_packages: [OS-specific]
---------------------------------------

OS-specific variables that are set by include files in this role's vars
directory. These shouldn't be overridden unless you're using a version
of PostgreSQL that wasn't installed using system packages.

La versión predeterminada de PSQL se define en ./vars/<OS>-<version>.yml , por ejemplo:
https://github.com/geerlingguy/ansible-role-postgresql/blob/master/vars/RedHat-7.yml#L2

Ejemplo

Plataforma:

Libro de jugadas:

---
- hosts: container # src: https://hub.docker.com/r/europ/docker-centos-sshd-systemd
  gather_facts: true
  tasks:
    - block: # workaround, see https://stackoverflow.com/a/56558842
        - name: PSQL installation and configuration
          include_role:
            name: geerlingguy.postgresql
          vars:
            postgresql_users:
              - name: abc
                password: abc
            postgresql_databases:
              - name: xyz
            postgresql_version: "10.4" # override psql-9.2 with custom version (psql-10.4)
      become: true

Resultado:

psql -V
# psql (PostgreSQL) 9.2.24

Lo mismo para mí en debian 10 ...

Hola. No estoy 100% seguro de esto, pero si especifica una versión diferente de PostgreSQL usando postgresql_version , necesita configurar el resto de las variables postgres_ . De lo contrario, utilizará los valores predeterminados de ./vars/<OS>-<version>.yml para las variables que no definió y entrará en conflicto con la versión que desea instalar.

Por ejemplo, en mi entorno de prueba CentOS 6, quería instalar PostgreSQL v9.6. Esa versión de PostgreSQL no se encuentra en los repositorios estándar de CentOS. Creo que la versión más alta de PostgreSQL en los repositorios CentOS estándar es la v8.4. Estos libros de jugadas de Jeff solo usan los repositorios predeterminados. Verifique que la versión de PostgreSQL que desea instalar esté en los repositorios habilitados en su servidor. En mi caso, tuve que instalar los repositorios oficiales de PostgreSQL v9.6 yum antes de configurar el rol:

- name: Install PostgreSQL 9.6 Repository
  yum_repository:
    name: postgresql96
    baseurl: https://download.postgresql.org/pub/repos/yum/9.6/redhat/rhel-$releasever-$basearch
    enabled: True
    file: postgresql96
    description: PostgreSQL 9.6 for RHEL/CentOS $releasever - $basearch
    gpgcheck: False

Agregué las siguientes variables a ./vars/main.yml NOTA: Este archivo no existía y tenía que ser creado. Además, tenga en cuenta que las siguientes variables solo funcionan en distribuciones basadas en RHEL. Estos serán diferentes para las distribuciones basadas en Debian.

postgres_users_no_log: false # not needed; enabled for troubleshooting
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
postgresql_packages:
  - postgresql96
  - postgresql96-libs
  - postgresql96-server

Una vez que haya definido todas estas variables, es de esperar que también funcione para usted.

nota para postgresql 10, primero debe agregar el repositorio correcto

Para mí, también instala ciegamente postgres 13 cuando se especifica postgresql_version: 12

La versión no cambia porque está endurecida allí, por ejemplo:

He creado el número 156, espero que se apruebe y se fusione. Mientras tanto, se puede usar con ansible-galaxy install aviatrix.postgresql

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 se ha cerrado por inactividad. Si cree que se trata de un error, vuelva a abrir el problema o presente un nuevo problema con los detalles relevantes.

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

Temas relacionados

worldofchris picture worldofchris  ·  8Comentarios

breml picture breml  ·  9Comentarios

FilBot3 picture FilBot3  ·  18Comentarios

svanschalkwyk picture svanschalkwyk  ·  6Comentarios

NiftyMist picture NiftyMist  ·  5Comentarios