nephosolutions.postgresql
NephoSolutions - Ansible роль PostgreSQL
Ansible роль, которая устанавливает и настраивает PostgreSQL, расширения, базы данных и пользователей.
Сделано на основе ANXS/postgresql
Установка
Эта роль была протестирована на Ansible 2.4.0 и выше.
Чтобы установить:
ansible-galaxy install ANXS.postgresql
Пример Плейбука
Пример, как использовать вашу роль:
    - hosts: postgresql-server
      become: yes
      roles:
         - { role: anxs.postgresql }
Зависимости
- ANXS.monit (Galaxy/GH), если вы хотите защиту monit (в этом случае, установите monit_protection: true)
Матрица совместимости
| Дистрибуция / PostgreSQL | <= 9.3 | 9.4 | 9.5 | 9.6 | 10 | 11 | 12 | 
|---|---|---|---|---|---|---|---|
| Ubuntu 14.04 | :no_entry: | :white_check_mark: | :white_check_mark: | :white_check_mark: | :white_check_mark: | :white_check_mark: | :grey_question: | 
| Ubuntu 16.04 | :no_entry: | :white_check_mark: | :white_check_mark: | :white_check_mark: | :white_check_mark: | :white_check_mark: | :grey_question: | 
| Debian 8.x | :no_entry: | :white_check_mark: | :white_check_mark: | :white_check_mark: | :white_check_mark: | :white_check_mark: | :grey_question: | 
| Debian 9.x | :no_entry: | :white_check_mark: | :white_check_mark: | :white_check_mark: | :white_check_mark: | :white_check_mark: | :grey_question: | 
| CentOS 6.x | :no_entry: | :white_check_mark: | :white_check_mark: | :white_check_mark: | :white_check_mark: | :white_check_mark: | :grey_question: | 
| CentOS 7.x | :no_entry: | :white_check_mark: | :white_check_mark: | :white_check_mark: | :white_check_mark: | :white_check_mark: | :grey_question: | 
| CentOS 8.x | :no_entry: | :grey_question: | :grey_question: | :grey_question: | :grey_question: | :grey_question: | :grey_question: | 
| Fedora последняя | :no_entry: | :x: | :x: | :x: | :x: | :x: | :x: | 
- :white_check_mark: - протестировано, работает хорошо
- :warning: - Не для продуктивного использования
- :grey_question: - будет работать в будущем (помогите, если можете)
- :interrobang: - возможно, работает, не протестировано
- :no_entry: - PostgreSQL достиг конца поддержки
Переменные
# Основные настройки
postgresql_version: 11
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 # должен ли сервис быть включен, по умолчанию true
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 }} для базы данных
    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 принимает только зашифрованные пароли
# Список схем для создания (опционально)
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
Тестирование
Этот проект поставляется с 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." "Forked from https://github.com/ANXS/postgresql"
ansible-galaxy install nephosolutions.postgresql