ANXS.postgresql

ANXS - PostgreSQL Status budowy


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:

Opinie, zgłoszenia błędów, prośby, ...

mile widziane!

O projekcie

Install and configure PostgreSQL, dependencies, extensions, databases and users.

Zainstaluj
ansible-galaxy install ANXS.postgresql
Licencja
mit
Pobrania
525.1k
Właściciel
DevOPS/System and network engineer, cyber-security lover. Blockchain enthusiast!