postgresql

ANXS - PostgreSQL Статус сборки


Нужна помощь! Если вы можете и хотите помочь поддерживать эту Ansible роль, пожалуйста, откройте вопрос на GitHub. Похоже, много людей используют эту роль, и нам (очевидно) нужна помощь! 💖


Ansible роль, которая устанавливает и настраивает PostgreSQL, расширения, базы данных и пользователей.

Установка

Это было протестировано на Ansible 2.4.0 и выше.

Чтобы установить:

ansible-galaxy install anxs.postgresql

Пример плейбука

Пример того, как включить эту роль:

---
- hosts: postgresql-server
  roles:
    - роль: ANXS.postgresql
      become: yes

Пример того, как включить эту роль как задачу:

---
- hosts: postgresql-server
  tasks:
    - block: # обход проблемы, смотрите https://stackoverflow.com/a/56558842
        - name: Установка и настройка PSQL
          include_role:
            name: ANXS.postgresql
          vars:
            postgresql_users:
              - name: abc
                password: abc
      become: true

Зависимости

  • ANXS.monit (Galaxy/GH), если вы хотите защиту monit (в этом случае необходимо установить monit_protection: true)

Совместимость

Дистрибутив / 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: - протестировано, работает хорошо
  • :warning: - не для производственного использования
  • :grey_question: - будет работать в будущем (помогите, если сможете)
  • :interrobang: - возможно работает, не протестировано
  • :no_entry: - достигнут конец жизни (EOL)

Переменные

# Основные настройки
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

# Список баз данных для создания (необязательно)
# Примечание: для большей гибкости с расширениями используйте настройку postgresql_database_extensions.
postgresql_databases:
  - name: foobar
    owner: baz          # необязательно; укажите владельца базы данных
    hstore: yes         # флаг для установки расширения hstore на эту базу данных (yes/no)
    uuid_ossp: yes      # флаг для установки расширения uuid-ossp на эту базу данных (yes/no)
    citext: yes         # флаг для установки расширения citext на эту базу данных (yes/no)
    encoding: "UTF-8"   # переопределить глобальную переменную {{ postgresql_encoding }} для каждой базы данных
    state: "present"    # необязательно; один из 'present', 'absent', 'dump', 'restore'
    lc_collate: "en_GB.UTF-8"   # переопределить глобальную переменную {{ postgresql_locale }} для каждой базы данных
    lc_ctype: "en_GB.UTF-8"     # переопределить глобальную переменную {{ postgresql_ctype }} для каждой базы данных

# Список расширений базы данных для создания (необязательно)
postgresql_database_extensions:
  - db: foobar
    extensions:
      - hstore
      - citext

# Список пользователей для создания (необязательно)
postgresql_users:
  - name: baz
    pass: pass
    encrypted: yes  # если пароль должен быть зашифрован, postgresql >= 10 принимает только зашифрованные пароли
    state: "present"    # необязательно; один из 'present', 'absent'

# Список схем для создания (необязательно)
postgresql_database_schemas:
  - database: foobar           # имя базы данных
    schema: acme               # имя схемы
    state: present

  - database: foobar           # имя базы данных
    schema: acme_baz           # имя схемы
    owner: baz                 # имя владельца
    state: present

# Список привилегий пользователей (необязательно)
postgresql_user_privileges:
  - name: baz                   # имя пользователя
    db: foobar                  # база данных
    priv: "ALL"                 # строка привилегий в формате: пример: INSERT,UPDATE/table:SELECT/anothertable:ALL
    role_attr_flags: "CREATEDB" # флаги атрибутов роли

Существует множество других настроек, которые вы можете найти в defaults/main.yml

Тестирование - Molecule

Этот проект имеет конфигурацию Molecule. Пожалуйста, посмотрите ./molecule/README.md

Примеры:

molecule test

Тестирование - Vagrant

Этот проект имеет Vagrantfile, это быстрый и простой способ протестировать изменения в роли, запустите его с помощью vagrant up

Смотрите документацию vagrant для настройки с vagrant

Как только ваша виртуальная машина будет запущена, вы можете повторно настроить её, используя vagrant provision или ansible-playbook tests/playbook.yml -i vagrant-inventory

Если вы хотите поэкспериментировать с тестовым плейбуком, смотрите tests/playbook.yml и измените переменные в tests/vars.yml

Если вы вносите изменения, сначала протестируйте их в окружении vagrant (используя целевой дистрибутив), и по возможности убедитесь, что ваше изменение покрыто тестами, найденными в .travis.yml

Лицензия

Лицензируется под лицензией MIT. Смотрите файл LICENSE для подробностей.

Благодарности

Создатель:

Поддержка:

Лучшие участники:

Обратная связь, отчеты об ошибках, запросы и т. д.

Пожалуйста, добро пожаловать!

О проекте

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

Установить
ansible-galaxy install MrMegaNova/postgresql
Лицензия
mit
Загрузки
521297
Владелец
DevOPS/System and network engineer, cyber-security lover. Blockchain enthusiast!