geerlingguy.postgresql

Ansible Rolle: PostgreSQL

CI

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.

Über das Projekt

PostgreSQL server for Linux.

Installieren
ansible-galaxy install geerlingguy.postgresql
Lizenz
mit
Downloads
3.3M
Besitzer
Father, author, developer, maker. Sometimes called "an inflammatory enigma". #stl #drupal #ansible #k8s #raspberrypi #crohns