silverlogic.postgresql
ANXS - PostgreSQL 
Pomoc potrzebna! Jeśli możesz i chcesz pomóc w utrzymaniu tej roli Ansible, otwórz zgłoszenie na GitHubie. Wiele osób korzysta z tej roli i (oczywiście) potrzebujemy wsparcia! 💖
Rola Ansible, która instaluje i konfiguruje PostgreSQL, rozszerzenia, bazy danych i użytkowników.
Instalacja
To zostało przetestowane na Ansible 2.4.0 i wyższych.
Aby zainstalować:
ansible-galaxy install ANXS.postgresql
Przykładowy plik playbook
Oto przykład, jak używać tej roli:
- hosts: postgresql-server
become: yes
roles:
- { role: anxs.postgresql }
Zależności
- ANXS.monit (Galaxy/GH), jeśli chcesz mieć ochronę monit (w takim przypadku ustaw
monit_protection: true
)
Macierz kompatybilności
Dystrybucja / PostgreSQL | <= 9.3 | 9.4 | 9.5 | 9.6 | 10 | 11 | 12 |
---|---|---|---|---|---|---|---|
Ubuntu 14.04 | :no_entry: | :no_entry: | :no_entry: | :no_entry: | :no_entry: | :no_entry: | :no_entry: |
Ubuntu 16.04 | :no_entry: | :white_check_mark: | :white_check_mark: | :white_check_mark: | :white_check_mark: | :white_check_mark: | :white_check_mark: |
Debian 8.x | :no_entry: | :white_check_mark: | :white_check_mark: | :white_check_mark: | :white_check_mark: | :white_check_mark: | :white_check_mark: |
Debian 9.x | :no_entry: | :white_check_mark: | :white_check_mark: | :white_check_mark: | :white_check_mark: | :white_check_mark: | :white_check_mark: |
CentOS 6.x | :no_entry: | :white_check_mark: | :white_check_mark: | :white_check_mark: | :white_check_mark: | :white_check_mark: | :white_check_mark: |
CentOS 7.x | :no_entry: | :white_check_mark: | :white_check_mark: | :white_check_mark: | :white_check_mark: | :white_check_mark: | :white_check_mark: |
CentOS 8.x | :no_entry: | :grey_question: | :grey_question: | :grey_question: | :grey_question: | :grey_question: | :grey_question: |
Fedora latest | :no_entry: | :x: | :x: | :x: | :x: | :x: | :x: |
- :white_check_mark: - testowane, działa dobrze
- :warning: - Nie do użytku produkcyjnego
- :grey_question: - może działać w przyszłości (pomóż, jeśli możesz)
- :interrobang: - może działać, nie testowane
- :no_entry: - osiągnęło koniec wsparcia (EOL)
Zmienne
# Ustawienia podstawowe
postgresql_version: 12
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_service_enabled: false # czy usługa powinna być włączona, domyślnie true
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 zainstalowania rozszerzenia hstore w tej bazie danych (tak/nie)
uuid_ossp: yes # flaga do zainstalowania rozszerzenia uuid-ossp w tej bazie danych (tak/nie)
citext: yes # flaga do zainstalowania rozszerzenia citext w tej bazie danych (tak/nie)
encoding: "UTF-8" # nadpisanie globalnej zmiennej {{ postgresql_encoding }} dla danej bazy danych
lc_collate: "en_GB.UTF-8" # nadpisanie globalnej zmiennej {{ postgresql_locale }} dla danej bazy danych
lc_ctype: "en_GB.UTF-8" # nadpisanie globalnej zmiennej {{ postgresql_ctype }} dla danej 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ć szyfrowane, postgresql >= 10 przyjmuje tylko zaszyfrowane hasła
# 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 łańcucha uprawnień: przykład: INSERT,UPDATE/ tabela: SELECT/ inna tabela: ALL
role_attr_flags: "CREATEDB" # flagi atrybutów roli
Jest o wiele więcej ustawień, które można skonfigurować, a więcej informacji znajdziesz w defaults/main.yml.
Testowanie
Projekt ten zawiera plik Vagrantfile, co jest szybkim i łatwym sposobem na przetestowanie zmian w roli, uruchom go polecenie vagrant up
.
Zobacz dokumentację vagrant aby dowiedzieć się jak skonfigurować Vagranta.
Gdy Twoja maszyna wirtualna będzie uruchomiona, możesz ją ponownie skonfigurować używając either vagrant provision
, lub ansible-playbook tests/playbook.yml -i vagrant-inventory
.
Jeśli chcesz poeksperymentować z plikiem testowym, zobacz tests/playbook.yml oraz zmień zmienne w tests/vars.yml.
Jeśli wnosisz swoją pomoc, najpierw przetestuj swoje zmiany w środowisku vagrant (używając docelowej dystrybucji) i, jeśli to możliwe, upewnij się, że Twoja zmiana jest zawarta w testach znajdujących się w .travis.yml.
Licencja
Licencjonowane na podstawie licencji MIT. Zobacz plik LICENSE po szczegóły.
Podziękowania
Twórca:
Utrzymujący:
Najwięksi współpracownicy:
Opinie, zgłaszanie błędów, żądania...
Są mile widziane!
Install and configure PostgreSQL, dependencies, extensions, databases and users.
ansible-galaxy install silverlogic.postgresql