Spec-Zone.ru › Ansible

community.postgresql.postgresql_db модуль — Добавление или удаление баз данных PostgreSQL на удалённом хосте

Примечание

Этот модуль является частью коллекции community.postgresql (версия 3.6.1).

У вас, возможно, уже установлена эта коллекция, если вы используете пакет ansible. Она не включена в ansible-core. Чтобы проверить установку, выполните ansible-galaxy collection list.

Для установки используйте: ansible-galaxy collection install community.postgresql. Для использования этого модуля необходимы дополнительные требования, см. Требования для получения подробностей.

Для использования в плейбуке укажите: community.postgresql.postgresql_db.

  • Обзор
  • Требования
  • Параметры
  • Атрибуты
  • Примечания
  • См. также
  • Примеры
  • Возвращаемые значения

Обзор

  • Добавление или удаление баз данных PostgreSQL на удалённом хосте.

Требования

Ниже перечислены требования, необходимые на хосте, на котором выполняется этот модуль.

  • psycopg2 >= 2.5.1

Параметры

Параметр

Комментарии

ca_cert

aliases: ssl_rootcert

string

Указывает имя файла, содержащего сертификат(ы) центра сертификации (CA).

Если файл существует, сертификат сервера будет проверен на наличие подписи одного из этих центров.

comment

string

added in community.postgresql 3.3.0

Устанавливает комментарий к базе данных.

Чтобы сбросить комментарий, передайте пустую строку.

conn_limit

string

Указывает лимит подключений к базе данных.

Default: ""

connect_params

dictionary

added in community.postgresql 2.3.0

Любые дополнительные параметры, которые необходимо передать в libpg.

Эти параметры имеют приоритет.

Default: {}

dump_extra_args

string

added in community.postgresql 0.2.0

Предоставляет дополнительные аргументы, когда state равно dump.

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

encoding

string

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

Default: ""

force

boolean

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

Choices:

  • false ← (default)
  • true

icu_locale

string

added in community.postgresql 3.4.0

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

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

Default: ""

lc_collate

string

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

Default: ""

lc_ctype

string

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

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

Default: ""

locale_provider

string

added in community.postgresql 3.4.0

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

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

По умолчанию провайдер тот же, что и у шаблона.

Default: ""

login_host

aliases: host

string

Хост, на котором работает база данных.

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

Default: ""

login_password

string

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

Default: ""

login_unix_socket

aliases: unix_socket

string

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

Default: ""

login_user

aliases: login

string

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

Default: "postgres"

maintenance_db

string

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

Default: "postgres"

name

aliases: db

string / required

Имя базы данных для добавления или удаления.

владелец

строка

Имя роли, которая будет установлена владельцем базы данных.

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

порт

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

целое число

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

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

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

строка

Определяет, будет ли и с какой приоритетностью устанавливаться защищенное SSL TCP/IP-соединение с сервером.

См. https://www.postgresql.org/docs/current/static/libpq-ssl.html для получения дополнительной информации о режимах.

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

Варианты:

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

состояние

строка

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

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 (bzip2), .gz (gzip/pigz) и .xz (xz).

Поддерживаемые форматы дампов и восстановления, определенные форматом целевого файла .sql (простой), .tar (tar), .pgc (пользовательский) и .dir (каталог) Для формата каталога, который поддерживается с версии сборки 1.4.0.

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

.

rename используется для переименования базы данных name в target.

Если база данных name существует, она будет переименована в target.

Если база данных name не существует, а база данных target существует, модуль сообщит, что ничего не изменилось.

Если обе базы данных существуют, а также когда они имеют одинаковое значение, будет выведено сообщение об ошибке.

При state=rename, в дополнение к параметру name, модуль требует параметр target. Другие параметры игнорируются. Поддерживается с версии сборки 1.4.0.

Варианты:

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

tablespace

путь

Настройка tablespace для базы данных https://www.postgresql.org/docs/current/sql-alterdatabase.html.

Если вы хотите вернуть базу данных в табличное пространство по умолчанию, явно установите значение pg_default.

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

цель

путь

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

Используется, когда состояние dump или restore.

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

target_opts

строка

Дополнительные аргументы для pg_dump или программы восстановления (pg_restore или psql, в зависимости от формата цели).

Используется, когда состояние dump или restore.

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

шаблон

строка

Шаблон, используемый для создания базы данных.

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

trust_input

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

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

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

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

Варианты:

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

Атрибуты

Атрибут

Поддержка

Описание

check_mode

Поддержка: полная

Модуль может работать в режиме check_mode и предсказывать статус изменений, не изменяя целевой объект.

Примечания

Примечание

  • Состояния dump и restore не требуют psycopg начиная с версии Ansible 2.8.
  • По умолчанию предполагается, что вы входите как пользователь или используете sudo для учетной записи postgres на хосте.
  • Чтобы избежать ошибки «Ошибка проверки подлинности peer для пользователя 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

# Rename the database foo to bar.
# If the database foo exists, it will be renamed to bar.
# If the database foo does not exist and the bar database exists,
# the module will report that nothing has changed.
# If both the databases exist, an error will be raised.
- name: Rename the database foo to bar
  community.postgresql.postgresql_db:
    name: foo
    state: rename
    target: bar

Значения возврата

Общие значения возврата описаны здесь, следующие поля уникальны для этого модуля:

Ключ

Описание

executed_commands

список / элементы=строка

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

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

Возвращаемое значение: успех

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

Авторы

  • Команда разработчиков Ansible

Ссылки на сборку

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

© 2012–2018 Michael DeHaan
© 2018–2024 Red Hat, Inc.
Licensed under the GNU General Public License version 3.
https://docs.ansible.com/ansible/latest/collections/community/postgresql/postgresql_db_module.html

Spec-Zone.ru

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