ANXS.postgresql

ANXS - PostgreSQL Build Status


Hilfe benötigt! Wenn Sie in der Lage und bereit sind, diese Ansible-Rolle zu warten, öffnen Sie bitte ein GitHub-Problem. Viele Leute scheinen diese Rolle zu verwenden, und wir (offensichtlich) benötigen Unterstützung! 💖


Ansible-Rolle, die PostgreSQL, Erweiterungen, Datenbanken und Benutzer installiert und konfiguriert.

Installation

Dies wurde auf Ansible 2.4.0 und höher getestet.

Um zu installieren:

ansible-galaxy install anxs.postgresql

Beispiel-Playbook

Ein Beispiel, wie man diese Rolle einbindet:

---
- hosts: postgresql-server
  roles:
    - role: ANXS.postgresql
      become: yes

Ein Beispiel, wie man diese Rolle als Aufgabe einbindet:

---
- hosts: postgresql-server
  tasks:
    - block: # workaround, siehe https://stackoverflow.com/a/56558842
        - name: PSQL-Installation und Konfiguration
          include_role:
            name: ANXS.postgresql
          vars:
            postgresql_users:
              - name: abc
                password: abc
      become: true

Abhängigkeiten

  • ANXS.monit (Galaxy/GH), wenn Sie monit-Schutz möchten (in diesem Fall sollten Sie monit_protection: true setzen)

Kompatibilitätstabelle

Distribution / PostgreSQL 11 12 13 14 15 16
Debian 11.x :no_entry: :white_check_mark: :white_check_mark: :white_check_mark: :white_check_mark: :white_check_mark:
Debian 12.x :no_entry: :white_check_mark: :white_check_mark: :white_check_mark: :white_check_mark: :white_check_mark:
Rockylinux 8.x :no_entry: :white_check_mark: :white_check_mark: :white_check_mark: :white_check_mark: :white_check_mark:
Rockylinux 9.x :no_entry: :white_check_mark: :white_check_mark: :white_check_mark: :white_check_mark: :white_check_mark:
Ubuntu 20.04.x :no_entry: :white_check_mark: :white_check_mark: :white_check_mark: :white_check_mark: :white_check_mark:
Ubuntu 22.04.x :no_entry: :white_check_mark: :white_check_mark: :white_check_mark: :white_check_mark: :white_check_mark:
  • :white_check_mark: - getestet, funktioniert gut
  • :warning: - nicht für den Produktionsgebrauch
  • :grey_question: - wird in Zukunft funktionieren (helfen Sie, wenn Sie können)
  • :interrobang: - möglicherweise funktioniert es, nicht getestet
  • :no_entry: - hat das Ende der Lebensdauer (EOL) erreicht

Variablen

# Grundlegende Einstellungen
postgresql_version: 16
postgresql_encoding: "UTF-8"
postgresql_locale: "de_DE.UTF-8"
postgresql_ctype: "de_DE.UTF-8"

postgresql_admin_user: "postgres"
postgresql_default_auth_method: "peer"

postgresql_cluster_name: main
postgresql_cluster_reset: false

# Liste der zu erstellenden Datenbanken (optional)
# Hinweis: Für mehr Flexibilität mit Erweiterungen verwenden Sie die Einstellung postgresql_database_extensions.
postgresql_databases:
  - name: foobar
    owner: baz          # optional; Eigentümer der Datenbank angeben
    hstore: yes         # Flag zur Installation der hstore-Erweiterung für diese Datenbank (ja/nein)
    uuid_ossp: yes      # Flag zur Installation der uuid-ossp-Erweiterung für diese Datenbank (ja/nein)
    citext: yes         # Flag zur Installation der citext-Erweiterung für diese Datenbank (ja/nein)
    encoding: "UTF-8"   # globale {{ postgresql_encoding }}-Variable pro Datenbank überschreiben
    state: "present"    # optional; einer von 'present', 'absent', 'dump', 'restore'
    lc_collate: "de_DE.UTF-8"   # globale {{ postgresql_locale }}-Variable pro Datenbank überschreiben
    lc_ctype: "de_DE.UTF-8"     # globale {{ postgresql_ctype }}-Variable pro Datenbank überschreiben

# Liste der zu erstellenden Datenbankerweiterungen (optional)
postgresql_database_extensions:
  - db: foobar
    extensions:
      - hstore
      - citext

# Liste der zu erstellenden Benutzer (optional)
postgresql_users:
  - name: baz
    pass: pass
    encrypted: yes  # wenn das Passwort verschlüsselt sein soll, akzeptiert PostgreSQL >= 10 nur verschlüsselte Passwörter
    state: "present"    # optional; einer von 'present', 'absent'

# Liste der zu erstellenden Schemata (optional)
postgresql_database_schemas:
  - database: foobar           # Datenbankname
    schema: acme               # Schema-Name
    state: present

  - database: foobar           # Datenbankname
    schema: acme_baz           # Schema-Name
    owner: baz                 # Eigentümernamen
    state: present

# Liste der Benutzerprivilegien, die angewendet werden sollen (optional)
postgresql_user_privileges:
  - name: baz                   # Benutzername
    db: foobar                  # Datenbank
    priv: "ALL"                 # Privilegienformat: Beispiel: INSERT,UPDATE/tabelle:SELECT/andersere Tabelle:ALL
    role_attr_flags: "CREATEDB" # Rolleneigenschaftsflags

Es gibt noch viele weitere Einstellungen, die Sie in der defaults/main.yml finden können.

Testen - Molecule

Dieses Projekt kommt mit einer Molekülkonfiguration. Bitte siehe ./molecule/README.md

Beispiele:

molecule test

Testen - Vagrant

Dieses Projekt kommt mit einer Vagrantdatei, dies ist ein schneller und einfacher Weg, um Änderungen an der Rolle zu testen, starten Sie es mit vagrant up

Siehe Vagrant-Dokumentation für die Einrichtung mit Vagrant.

Sobald Ihre VM läuft, können Sie sie entweder mit vagrant provision oder mit ansible-playbook tests/playbook.yml -i vagrant-inventory neu bereitstellen.

Wenn Sie mit dem Testplay experimentieren möchten, siehe tests/playbook.yml und ändern Sie die Variablen in tests/vars.yml.

Wenn Sie beitragen möchten, testen Sie bitte zuerst Ihre Änderungen in der Vagrant-Umgebung (mit der entsprechenden Distribution) und stellen Sie sicher, dass Ihre Änderung, wenn möglich, in den Tests, die in .travis.yml zu finden sind, abgedeckt ist.

Lizenz

Lizenziert unter der MIT-Lizenz. Siehe die LICENSE-Datei für Details.

Dank

Creator:

Betreuer:

Top-Beitragsleistende:

Feedback, Fehlerberichte, Anfragen, ...

sind willkommen!

Über das Projekt

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

Installieren
ansible-galaxy install ANXS.postgresql
GitHub Repository
Lizenz
mit
Downloads
525.1k
Besitzer
DevOPS/System and network engineer, cyber-security lover. Blockchain enthusiast!