Ansible-role-postgresql: Impossible de modifier postgres_version

Créé le 2 sept. 2020  ·  10Commentaires  ·  Source: geerlingguy/ansible-role-postgresql

L'ajout de var postgresql_version : "12" ne change pas la version réelle qui a été installée dans la machine virtuelle avec Ubuntu 18.

stale

Commentaire le plus utile

Bonjour. Je ne suis pas sûr à 100% de cela, mais si vous spécifiez une version différente de PostgreSQL en utilisant postgresql_version , vous devez configurer le reste des variables postgres_ . Sinon, il utilisera les valeurs par défaut de ./vars/<OS>-<version>.yml pour les variables que vous n'avez pas définies et entrera en conflit avec la version que vous souhaitez installer.

Par exemple, dans mon environnement de test CentOS 6, je voulais installer PostgreSQL v9.6. Cette version de PostgreSQL n'est pas dans les référentiels CentOS standard. La version la plus élevée de PostgreSQL dans les référentiels CentOS standard est, je crois, la v8.4. Ces playbooks de Jeff n'utilisent que les référentiels par défaut. Vérifiez que la version de PostgreSQL que vous souhaitez installer se trouve dans les référentiels activés sur votre serveur. Dans mon cas, j'ai dû installer les référentiels officiels PostgreSQL v9.6 yum avant de configurer le rôle :

- 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

J'ai ajouté les variables suivantes à ./vars/main.yml REMARQUE : Ce fichier n'existait pas et devait être créé. Notez également que les variables ci-dessous ne fonctionnent que sur les distributions basées sur RHEL. Celles-ci seront différentes pour les distributions basées sur 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

Une fois que vous avez défini toutes ces variables, cela fonctionnera, espérons-le, pour vous aussi.

Tous les 10 commentaires

J'ai également remarqué cela sur Debian 10

roles/postgres.yml

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

@geerlingguy est-il possible de spécifier une version psql personnalisée qui sera installée via ce rôle ansible ?

Problème

Ce rôle ne prend pas en charge l'installation de la version PSQL personnalisée sur la plate-forme de destination.

Remarques

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 version PSQL par défaut est définie dans ./vars/<OS>-<version>.yml , par exemple :
https://github.com/geerlingguy/ansible-role-postgresql/blob/master/vars/RedHat-7.yml#L2

Exemple

Plate-forme:

Livre de jeu :

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

Résultat:

psql -V
# psql (PostgreSQL) 9.2.24

Idem pour moi sur debian 10....

Bonjour. Je ne suis pas sûr à 100% de cela, mais si vous spécifiez une version différente de PostgreSQL en utilisant postgresql_version , vous devez configurer le reste des variables postgres_ . Sinon, il utilisera les valeurs par défaut de ./vars/<OS>-<version>.yml pour les variables que vous n'avez pas définies et entrera en conflit avec la version que vous souhaitez installer.

Par exemple, dans mon environnement de test CentOS 6, je voulais installer PostgreSQL v9.6. Cette version de PostgreSQL n'est pas dans les référentiels CentOS standard. La version la plus élevée de PostgreSQL dans les référentiels CentOS standard est, je crois, la v8.4. Ces playbooks de Jeff n'utilisent que les référentiels par défaut. Vérifiez que la version de PostgreSQL que vous souhaitez installer se trouve dans les référentiels activés sur votre serveur. Dans mon cas, j'ai dû installer les référentiels officiels PostgreSQL v9.6 yum avant de configurer le rôle :

- 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

J'ai ajouté les variables suivantes à ./vars/main.yml REMARQUE : Ce fichier n'existait pas et devait être créé. Notez également que les variables ci-dessous ne fonctionnent que sur les distributions basées sur RHEL. Celles-ci seront différentes pour les distributions basées sur 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

Une fois que vous avez défini toutes ces variables, cela fonctionnera, espérons-le, pour vous aussi.

note pour postgresql 10, vous devez d'abord ajouter le bon référentiel

Pour moi, il installe également aveuglément postgres 13 lorsque postgresql_version: 12 est spécifié

La version ne change pas car c'est en dur là par exemple :

J'ai créé #156 , j'espère qu'il sera approuvé et fusionné. Pendant ce temps, il peut être utilisé avec ansible-galaxy install aviatrix.postgresql

Ce problème a été marqué « obsolète » en raison du manque d'activité récente. S'il n'y a plus d'activité, le problème sera clos dans 30 jours. Nous vous remercions de votre contribution!

Veuillez lire cet article de blog pour voir les raisons pour lesquelles je marque les problèmes comme obsolètes.

Ce problème a été fermé pour cause d'inactivité. Si vous pensez qu'il s'agit d'une erreur, veuillez rouvrir le problème ou déposer un nouveau problème avec les détails pertinents.

Cette page vous a été utile?
0 / 5 - 0 notes