enix.postgresql
enix.postgresql
Eine Rolle zum Bereitstellen und Konfigurieren der PostgreSQL Upstream-Version auf Unix-Hosts mit Ansible.
Anforderungen
Unterstützte Zielsysteme:
- Debian 9 "Stretch"
- Debian 10 "Buster"
- Debian 11 "Bullseye"
- Ubuntu 20.04 "Focal"
- Ubuntu 22.04 "Jammy"
Rollenvariablen
Diese Rolle kommt mit fast allen verfügbaren Standardeinstellungen. Sie können jede einzelne in Ihren Host-/Gruppen-Variablen, in Ihrem Inventar oder in Ihrem Play-Book überschreiben. Siehe die kommentierten Standardwerte in defaults/main.yml
für Hilfe bei der Konfiguration.
postgresql__version
- Die PostgreSQL-Version, die installiert werden soll. Standardwert ist 14. Verfügbar: 10, 11, 12, 13, 14.postgresql__extensions
- PostgreSQL-Erweiterungspakete, die installiert werden sollen.postgresql__global_config_options
- Globale Konfigurationsoptionen, die in die postgresql.conf eingetragen werden sollen. Häufige Optionen sind:
postgresql__global_config_options:
- option: listen_addresses
value: '*'
- option: log_min_duration_statement
value: 1000
- option: bonjour
value: off
state: absent
postgresql__includeconf
- Liste von Konfigurationsdateien, die erstellt und in conf.d/ übertragen werden sollen.postgresql__hba_entries
- Hostbasierte Authentifizierungseinträge, die konfiguriert werden sollen. Diese überschreiben die Standardwerte von PostgreSQL. Standardmäßig nicht definiert. Obligatorische Felder sindtype, database, user, auth_method
, optional sindaddress, ip_address, ip_mask, auth_options
. Um die vom Paket bereitgestellte Konfiguration zu replizieren:
postgresql_hba_entries:
- {type: local, database: all, user: postgres, auth_method: peer}
- {type: local, database: all, user: all, auth_method: peer}
- {type: host, database: all, user: all, address: '127.0.0.1/32', auth_method: md5}
- {type: host, database: all, user: all, address: '::1/128', auth_method: md5}
# Ab Version 10 gibt es die Rolle für die Replikation
- {type: local, database: replication, user: all, auth_method: peer}
- {type: host, database: replication, user: all, address: '127.0.0.1/32', auth_method: md5}
- {type: host, database: replication, user: all, address: '::1/128', auth_method: md5}
postgresql__users
- Benutzer, die auf dem PostgreSQL-Server erstellt werden sollen, sowie die zugehörigen Anmeldeinformationen:
postgresql__users:
- {name: "foobar",
password: "supersecure",
encrypted: ja,
expires: 'unendlich',
state: 'present',
conn_limit: keine,
priv: keine,
role_attr_flags: keine,
db: keine
postgresql__databases
- Zustand der Datenbanken, die auf dem Server installiert werden sollen. Das einzige obligatorische Parameter ist der Name:
postgresql__databases:
- {name: test,
lc_collate: 'en_US.UTF-8',
lc_ctype: 'en_US.UTF-8',
encoding: 'UTF-8',
template: 'template0',
owner: postgres,
extension: [], # Stellen Sie sicher, dass Sie das benötigte Erweiterungsmodul vorher installiert haben
state: 'present'
}
postgresql__install_pgbackrest
- Installiert die pgbackrest-Software https://pgbackrest.org.postgresql__install_pg_auto_failover
- Installiert die pg_auto_failover-Software https://github.com/citusdata/pg_auto_failover.postgresql__disable_initdb
- Deaktiviert die Erstellung des standardmäßigen Hauptclusters. Nützlich beim Erstellen eines pg_auto_failover-Clusters oder einfach bei der Installation des Pakets.
Abhängigkeiten
- Keine
Verwendung
Verwenden Sie Ansible Galaxy requirements.yml
- src: enix.postgresql
Und fügen Sie es zu den Rollen Ihres Plays hinzu:
- hosts: all
roles:
- role: enix.postgresql:
postgresql__var: true
Sie können die Rolle auch als Playbook verwenden. Sie werden gefragt, welche Hosts bereitgestellt werden sollen, und Sie können das Play weiter konfigurieren, indem Sie --extra-vars
verwenden.
ansible-playbook -i inventory --extra-vars='{...}' main.yml
Noch zu erledigen
- Überprüfen, ob wir auf einem Replica bereitstellen. In diesem Fall keine createdb, createuser ausführen.
- CI-Tests mit Molecule hinzufügen.
Changelog
2.1.0
Installation der pgbackrest- und pg_auto_failover-Software hinzugefügt. Option disable_initdb hinzugefügt. Dies verhindert, dass die Installation den Standard-PostgreSQL-Hauptcluster einrichtet.
2.0.0
Unterstützung für PostgreSQL 13 und 14 hinzugefügt. Unterstützung für Debian 10 Buster und Debian 11 Bullseye hinzugefügt. Unterstützung für Ubuntu 20.04 Focal und Ubuntu 22.04 Jammy hinzugefügt. Unterstützung für Debian Jessie entfernt. Verwendung von Molecule-Tests. Verwendung neuer Ansible FQDN-Aufgaben.
1.2.0
Unterstützung für PostgreSQL 12 hinzugefügt.
1.1.0
Unterstützung für eine Erweiterungsliste in der Datenbankdefinition und -konfiguration hinzugefügt.
1.0.0
Erstverison.
Lizenz
GPLv2
Autor
Laurent CORBES laurent.corbes@enix.fr - http://www.enix.io
ansible-galaxy install enix.postgresql