postgresql
ANXS - PostgreSQL
Помощь нужна! Если вы можете и хотите помочь в поддержке этой роли Ansible, откройте, пожалуйста, проблему на GitHub. Кажется, что многие люди используют эту роль, и нам (очевидно) нужна помощь! 💖
Роль Ansible, которая устанавливает и настраивает 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: | :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 последняя | :no_entry: | :x: | :x: | :x: | :x: | :x: | :x: |
- :white_check_mark: - протестировано, работает нормально
- :warning: - Не для производственного использования
- :grey_question: - будет работать в будущем (помогите, если сможете)
- :interrobang: - возможно работает, не протестировано
- :no_entry: - Добралось до конца поддержки (EOL)
Переменные
# Основные настройки
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 # должна ли служба быть включена, по умолчанию 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.
ansible-galaxy install silverlogic/ansible-role-postgresql