Модуль community.postgresql.postgresql_db — добавление и удаление баз данных PostgreSQL на удалённом узле
Примечание
Этот модуль входит в коллекцию community.postgresql (версия 4.2.0).
Возможно, эта коллекция уже установлена, если вы используете пакет ansible. Она не входит в ansible-core. Чтобы проверить, установлена ли она, выполните ansible-galaxy collection list.
Для установки используйте: ansible-galaxy collection install community.postgresql. Для использования этого модуля требуются дополнительные компоненты; подробности см. в разделе Требования.
Чтобы использовать модуль в плейбуке, укажите: community.postgresql.postgresql_db.
Краткое описание
- Добавление и удаление баз данных PostgreSQL на удалённом узле.
Требования
На узле, на котором выполняется этот модуль, должны быть установлены следующие компоненты.
- psycopg2 >= 2.5.1
Параметры
Параметр | Комментарии |
|---|---|
ca_cert псевдонимы: ssl_rootcert строка | Указывает имя файла, содержащего сертификат или сертификаты центра сертификации (CA) SSL. Если файл существует, сертификат сервера будет проверен на предмет подписания одним из этих центров сертификации. |
comment строка добавлен в community.postgresql 3.3.0 | Задаёт комментарий для базы данных. Чтобы удалить комментарий, передайте пустую строку. |
conn_limit строка | Указывает ограничение на количество подключений к базе данных. По умолчанию: |
connect_params словарь добавлен в community.postgresql 2.3.0 | Дополнительные параметры, передаваемые в libpg. Эти параметры имеют более высокий приоритет. По умолчанию: |
dump_extra_args строка добавлен в community.postgresql 0.2.0 | Задаёт дополнительные аргументы, если значение state равно Нельзя использовать с аргументами, связанными с форматом файла дампа, например ``--format=d``. |
encoding строка | Кодировка базы данных. По умолчанию: |
force логическое значение | Принудительное удаление базы данных, если значение state равно Варианты:
|
icu_locale строка добавлен в community.postgresql 3.4.0 | Указывает локаль ICU (ICU_LOCALE) для порядка сортировки и классификации символов по умолчанию в базе данных, переопределяя параметр locale. Поставщик локали должен быть ICU. По умолчанию используется значение параметра locale, если оно задано; в противном случае используется такое же значение, как в базе данных-шаблоне. По умолчанию: |
lc_collate строка | Порядок сортировки (LC_COLLATE) в базе данных должен совпадать с порядком сортировки базы данных-шаблона, если в качестве шаблона не используется По умолчанию: |
lc_ctype строка | Классификация символов (LC_CTYPE) в базе данных (например, строчные, прописные и т. д.). Значение должно совпадать с LC_CTYPE базы данных-шаблона, если в качестве шаблона не используется По умолчанию: |
locale_provider строка добавлен в community.postgresql 3.4.0 | Указывает поставщика, используемого для сортировки по умолчанию в этой базе данных (LOCALE_PROVIDER). Возможные значения: icu (если сервер собран с поддержкой ICU) или libc. По умолчанию используется тот же поставщик, что и для базы данных-шаблона. По умолчанию: |
login_host псевдонимы: host строка | Узел, на котором работает база данных. Если при использовании По умолчанию: |
login_password строка | Пароль, который модуль должен использовать для установки сеанса PostgreSQL. По умолчанию: |
login_port псевдонимы: port целое число | Порт базы данных для подключения. Псевдоним По умолчанию: |
login_unix_socket псевдонимы: unix_socket строка | Путь к доменному сокету Unix для локальных подключений. По умолчанию: |
login_user псевдонимы: login строка | Имя пользователя, которое модуль должен использовать для установки сеанса PostgreSQL. По умолчанию: |
maintenance_db строка | Значение указывает исходную базу данных (также называемую базой данных обслуживания), к которой подключается Ansible. По умолчанию: |
name псевдонимы: db строка / обязательный | Имя базы данных, которую нужно добавить или удалить. |
owner строка | Имя роли, которую нужно назначить владельцем базы данных. По умолчанию: |
session_role строка | Переключиться на session_role после подключения. Указанная session_role должна быть ролью, в которую входит текущий login_user. Проверка разрешений для команд SQL выполняется так, как если бы изначально была выполнена регистрация под ролью session_role. |
ssl_cert путь добавлен в community.postgresql 2.4.0 | Указывает имя файла клиентского сертификата SSL. |
ssl_key путь добавлен в community.postgresql 2.4.0 | Указывает расположение закрытого ключа, используемого для клиентского сертификата. |
ssl_mode строка | Определяет, будет ли согласовано с сервером безопасное TCP/IP-подключение SSL и, если да, с каким приоритетом. Дополнительные сведения о режимах см. на странице https://www.postgresql.org/docs/current/static/libpq-ssl.html. Значение по умолчанию Варианты:
|
state строка | Состояние базы данных. Значение Значение Значение Значение Формат резервной копии определяется по имени целевого файла. Поддерживаемые форматы сжатия для создания и восстановления дампа определяются форматом целевого файла: Поддерживаемые форматы для создания и восстановления дампа определяются форматом целевого файла: Программа восстановления выбирается по формату целевого файла: . УСТАРЕЛО (см. обсуждение). Варианты:
|
tablespace путь | Табличное пространство, которое нужно задать для базы данных: https://www.postgresql.org/docs/current/sql-alterdatabase.html. Чтобы переместить базу данных обратно в табличное пространство по умолчанию, явно задайте для этого параметра значение pg_default. По умолчанию: |
target путь | Файл для создания резервной копии или восстановления из неё. Используется, если значение state равно По умолчанию: |
target_opts строка | Дополнительные аргументы для pg_dump или программы восстановления (pg_restore или psql — в зависимости от формата целевого файла). Используется, если значение state равно По умолчанию: |
template строка | Шаблон, используемый для создания базы данных. По умолчанию: |
trust_input логическое значение добавлен в community.postgresql 0.2.0 | Если задано значение Использовать Варианты:
|
Атрибуты
Атрибут | Поддержка | Описание |
|---|---|---|
check_mode | Поддержка: полная | Модуль может работать в режиме check_mode и возвращать прогноз статуса changed, не изменяя целевой узел. |
Примечания
Примечание
- Для состояний
dumpиrestoreбиблиотека psycopg не требуется начиная с Ansible версии 2.8. - По умолчанию предполагается, что вы подключаетесь к узлу как учётная запись
postgresили переключаетесь на неё с помощью sudo. - Чтобы избежать ошибки «Peer authentication failed for user postgres», используйте пользователя postgres в качестве become_user.
- Этот модуль использует
psycopg— адаптер Python для баз данных PostgreSQL. Перед использованием модуля необходимо убедиться, что на узле установленpsycopg2 >= 2.5.1илиpsycopg3 >= 3.1.8. - Если удалённый узел является сервером PostgreSQL (что используется по умолчанию), PostgreSQL также должен быть установлен на удалённом узле.
- В системах на базе Ubuntu перед использованием модуля установите на удалённый узел пакеты
postgresql,libpq-devиpython3-psycopg2.
См. также
См. также
- Справочник по CREATE DATABASE
-
Полный справочник по документации команды CREATE DATABASE.
- Справочник по DROP DATABASE
-
Полный справочник по документации команды DROP DATABASE.
- Справочник по pg_dump
-
Полный справочник по документации pg_dump.
- Справочник по pg_restore
-
Полный справочник по документации pg_restore.
- community.postgresql.postgresql_tablespace
-
Добавление и удаление табличных пространств PostgreSQL на удалённых узлах.
- community.postgresql.postgresql_info
-
Сбор информации о серверах PostgreSQL.
- community.postgresql.postgresql_ping
-
Проверка доступности удалённого сервера PostgreSQL.
Примеры
- name: Create a new database with name "acme"
community.postgresql.postgresql_db:
name: acme
comment: My test DB
# 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
locale_provider: icu
icu_locale: de-DE-x-icu
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"
- name: Dump an existing database using the directory format
community.postgresql.postgresql_db:
name: acme
state: dump
target: /tmp/acme.dir
- name: Dump an existing database using the custom format
community.postgresql.postgresql_db:
name: acme
state: dump
target: /tmp/acme.pgc
# name: acme - the name of the database to connect through which the recovery will take place
- name: Restore database using the tar format
community.postgresql.postgresql_db:
name: acme
state: restore
target: /tmp/acme.tar
# 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 список / элементы=строка добавлен в community.postgresql 0.2.0 | Список команд, которые были запущены. Возвращается: при успешном выполнении Пример: |
Ссылки на коллекцию
© 2012–2018 Michael DeHaan
© 2018–2025 Red Hat, Inc.
Licensed under the GNU General Public License version 3.
https://docs.ansible.com/projects/ansible/latest/collections/community/postgresql/postgresql_db_module.html