silverlogic.postgresql

ANXS - PostgreSQL Statut de Construction


Aide Requise ! Si vous êtes en mesure et souhaitez aider à maintenir ce rôle Ansible, veuillez ouvrir un problème sur GitHub. Beaucoup de personnes semblent utiliser ce rôle et nous avons (évidemment) besoin d'aide ! 💖


Rôle Ansible qui installe et configure PostgreSQL, les extensions, les bases de données et les utilisateurs.

Installation

Cela a été testé sur Ansible 2.4.0 et supérieur.

Pour installer :

ansible-galaxy install ANXS.postgresql

Exemple de Playbook

Voici un exemple d'utilisation de votre rôle :

- hosts: postgresql-server
  become: yes
  roles:
     - { role: anxs.postgresql }

Dépendances

  • ANXS.monit (Galaxy/GH) si vous souhaitez une protection monit (dans ce cas, vous devez définir monit_protection: true)

Matrice de compatibilité

Distribution / PostgreSQL <= 9.3 9.4 9.5 9.6 10 11 12
Ubuntu 14.04 :no_entry: :no_entry: :no_entry: :no_entry: :no_entry: :no_entry: :no_entry:
Ubuntu 16.04 :no_entry: :white_check_mark: :white_check_mark: :white_check_mark: :white_check_mark: :white_check_mark: :white_check_mark:
Debian 8.x :no_entry: :white_check_mark: :white_check_mark: :white_check_mark: :white_check_mark: :white_check_mark: :white_check_mark:
Debian 9.x :no_entry: :white_check_mark: :white_check_mark: :white_check_mark: :white_check_mark: :white_check_mark: :white_check_mark:
CentOS 6.x :no_entry: :white_check_mark: :white_check_mark: :white_check_mark: :white_check_mark: :white_check_mark: :white_check_mark:
CentOS 7.x :no_entry: :white_check_mark: :white_check_mark: :white_check_mark: :white_check_mark: :white_check_mark: :white_check_mark:
CentOS 8.x :no_entry: :grey_question: :grey_question: :grey_question: :grey_question: :grey_question: :grey_question:
Fedora dernière version :no_entry: :x: :x: :x: :x: :x: :x:
  • :white_check_mark: - testé, fonctionne correctement
  • :warning: - Pas pour une utilisation en production
  • :grey_question: - fonctionnera à l'avenir (aidez si vous le pouvez)
  • :interrobang: - peut fonctionner, pas testé
  • :no_entry: - A atteint la fin de la vie (EOL)

Variables

# Paramètres de base
postgresql_version: 12
postgresql_encoding: "UTF-8"
postgresql_locale: "en_US.UTF-8"
postgresql_ctype: "en_US.UTF-8"

postgresql_admin_user: "postgres"
postgresql_default_auth_method: "peer"

postgresql_service_enabled: false # le service doit-il être activé, par défaut c'est vrai

postgresql_cluster_name: "main"
postgresql_cluster_reset: false

# Liste des bases de données à créer (facultatif)
# Remarque : pour plus de flexibilité avec les extensions, utilisez le paramètre postgresql_database_extensions.
postgresql_databases:
  - name: foobar
    owner: baz          # facultatif ; spécifiez le propriétaire de la base de données
    hstore: yes         # indicateur pour installer l'extension hstore sur cette base de données (oui/non)
    uuid_ossp: yes      # indicateur pour installer l'extension uuid-ossp sur cette base de données (oui/non)
    citext: yes         # indicateur pour installer l'extension citext sur cette base de données (oui/non)
    encoding: "UTF-8"   # remplacer la variable globale {{ postgresql_encoding }} par base de données
    lc_collate: "en_GB.UTF-8"   # remplacer la variable globale {{ postgresql_locale }} par base de données
    lc_ctype: "en_GB.UTF-8"     # remplacer la variable globale {{ postgresql_ctype }} par base de données

# Liste des extensions de base de données à créer (facultatif)
postgresql_database_extensions:
  - db: foobar
    extensions:
      - hstore
      - citext

# Liste des utilisateurs à créer (facultatif)
postgresql_users:
  - name: baz
    pass: pass
    encrypted: yes  # si le mot de passe doit être crypté, postgresql >= 10 n'accepte que les mots de passe cryptés

# Liste des schémas à créer (facultatif)
postgresql_database_schemas:
  - database: foobar           # nom de la base de données
    schema: acme               # nom du schéma
    state: present

  - database: foobar           # nom de la base de données
    schema: acme_baz           # nom du schéma
    owner: baz                 # nom du propriétaire
    state: present

# Liste des privilèges utilisateur à appliquer (facultatif)
postgresql_user_privileges:
  - name: baz                   # nom d'utilisateur
    db: foobar                  # base de données
    priv: "ALL"                 # format de chaîne de privilège : exemple : INSERT,UPDATE/ma_table:SELECT/une_autre_table:ALL
    role_attr_flags: "CREATEDB" # indicateurs d'attribut de rôle

Il y a encore beaucoup de paramètres à définir, que vous pouvez trouver dans le fichier defaults/main.yml

Tests

Ce projet vient avec un Vagrantfile, c'est une façon rapide et facile de tester les changements apportés au rôle, lancez-le avec vagrant up

Consultez la documentation de vagrant pour configurer vagrant

Une fois votre VM en marche, vous pouvez la reprovisionner avec vagrant provision, ou ansible-playbook tests/playbook.yml -i vagrant-inventory

Si vous souhaitez jouer avec le test de jeu, voyez tests/playbook.yml, et changez les variables dans tests/vars.yml

Si vous contribuez, testez d'abord vos modifications dans l'environnement vagrant (en utilisant la distribution ciblée), et si possible, assurez-vous que votre modification est couverte dans les tests trouvés dans .travis.yml

Licence

Sous licence MIT. Voir le fichier LICENSE pour plus de détails.

Remerciements

Créateur :

Mainteneurs :

Contributeurs principaux :

Retours, rapports de bugs, demandes, ...

Sont bienvenus!

À propos du projet

Install and configure PostgreSQL, dependencies, extensions, databases and users.

Installer
ansible-galaxy install silverlogic.postgresql
Licence
mit
Téléchargements
7.2k
Propriétaire