nephosolutions.postgresql
NephoSolutions - Ansible-Rolle PostgreSQL
Ansible-Rolle, die PostgreSQL, Erweiterungen, Datenbanken und Benutzer installiert und konfiguriert.
Fork von ANXS/postgresql
Installation
Dies wurde mit Ansible Version 2.4.0 und höher getestet.
Um zu installieren:
ansible-galaxy install ANXS.postgresql
Beispiel-Playbook
Hier ist ein Beispiel, wie man die Rolle verwendet:
- hosts: postgresql-server
become: yes
roles:
- { role: anxs.postgresql }
Abhängigkeiten
- ANXS.monit (Galaxy/GH), wenn Sie Monit-Schutz wollen. (In diesem Fall sollten Sie
monit_protection: true
setzen)
Kompatibilitätstabelle
Distribution / PostgreSQL | <= 9.3 | 9.4 | 9.5 | 9.6 | 10 | 11 | 12 |
---|---|---|---|---|---|---|---|
Ubuntu 14.04 | :no_entry: | :white_check_mark: | :white_check_mark: | :white_check_mark: | :white_check_mark: | :white_check_mark: | :grey_question: |
Ubuntu 16.04 | :no_entry: | :white_check_mark: | :white_check_mark: | :white_check_mark: | :white_check_mark: | :white_check_mark: | :grey_question: |
Debian 8.x | :no_entry: | :white_check_mark: | :white_check_mark: | :white_check_mark: | :white_check_mark: | :white_check_mark: | :grey_question: |
Debian 9.x | :no_entry: | :white_check_mark: | :white_check_mark: | :white_check_mark: | :white_check_mark: | :white_check_mark: | :grey_question: |
CentOS 6.x | :no_entry: | :white_check_mark: | :white_check_mark: | :white_check_mark: | :white_check_mark: | :white_check_mark: | :grey_question: |
CentOS 7.x | :no_entry: | :white_check_mark: | :white_check_mark: | :white_check_mark: | :white_check_mark: | :white_check_mark: | :grey_question: |
CentOS 8.x | :no_entry: | :grey_question: | :grey_question: | :grey_question: | :grey_question: | :grey_question: | :grey_question: |
Fedora aktuell | :no_entry: | :x: | :x: | :x: | :x: | :x: | :x: |
- :white_check_mark: - getestet, funktioniert gut
- :warning: - Nicht für den produktiven Einsatz
- :grey_question: - wird in Zukunft funktionieren (helfen Sie, wenn Sie können)
- :interrobang: - möglicherweise funktioniert, nicht getestet
- :no_entry: - PostgreSQL hat das End-of-Life erreicht
Variablen
# Grundeinstellungen
postgresql_version: 11
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 # Soll der Dienst aktiviert sein? Standard ist true
postgresql_cluster_name: "main"
postgresql_cluster_reset: false
# Liste von Datenbanken, die erstellt werden sollen (optional)
# Hinweis: Für mehr Flexibilität mit Erweiterungen verwenden Sie die Einstellung postgresql_database_extensions.
postgresql_databases:
- name: foobar
owner: baz # optional; der Besitzer der Datenbank
hstore: yes # Flag für die Installation der Hstore-Erweiterung in dieser Datenbank (ja/nein)
uuid_ossp: yes # Flag für die Installation der UUID-OSSP-Erweiterung in dieser Datenbank (ja/nein)
citext: yes # Flag für die Installation der Citext-Erweiterung in dieser Datenbank (ja/nein)
encoding: "UTF-8" # globale {{ postgresql_encoding }}-Variable pro Datenbank überschreiben
lc_collate: "en_GB.UTF-8" # globale {{ postgresql_locale }}-Variable pro Datenbank überschreiben
lc_ctype: "en_GB.UTF-8" # globale {{ postgresql_ctype }}-Variable pro Datenbank überschreiben
# Liste von Datenbankerweiterungen, die erstellt werden sollen (optional)
postgresql_database_extensions:
- db: foobar
extensions:
- hstore
- citext
# Liste von Benutzern, die erstellt werden sollen (optional)
postgresql_users:
- name: baz
pass: pass
encrypted: yes # ob das Passwort verschlüsselt werden soll, PostgreSQL >= 10 akzeptiert nur verschlüsselte Passwörter
# Liste von Schemata, die erstellt werden sollen (optional)
postgresql_database_schemas:
- database: foobar # Datenbankname
schema: acme # Schemata
state: present
- database: foobar # Datenbankname
schema: acme_baz # Schemata
owner: baz # Besitzername
state: present
# Liste von Benutzerberechtigungen, die angewendet werden sollen (optional)
postgresql_user_privileges:
- name: baz # Benutzername
db: foobar # Datenbank
priv: "ALL" # Berechtigungsformat: zum Beispiel: INSERT,UPDATE/tabelle:SELECT/andereTabelle:ALL
role_attr_flags: "CREATEDB" # Rolleneigenschaftsflags
Es gibt viele weitere Einstellungen, die Sie in der defaults/main.yml finden können.
Testen
Dieses Projekt kommt mit einer Vagrantdatei, das ist eine schnelle und einfache Möglichkeit, Ä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 ansible-playbook tests/playbook.yml -i vagrant-inventory
erneut bereitstellen.
Wenn Sie mit dem Testspiel experimentieren möchten, sehen Sie sich tests/playbook.yml an und ändern Sie die Variablen in tests/vars.yml.
Wenn Sie beitragen möchten, testen Sie bitte zuerst Ihre Änderungen in der Vagrant-Umgebung (unter Verwendung der angestrebten Distribution), und wenn möglich, stellen Sie sicher, dass Ihre Änderungen in den in .travis.yml gefundenen Tests abgedeckt sind.
Lizenz
Lizenz unter der MIT-Lizenz. Siehe die LICENSE-Datei für Details.
Danke
Ersteller:
Betreuer:
Top-Mitwirkende:
Feedback, Fehlerberichte, Anfragen, ...
Sind willkommen!
"Install and configure PostgreSQL, dependencies, extensions, databases and users." "Forked from https://github.com/ANXS/postgresql"
ansible-galaxy install nephosolutions.postgresql