geerlingguy.postgresql
Ansible Rolle: PostgreSQL
Installiert und konfiguriert den PostgreSQL-Server auf RHEL/CentOS oder Debian/Ubuntu-Servern.
Anforderungen
Es gibt keine speziellen Anforderungen; beachten Sie, dass diese Rolle Root-Zugriff benötigt. Führen Sie sie entweder in einem Playbook mit become: yes
aus oder rufen Sie die Rolle in Ihrem Playbook wie folgt auf:
- hosts: database
roles:
- rolle: geerlingguy.postgresql
become: ja
Rollenvariablen
Verfügbare Variablen sind unten aufgeführt, zusammen mit den Standardwerten (siehe defaults/main.yml
):
postgresql_enablerepo: ""
(Nur RHEL/CentOS) Hier können Sie ein Repository für die PostgreSQL-Installation angeben.
postgresql_restarted_state: "restarted"
Stellt den Zustand des Dienstes ein, wenn Konfigurationsänderungen vorgenommen werden. Empfohlene Werte sind restarted
oder reloaded
.
postgresql_python_library: python-psycopg2
Bibliothek, die von Ansible verwendet wird, um mit PostgreSQL zu kommunizieren. Wenn Sie Python 3 verwenden (z.B. über ansible_python_interpreter
), sollten Sie dies in python3-psycopg2
ändern.
postgresql_user: postgres
postgresql_group: postgres
Der Benutzer und die Gruppe, unter denen PostgreSQL läuft.
postgresql_unix_socket_directories:
- /var/run/postgresql
Die Verzeichnisse (in der Regel nur eins, können aber auch mehrere sein), in denen der Socket von PostgreSQL erstellt wird.
postgresql_service_state: started
postgresql_service_enabled: true
Steuert den Zustand des PostgreSQL-Dienstes und ob er beim Booten gestartet werden soll.
postgresql_global_config_options:
- option: unix_socket_directories
value: '{{ postgresql_unix_socket_directories | join(",") }}'
- option: log_directory
value: 'log'
Globale Konfigurationsoptionen, die in postgresql.conf
gesetzt werden. Für PostgreSQL-Versionen älter als 9.3 müssen Sie diese Variable mindestens überschreiben und die option
auf unix_socket_directory
setzen. Wenn Sie den Wert von option: log_directory
auf einen anderen Pfad ändern, wird dieser von der Rolle für Sie erstellt.
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 }
Konfiguriert hostbasierte Authentifizierung Einträge, die in die pg_hba.conf
gesetzt werden. Optionen für Einträge sind:
type
(erforderlich)database
(erforderlich)user
(erforderlich)address
(eine dieser oder die folgenden zwei sind erforderlich)ip_address
ip_mask
auth_method
(erforderlich)auth_options
(optional)
Wenn Sie überschreiben, stellen Sie sicher, dass Sie alle bestehenden Einträge aus defaults/main.yml
kopieren, wenn Sie bestehende Einträge beibehalten möchten.
postgresql_locales:
- 'en_US.UTF-8'
(Nur Debian/Ubuntu) Wird verwendet, um die von PostgreSQL-Datenbanken verwendeten Lokalisierungen zu generieren.
postgresql_databases:
- name: exampledb # erforderlich; der Rest ist optional
lc_collate: # standardmäßig 'en_US.UTF-8'
lc_ctype: # standardmäßig 'en_US.UTF-8'
encoding: # standardmäßig 'UTF-8'
template: # standardmäßig 'template0'
login_host: # standardmäßig 'localhost'
login_password: # standardmäßig nicht gesetzt
login_user: # standardmäßig 'postgresql_user'
login_unix_socket: # standardmäßig 1. der postgresql_unix_socket_directories
port: # standardmäßig nicht gesetzt
owner: # standardmäßig postgresql_user
state: # standardmäßig 'present'
Eine Liste von Datenbanken, die auf dem Server vorhanden sein sollen. Nur der name
ist erforderlich; alle anderen Eigenschaften sind optional.
postgresql_users:
- name: jdoe # erforderlich; der Rest ist optional
password: # standardmäßig nicht gesetzt
encrypted: # standardmäßig nicht gesetzt
priv: # standardmäßig nicht gesetzt
role_attr_flags: # standardmäßig nicht gesetzt
db: # standardmäßig nicht gesetzt
login_host: # standardmäßig 'localhost'
login_password: # standardmäßig nicht gesetzt
login_user: # standardmäßig '{{ postgresql_user }}'
login_unix_socket: # standardmäßig 1. der postgresql_unix_socket_directories
port: # standardmäßig nicht gesetzt
state: # standardmäßig 'present'
Eine Liste von Benutzern, die auf dem Server vorhanden sein sollen. Nur der name
ist erforderlich; alle anderen Eigenschaften sind optional.
postgres_users_no_log: true
Ob Benutzerdaten (die sensible Informationen wie Passwörter enthalten können) beim Verwalten von Benutzern ausgegeben werden sollen.
postgresql_version: [betriebsystemspezifisch]
postgresql_data_dir: [betriebsystemspezifisch]
postgresql_bin_path: [betriebsystemspezifisch]
postgresql_config_path: [betriebsystemspezifisch]
postgresql_daemon: [betriebsystemspezifisch]
postgresql_packages: [betriebsystemspezifisch]
Betriebssystemspezifische Variablen, die von Include-Dateien im vars
-Verzeichnis dieser Rolle gesetzt werden. Diese sollten nicht überschrieben werden, es sei denn, Sie verwenden eine Version von PostgreSQL, die nicht mit Systempaketen installiert wurde.
Abhängigkeiten
Keine.
Beispiel-Playbook
- hosts: database
become: ja
vars_files:
- vars/main.yml
roles:
- geerlingguy.postgresql
Innerhalb von vars/main.yml
:
postgresql_databases:
- name: example_db
postgresql_users:
- name: example_user
password: supersecure
Lizenz
MIT / BSD
Autorinformationen
Diese Rolle wurde 2016 von Jeff Geerling erstellt, Autor von Ansible for DevOps.
ansible-galaxy install geerlingguy.postgresql