enix.postgresql

enix.postgresql

Rola do wdrażania i konfigurowania postgresql na systemach unixowych przy użyciu Ansible.

Wymagania

Obsługiwane systemy:

  • Debian 9 "Stretch"
  • Debian 10 "Buster"
  • Debian 11 "Bullseye"
  • Ubuntu 20.04 "Focal"
  • Ubuntu 22.04 "Jammy"

Zmienne roli

Ta rola zawiera prawie wszystkie dostępne domyślne ustawienia. Możesz je nadpisać w zmiennych hostów/grup, w swoim inwentarzu lub w swoim playu. Zobacz opisy domyślnych ustawień w defaults/main.yml, aby uzyskać pomoc w konfiguracji.

  • postgresql__version - wersja postgresql do zainstalowania. Domyślnie 14. Dostępne: 10, 11, 12, 13, 14.
  • postgresql__extensions - pakiety rozszerzeń postgresql do zainstalowania.
  • postgresql__global_config_options - globalne opcje konfiguracyjne do ustawienia w pliku postgresql.conf. Najczęstsze opcje to:
postgresql__global_config_options:
  - option: listen_addresses
    value: '*'
  - option: log_min_duration_statement
    value: 1000
  - option: bonjour
    value: off
    state: absent
  • postgresql__includeconf - lista plików konfiguracyjnych do szablonowania i wprowadzenia do conf.d/.
  • postgresql__hba_entries - wpisy autoryzacji oparte na hoście do skonfigurowania. Nadpiszą domyślne ustawienia PostgreSQL. Parametry obowiązkowe to type, database, user, auth_method, opcjonalne to address, ip_address, ip_mask, auth_options. Aby skopiować konfigurację dostarczoną z pakietem:
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}
# od wersji 10 istnieje rola replikacji
  - {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 - Użytkownicy do utworzenia na serwerze postgresql i powiązane dane logowania:
postgresql__users:
  - {name: "foobar",
    password: "supersecure",
    encrypted: yes,
    expires: 'infinity',
    state: 'present',
    conn_limit: none,
    priv: none,
    role_attr_flags: none,
    db: none}
  • postgresql__databases - stan baz danych do zainstalowania na serwerze. Jedyne obowiązkowe pole to nazwa:
postgresql__databases:
  - {name: test,
    lc_collate: 'en_US.UTF-8',
    lc_ctype: 'en_US.UTF-8',
    encoding: 'UTF-8',
    template: 'template0',
    owner: postgres,
    extension: [], # upewnij się, że najpierw zainstalowałeś wymagany moduł rozszerzenia
    state: 'present'
   }
  • postgresql__install_pgbackrest - zainstaluj oprogramowanie pgbackrest https://pgbackrest.org.
  • postgresql__install_pg_auto_failover - zainstaluj oprogramowanie pg_auto_failover https://github.com/citusdata/pg_auto_failover.
  • postgresql__disable_initdb - wyłącz tworzenie domyślnego głównego klastra. Przydatne w przypadku tworzenia klastra pg_auto_failover lub po prostu instalacji pakietu.

Zależności

  • Brak

Użycie

Użyj Ansible galaxy requirements.yml

    - src: enix.postgresql

I dodaj to do ról twojego playu:

    - hosts: all
      roles:
        - role: enix.postgresql:
            postgresql__var: true

Możesz także użyć tej roli jako playbooka. Zostaniesz zapytany, które hosty mają być skonfigurowane, a także możesz dalej konfigurować grę za pomocą --extra-vars.

ansible-playbook -i inventory --extra-vars='{...}' main.yml

Co jeszcze do zrobienia

  • Sprawdzić, czy wdrażamy na replikę. W takim przypadku nie tworzyć bazy danych ani użytkownika.
  • Dodaj testy CI używając molecule.

Dziennik zmian

2.1.0

Dodano instalację oprogramowania pgbackrest i pg_auto_failover. Dodano opcję disable_initdb. Zapobiega to utworzeniu domyślnego klastra postgresql.

2.0.0

Dodano wsparcie dla postgresl 13 i 14. Dodano wsparcie dla Debiana 10 Buster i Debiana 11 Bullseye. Dodano wsparcie dla Ubuntu 20.04 Focal i Ubuntu 22.04 Jammy. Usunięto wsparcie dla Debiana Jessie. Przełączono na testy molecule. Użyto nowych zadań FQDN w ansible.

1.2.0

Dodano wsparcie dla postgresql 12.

1.1.0

Dodano wsparcie dla listy rozszerzeń w definicji baz danych i konfiguracji.

1.0.0

Wersja początkowa.

Licencja

GPLv2

Informacje o autorze

Laurent CORBES laurent.corbes@enix.fr - http://www.enix.io

O projekcie

Ansible role to deploy postgresql software

Zainstaluj
ansible-galaxy install enix.postgresql
Licencja
Unknown
Pobrania
19.2k
Właściciel
Enix