ANXS.postgresql
ANXS - PostgreSQL 
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:
- David Farrington
- Jesse Lang
- Michael Conrad
- Sébastien Alix
- Copperfield
- T. Soulabail
- Ralph von der Heyden
Feedback, Fehlerberichte, Anfragen, ...
sind willkommen!
Install and configure PostgreSQL, dependencies, extensions, databases and users.
ansible-galaxy install ANXS.postgresql