postgresql_db – Добавление или удаление баз данных PostgreSQL с удалённого хоста
Описание
- Добавление или удаление баз данных PostgreSQL с удалённого хоста.
Требования
Ниже перечислены требования, необходимые на хосте, на котором выполняется этот модуль.
- psycopg2
Параметры
| Параметр | Варианты/Значения по умолчанию | Комментарии |
|---|---|---|
| ca_cert строка | Указывает имя файла, содержащего сертификаты центра сертификации (CA). Если файл существует, сертификат сервера будет проверен на подпись одним из этих центров. псевдонимы: ssl_rootcert | |
| conn_limit строка добавлено в 2.8 | Указывает предел подключений к базе данных. | |
| encoding строка | Кодировка базы данных | |
| lc_collate строка | Порядок сортировки (LC_COLLATE) для использования в базе данных. Должен совпадать с порядком сортировки шаблонной базы данных, если не используется template0. | |
| lc_ctype строка | Классификация символов (LC_CTYPE) для использования в базе данных (например, нижний регистр, верхний регистр, ...). Должен совпадать с LC_CTYPE шаблонной базы данных, если не используется template0. | |
| login_host строка | Хост, на котором работает база данных. | |
| login_password строка | Пароль для аутентификации. | |
| login_unix_socket строка | Путь к сокету Unix-домена для локальных подключений. | |
| login_user строка | По умолчанию: "postgres" | Имя пользователя для аутентификации. |
| maintenance_db строка добавлено в 2.5 | По умолчанию: "postgres" | Указывает начальную базу данных (также называемую базой данных обслуживания), к которой подключается Ansible. |
| name строка / обязательно | Имя базы данных для добавления или удаления псевдонимы: db | |
| owner строка | Имя роли, которая будет установлена владельцем базы данных. | |
| port целое число | По умолчанию: 5432 | Порт базы данных для подключения (при необходимости) псевдонимы: login_port |
| session_role строка добавлено в 2.8 | Переключение на session_role после подключения. Указанная session_role должна быть ролью, членом которой является текущий login_user. Проверка разрешений для SQL-команд выполняется так, как будто session_role была той, которая изначально вошла в систему. | |
| ssl_mode строка |
| Определяет, будет ли и с какой приоритетностью устанавливаться защищённое SSL TCP/IP-соединение с сервером. См. https://www.postgresql.org/docs/current/static/libpq-ssl.html для получения дополнительной информации о режимах. Значение по умолчанию prefer соответствует значению по умолчанию libpq. |
| state строка |
| Состояние базы данных. present подразумевает, что база данных должна быть создана, если необходимо.absent подразумевает, что база данных должна быть удалена, если она присутствует.dump требует определения целевого объекта, в который будет сохранена резервная копия базы данных. (Добавлена в Ansible 2.4) Обратите внимание, что в некоторых версиях PostgreSQL утилита pg_dump, которая является встроенной утилитой PostgreSQL и используется модулем, возвращает rc 0 даже при возникновении ошибок (например, подключение запрещено pg_hba.conf и т. д.), поэтому модуль возвращает changed=True, но резервная копия фактически не была создана. Убедитесь, что ваша версия pg_dump возвращает rc 1 в этом случае.restore также требует определения целевого объекта, из которого база данных будет восстановлена. (Добавлена в Ansible 2.4)Формат резервной копии будет определяться на основе имени целевого объекта. Поддерживаемые форматы сжатия для создания резервной копии и восстановления включают .bz2, .gz и .xz.
Поддерживаемые форматы для создания резервной копии и восстановления включают .sql и .tar.
|
| tablespace путь добавлено в 2.9 | Пространство имен таблиц для базы данных https://www.postgresql.org/docs/current/sql-alterdatabase.html. Если вы хотите вернуть базу данных в пространство имен таблиц по умолчанию, явно установите это значение в pg_default. | |
| target путь добавлено в 2.4 | Файл для создания резервной копии или восстановления из него. Используется, когда state равен dump или restore. | |
| target_opts строка добавлено в 2.4 | Дополнительные аргументы для pg_dump или pg_restore. Используется, когда state равен dump или restore. | |
| template строка | Шаблон, используемый для создания базы данных. |
Примечания
Примечание
- Состояния
dumpиrestoreне требуют psycopg2 с версии 2.8. - По умолчанию предполагается, что вы авторизуетесь или используете sudo от учётной записи
postgresна хосте. - Чтобы избежать ошибки «Ошибка проверки подлинности клиента для пользователя postgres», используйте пользователя postgres в качестве become_user.
- Этот модуль использует psycopg2, адаптер Python для базы данных PostgreSQL. Убедитесь, что psycopg2 установлен на хосте перед использованием этого модуля.
- Если удалённый хост является сервером PostgreSQL (что является случаем по умолчанию), то PostgreSQL также должен быть установлен на удалённом хосте.
- Для систем на основе Ubuntu установите пакеты postgresql, libpq-dev и python-psycopg2 на удалённом хосте перед использованием этого модуля.
- Параметр ca_cert требует по крайней мере версию Postgres 8.4 и psycopg2 версии 2.4.3.
См. также
См. также
- Ссылка на CREATE DATABASE
- Полное руководство по команде CREATE DATABASE.
- Ссылка на DROP DATABASE
- Полное руководство по команде DROP DATABASE.
- Ссылка на pg_dump
- Полное руководство по pg_dump.
- Ссылка на pg_restore
- Полное руководство по pg_restore.
- postgresql_tablespace – Добавить или удалить пространства имен PostgreSQL на удаленных хостах
- Официальная документация модуля postgresql_tablespace.
- postgresql_info – Сбор информации о серверах PostgreSQL
- Официальная документация модуля postgresql_info.
- postgresql_ping – Проверка доступности удаленного сервера PostgreSQL
- Официальная документация модуля postgresql_ping.
Примеры
- name: Create a new database with name "acme"
postgresql_db:
name: acme
# Note: If a template different from "template0" is specified, encoding and locale settings must match those of the template.
- name: Create a new database with name "acme" and specific encoding and locale # settings.
postgresql_db:
name: acme
encoding: UTF-8
lc_collate: de_DE.UTF-8
lc_ctype: de_DE.UTF-8
template: template0
# Note: Default limit for the number of concurrent connections to a specific database is "-1", which means "unlimited"
- name: Create a new database with name "acme" which has a limit of 100 concurrent connections
postgresql_db:
name: acme
conn_limit: "100"
- name: Dump an existing database to a file
postgresql_db:
name: acme
state: dump
target: /tmp/acme.sql
- name: Dump an existing database to a file (with compression)
postgresql_db:
name: acme
state: dump
target: /tmp/acme.sql.gz
- name: Dump a single schema for an existing database
postgresql_db:
name: acme
state: dump
target: /tmp/acme.sql
target_opts: "-n public"
# Note: In the example below, if database foo exists and has another tablespace
# the tablespace will be changed to foo. Access to the database will be locked
# until the copying of database files is finished.
- name: Create a new database called foo in tablespace bar
postgresql_db:
name: foo
tablespace: bar
Статус
- Данный модуль гарантирует обратную совместимость изменений интерфейса в будущем. [stableinterface]
- Этот модуль поддерживается сообществом Ansible. [community]
Авторы
- Команда разработчиков Ansible
Подсказка
Если вы заметите какие-либо проблемы в этой документации, вы можете отредактировать этот документ, чтобы улучшить его.
© 2012–2018 Michael DeHaan
© 2018–2019 Red Hat, Inc.
Licensed under the GNU General Public License version 3.
https://docs.ansible.com/ansible/2.9/modules/postgresql_db_module.html