Spec-Zone.ru › Ansible

Модуль 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 равно dump.

Нельзя использовать с аргументами, связанными с форматом файла дампа, например ``--format=d``.

encoding

строка

Кодировка базы данных.

По умолчанию: ""

force

логическое значение

Принудительное удаление базы данных, если значение state равно absent; в противном случае параметр игнорируется.

Варианты:

  • false ← (по умолчанию)
  • true

icu_locale

строка

добавлен в community.postgresql 3.4.0

Указывает локаль ICU (ICU_LOCALE) для порядка сортировки и классификации символов по умолчанию в базе данных, переопределяя параметр locale.

Поставщик локали должен быть ICU. По умолчанию используется значение параметра locale, если оно задано; в противном случае используется такое же значение, как в базе данных-шаблоне.

По умолчанию: ""

lc_collate

строка

Порядок сортировки (LC_COLLATE) в базе данных должен совпадать с порядком сортировки базы данных-шаблона, если в качестве шаблона не используется template0.

По умолчанию: ""

lc_ctype

строка

Классификация символов (LC_CTYPE) в базе данных (например, строчные, прописные и т. д.).

Значение должно совпадать с LC_CTYPE базы данных-шаблона, если в качестве шаблона не используется template0.

По умолчанию: ""

locale_provider

строка

добавлен в community.postgresql 3.4.0

Указывает поставщика, используемого для сортировки по умолчанию в этой базе данных (LOCALE_PROVIDER).

Возможные значения: icu (если сервер собран с поддержкой ICU) или libc.

По умолчанию используется тот же поставщик, что и для базы данных-шаблона.

По умолчанию: ""

login_host

псевдонимы: host

строка

Узел, на котором работает база данных.

Если при использовании localhost возникают проблемы с подключением, попробуйте вместо него использовать 127.0.0.1.

По умолчанию: ""

login_password

строка

Пароль, который модуль должен использовать для установки сеанса PostgreSQL.

По умолчанию: ""

login_port

псевдонимы: port

целое число

Порт базы данных для подключения.

Псевдоним port устарел и будет удалён в следующем основном выпуске. Вместо него используйте login_port.

По умолчанию: 5432

login_unix_socket

псевдонимы: unix_socket

строка

Путь к доменному сокету Unix для локальных подключений.

По умолчанию: ""

login_user

псевдонимы: login

строка

Имя пользователя, которое модуль должен использовать для установки сеанса PostgreSQL.

По умолчанию: "postgres"

maintenance_db

строка

Значение указывает исходную базу данных (также называемую базой данных обслуживания), к которой подключается Ansible.

По умолчанию: "postgres"

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.

Значение по умолчанию prefer соответствует значению libpq по умолчанию.

Варианты:

  • "allow"
  • "disable"
  • "prefer" ← (по умолчанию)
  • "require"
  • "verify-ca"
  • "verify-full"

state

строка

Состояние базы данных.

Значение present означает, что при необходимости базу данных следует создать.

Значение absent означает, что базу данных следует удалить, если она существует.

Значение dump требует указать целевой путь, в который будет сохранена резервная копия базы данных. (Добавлено в Ansible 2.4.) Обратите внимание: в некоторых версиях PostgreSQL утилита pg_dump (встроенная утилита PostgreSQL, используемая модулем) возвращает код завершения 0 даже при возникновении ошибок (например, если подключение запрещено файлом pg_hba.conf). В таком случае модуль возвращает changed=True, хотя дамп фактически не был создан. Убедитесь, что используемая вами версия pg_dump в этом случае возвращает код завершения 1.

Значение restore также требует указать источник, из которого будет восстановлена база данных. (Добавлено в Ansible 2.4.)

Формат резервной копии определяется по имени целевого файла.

Поддерживаемые форматы сжатия для создания и восстановления дампа определяются форматом целевого файла: .pgc (custom), .bz2 (bzip2), .gz (gzip/pigz) и .xz (xz).

Поддерживаемые форматы для создания и восстановления дампа определяются форматом целевого файла: .sql (plain), .tar (tar), .pgc (custom) и .dir (directory). Формат directory поддерживается начиная с версии коллекции 1.4.0.

Программа восстановления выбирается по формату целевого файла: .tar, .pgc и .dir обрабатываются с помощью pg_restore, остальные — с помощью pgsql.

.

УСТАРЕЛО (см. обсуждение). rename используется для переименования базы данных name в target. Чтобы переименовать базу данных, используйте модуль community.postgresql.postgresql_query.

Варианты:

  • "absent"
  • "dump"
  • "present" ← (по умолчанию)
  • "rename"
  • "restore"

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

логическое значение

добавлен в community.postgresql 0.2.0

Если задано значение false, проверяется, не являются ли потенциально опасными значения параметров owner, conn_limit, encoding, db, template, tablespace, session_role.

Использовать false имеет смысл только в том случае, если возможны SQL-инъекции через параметры.

Варианты:

  • false
  • true ← (по умолчанию)

Атрибуты

Атрибут

Поддержка

Описание

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

Список команд, которые были запущены.

Возвращается: при успешном выполнении

Пример: ["CREATE DATABASE acme"]

Авторы

  • Основная команда Ansible

Ссылки на коллекцию

  • Отслеживание проблем
  • Репозиторий (исходный код)
  • Сообщить о проблеме
  • Связь

© 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

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API