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 totype, database, user, auth_method
, opcjonalne toaddress, 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
ansible-galaxy install enix.postgresql