ANXS.postgresql
ANXS - PostgreSQL 
Potrzebna pomoc! Jeśli masz czas i chęć, aby pomóc w utrzymaniu tej roli Ansible, otwórz proszę zgłoszenie na GitHubie. Wiele osób korzysta z tej roli i (co jest dość oczywiste) potrzebujemy wsparcia! 💖
Rola Ansible, która instaluje i konfiguruje PostgreSQL, rozszerzenia, bazy danych i użytkowników.
Instalacja
To zostało przetestowane na Ansible w wersji 2.4.0 i wyższej.
Aby zainstalować:
ansible-galaxy install anxs.postgresql
Przykładowy Playbook
Przykład, jak dołączyć tę rolę:
---
- hosts: postgresql-server
roles:
- role: ANXS.postgresql
become: yes
Przykład, jak dołączyć tę rolę jako zadanie:
---
- hosts: postgresql-server
tasks:
- block: # obejście, zobacz https://stackoverflow.com/a/56558842
- name: Instalacja i konfiguracja PSQL
include_role:
name: ANXS.postgresql
vars:
postgresql_users:
- name: abc
password: abc
become: true
Zależności
- ANXS.monit (Galaxy/GH), jeśli chcesz ochrony monit (w takim przypadku powinieneś ustawić
monit_protection: true
)
Macierz zgodności
Dystrybucja / PostgreSQL | 11 | 12 | 13 | 14 | 15 | 16 |
---|---|---|---|---|---|---|
Debian 11.x | :no_entry: | :white_check_mark: | :white_check_mark: | :white_check_mark: | :white_check_mark: | :white_check_mark: |
Debian 12.x | :no_entry: | :white_check_mark: | :white_check_mark: | :white_check_mark: | :white_check_mark: | :white_check_mark: |
Rockylinux 8.x | :no_entry: | :white_check_mark: | :white_check_mark: | :white_check_mark: | :white_check_mark: | :white_check_mark: |
Rockylinux 9.x | :no_entry: | :white_check_mark: | :white_check_mark: | :white_check_mark: | :white_check_mark: | :white_check_mark: |
Ubuntu 20.04.x | :no_entry: | :white_check_mark: | :white_check_mark: | :white_check_mark: | :white_check_mark: | :white_check_mark: |
Ubuntu 22.04.x | :no_entry: | :white_check_mark: | :white_check_mark: | :white_check_mark: | :white_check_mark: | :white_check_mark: |
- :white_check_mark: - przetestowane, działa dobrze
- :warning: - nie do użytku produkcyjnego
- :grey_question: - będzie działać w przyszłości (pomóż, jeśli możesz)
- :interrobang: - może działa, nie przetestowane
- :no_entry: - zakończone wsparcie (EOL)
Zmienne
# Podstawowe ustawienia
postgresql_version: 16
postgresql_encoding: "UTF-8"
postgresql_locale: "en_US.UTF-8"
postgresql_ctype: "en_US.UTF-8"
postgresql_admin_user: "postgres"
postgresql_default_auth_method: "peer"
postgresql_cluster_name: main
postgresql_cluster_reset: false
# Lista baz danych do utworzenia (opcjonalnie)
# Uwaga: dla większej elastyczności z rozszerzeniami użyj ustawienia postgresql_database_extensions.
postgresql_databases:
- name: foobar
owner: baz # opcjonalnie; określ właściciela bazy danych
hstore: yes # flaga do instalacji rozszerzenia hstore w tej bazie danych (tak/nie)
uuid_ossp: yes # flaga do instalacji rozszerzenia uuid-ossp w tej bazie danych (tak/nie)
citext: yes # flaga do instalacji rozszerzenia citext w tej bazie danych (tak/nie)
encoding: "UTF-8" # nadpisanie globalnej zmiennej {{ postgresql_encoding }} dla bazy danych
state: "present" # opcjonalnie; jedna z 'present', 'absent', 'dump', 'restore'
lc_collate: "en_GB.UTF-8" # nadpisanie globalnej zmiennej {{ postgresql_locale }} dla bazy danych
lc_ctype: "en_GB.UTF-8" # nadpisanie globalnej zmiennej {{ postgresql_ctype }} dla bazy danych
# Lista rozszerzeń baz danych do utworzenia (opcjonalnie)
postgresql_database_extensions:
- db: foobar
extensions:
- hstore
- citext
# Lista użytkowników do utworzenia (opcjonalnie)
postgresql_users:
- name: baz
pass: pass
encrypted: yes # jeśli hasło powinno być zaszyfrowane, postgresql >= 10 akceptuje tylko zaszyfrowane hasła
state: "present" # opcjonalnie; jedna z 'present', 'absent'
# Lista schematów do utworzenia (opcjonalnie)
postgresql_database_schemas:
- database: foobar # nazwa bazy danych
schema: acme # nazwa schematu
state: present
- database: foobar # nazwa bazy danych
schema: acme_baz # nazwa schematu
owner: baz # nazwa właściciela
state: present
# Lista uprawnień użytkowników do zastosowania (opcjonalnie)
postgresql_user_privileges:
- name: baz # nazwa użytkownika
db: foobar # baza danych
priv: "ALL" # format ciągu uprawnień: np. INSERT,UPDATE/tablica:SELECT/inna_tablica:ALL
role_attr_flags: "CREATEDB" # flagi atrybutów roli
Jest dużo więcej opcji do ustawienia, które znajdziesz w pliku defaults/main.yml
Testowanie - Molecule
Ten projekt zawiera konfigurację molekuli. Zobacz ./molecule/README.md
Przykłady:
molecule test
Testowanie - Vagrant
Ten projekt zawiera Vagrantfile, co jest szybkim i łatwym sposobem na testowanie zmian w roli, uruchom go za pomocą vagrant up
Zobacz dokumentację vagrant aby uzyskać informacje o konfiguracji vagranta.
Gdy twój VM jest gotowy, możesz ponownie go skonfigurować używając vagrant provision
, lub ansible-playbook tests/playbook.yml -i vagrant-inventory
Jeśli chcesz pobawić się w play teście, zobacz tests/playbook.yml i zmień zmienne w tests/vars.yml
Jeśli chcesz coś wnieść, przetestuj swoje zmiany w środowisku vagrant (używając odpowiedniej dystrybucji) i, jeśli to możliwe, upewnij się, że twoje zmiany są pokryte w testach znajdujących się w .travis.yml
Licencja
Licencjonowane na podstawie licencji MIT. Zobacz plik LICENSE dla szczegółów.
Podziękowania
Twórca:
Utrzymujący:
Najwięksi współpracownicy:
- David Farrington
- Jesse Lang
- Michael Conrad
- Sébastien Alix
- Copperfield
- T. Soulabail
- Ralph von der Heyden
Opinie, zgłoszenia błędów, prośby, ...
Są mile widziane!
Install and configure PostgreSQL, dependencies, extensions, databases and users.
ansible-galaxy install ANXS.postgresql