community.postgresql.postgresql_db – Добавление или удаление баз данных PostgreSQL с удаленного хоста
Примечание
Этот плагин является частью коллекции community.postgresql (версия 1.1.1).
Для его установки используйте: ansible-galaxy collection install community.postgresql
Для использования в книге задач укажите: community.postgresql.postgresql_db
Обзор
- Добавление или удаление баз данных PostgreSQL с удаленного хоста.
Требования
Нижеперечисленные требования необходимы на хосте, на котором выполняется этот модуль.
- psycopg2
Параметры
| Параметр | Варианты/Значения по умолчанию | Комментарии |
|---|---|---|
| ca_cert строка | Указывает имя файла, содержащего сертификат(ы) центра сертификации (CA) SSL. Если файл существует, сертификат сервера будет проверен на подпись одним из этих центров. Псевдонимы: ssl_rootcert | |
| conn_limit строка | Указывает ограничение на подключение к базе данных. | |
| dump_extra_args строка добавлен в 0.2.0 community.postgresql | Предоставляет дополнительные аргументы, когда state равен dump. Не может использоваться с аргументами, относящимися к формату файла дампов, такими как ``--format=d``. | |
| encoding строка | Кодировка базы данных. | |
| lc_collate строка | Порядок сортировки (LC_COLLATE) для использования в базе данных должен соответствовать порядку сортировки шаблона базы данных, если не используется template0 в качестве шаблона. | |
| lc_ctype строка | Классификация символов (LC_CTYPE) для использования в базе данных (например, lower, upper, ...). Должен соответствовать LC_CTYPE шаблона базы данных, если не используется template0 в качестве шаблона. | |
| login_host строка | Хост, на котором работает база данных. | |
| login_password строка | Пароль, используемый для аутентификации. | |
| login_unix_socket строка | Путь к сокету Unix-домена для локальных подключений. | |
| login_user строка | По умолчанию: "postgres" | Имя пользователя, используемое для аутентификации. |
| maintenance_db строка | По умолчанию: "postgres" | Значение указывает начальную базу данных (также называемую базой данных обслуживания), к которой Ansible подключается. |
| name строка / обязательно | Имя базы данных для добавления или удаления. Псевдонимы: db | |
| owner строка | Имя роли, которая будет установлена владельцем базы данных. | |
| port целое число | По умолчанию: 5432 | Порт базы данных для подключения (при необходимости). Псевдонимы: login_port |
| session_role строка | Переключение на роль 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).Формат резервной копии будет определен на основе имени целевого объекта. Поддерживаемые форматы сжатия для дампов и восстановления включают .pgc, .bz2, .gz и .xz. Поддерживаемые форматы для дампов и восстановления включают .sql и .tar. Программа восстановления выбирается по формату целевого файла: .tar и .pgc обрабатываются pg_restore, остальные – psql. |
| tablespace путь | Настройка табличного пространства для базы данных https://www.postgresql.org/docs/current/sql-alterdatabase.html. Если требуется вернуть базу данных в табличное пространство по умолчанию, явно задайте это значение как pg_default. | |
| target путь | Файл для резервного копирования или восстановления. Используется, когда state равен dump или restore. | |
| target_opts строка | Дополнительные аргументы для pg_dump или программы восстановления (pg_restore или psql, в зависимости от формата целевого объекта). Используется, когда state равен dump или restore. | |
| template строка | Шаблон, используемый для создания базы данных. | |
| trust_input логическое значение добавлен в 0.2.0 community.postgresql |
| Если no, проверьте, являются ли значения параметров owner, conn_limit, encoding, db, template, tablespace, session_role потенциально опасными.Использование no имеет смысл только в том случае, когда возможны SQL-инъекции через параметры. |
Примечания
Примечание
- Состояния
dumpиrestoreне требуют psycopg2 с версии 2.8. - Поддерживает
check_mode. - Аутентификация по умолчанию предполагает, что вы либо заходите как пользователь
postgres, либо используете sudo для него на хосте. - Чтобы избежать ошибки «Ошибка проверки подлинности клиента для пользователя 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.
- community.postgresql.postgresql_tablespace
-
Официальная документация модуля community.postgresql.postgresql_tablespace.
- community.postgresql.postgresql_info
-
Официальная документация модуля community.postgresql.postgresql_info.
- community.postgresql.postgresql_ping
-
Официальная документация модуля community.postgresql.postgresql_ping.
Примеры
- name: Create a new database with name "acme"
community.postgresql.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
community.postgresql.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
community.postgresql.postgresql_db:
name: acme
conn_limit: "100"
- name: Dump an existing database to a file
community.postgresql.postgresql_db:
name: acme
state: dump
target: /tmp/acme.sql
- name: Dump an existing database to a file excluding the test table
community.postgresql.postgresql_db:
name: acme
state: dump
target: /tmp/acme.sql
dump_extra_args: --exclude-table=test
- name: Dump an existing database to a file (with compression)
community.postgresql.postgresql_db:
name: acme
state: dump
target: /tmp/acme.sql.gz
- name: Dump a single schema for an existing database
community.postgresql.postgresql_db:
name: acme
state: dump
target: /tmp/acme.sql
target_opts: "-n public"
- name: Dump only table1 and table2 from the acme database
community.postgresql.postgresql_db:
name: acme
state: dump
target: /tmp/table1_table2.sql
target_opts: "-t table1 -t table2"
# 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
community.postgresql.postgresql_db:
name: foo
tablespace: bar
Значения возврата
Общие значения возврата описаны здесь, следующие поля уникальны для данного модуля:
| Ключ | Возвращаемое значение | Описание |
|---|---|---|
| executed_commands список / элементы=строка добавлен в 0.2.0 от community.postgresql | всегда | Список команд, которые пытались выполнить. Пример: ['CREATE DATABASE acme'] |
Авторы
- Команда Ansible Core
© 2012–2018 Michael DeHaan
© 2018–2021 Red Hat, Inc.
Licensed under the GNU General Public License version 3.
https://docs.ansible.com/ansible/2.11/collections/community/postgresql/postgresql_db_module.html