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 равно Не может использоваться с аргументами, связанными с форматом дампа, такими как ``–format=d``. |
encoding string | Кодировка базы данных. Default: |
force boolean | Используется для принудительного удаления базы данных, когда state равно Choices:
|
icu_locale string added in community.postgresql 3.4.0 | Указывает локаль ICU (ICU_LOCALE) для порядка сортировки по умолчанию и классификации символов в базе данных, переопределяя настройку locale. Провайдером локали должен быть ICU. По умолчанию используется настройка locale, если она указана; в противном случае используется та же настройка, что и в шаблоне базы данных. Default: |
lc_collate string | Порядок сортировки (LC_COLLATE) для использования в базе данных должен совпадать с порядком сортировки шаблона базы данных, если только Default: |
lc_ctype string | Классификация символов (LC_CTYPE) для использования в базе данных (например, нижний, верхний, …). Должна совпадать с LC_CTYPE шаблона базы данных, если только Default: |
locale_provider string added in community.postgresql 3.4.0 | Указывает провайдера, который следует использовать для сортировки по умолчанию в этой базе данных (LOCALE_PROVIDER). Возможные значения: icu (если сервер был собран с поддержкой ICU) или libc. По умолчанию провайдер тот же, что и у шаблона. Default: |
login_host aliases: host string | Хост, на котором работает база данных. Если у вас возникли проблемы с подключением при использовании Default: |
login_password string | Пароль, который должен использовать этот модуль для установления сеанса PostgreSQL. Default: |
login_unix_socket aliases: unix_socket string | Путь к сокету домена Unix для локальных подключений. Default: |
login_user aliases: login string | Имя пользователя, которое должен использовать этот модуль для установления сеанса PostgreSQL. Default: |
maintenance_db string | Значение указывает начальную базу данных (которая также называется базой данных обслуживания), к которой подключается Ansible. Default: |
name aliases: db string / required | Имя базы данных для добавления или удаления. |
владелец строка | Имя роли, которая будет установлена владельцем базы данных. По умолчанию: |
порт псевдонимы: login_port целое число | Порт базы данных для подключения. По умолчанию: |
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 для получения дополнительной информации о режимах. По умолчанию Варианты:
|
состояние строка | Состояние базы данных.
Формат резервной копии будет определен на основе имени целевого объекта. Поддерживаемые форматы сжатия для дампов и восстановления, определенные форматом целевого файла Поддерживаемые форматы дампов и восстановления, определенные форматом целевого файла Программа восстановления выбирается по формату целевого файла: .
Если база данных Если база данных Если обе базы данных существуют, а также когда они имеют одинаковое значение, будет выведено сообщение об ошибке. При state=rename, в дополнение к параметру Варианты:
|
tablespace путь | Настройка tablespace для базы данных https://www.postgresql.org/docs/current/sql-alterdatabase.html. Если вы хотите вернуть базу данных в табличное пространство по умолчанию, явно установите значение pg_default. По умолчанию: |
цель путь | Файл для резервного копирования или восстановления. Используется, когда состояние По умолчанию: |
target_opts строка | Дополнительные аргументы для pg_dump или программы восстановления (pg_restore или psql, в зависимости от формата цели). Используется, когда состояние По умолчанию: |
шаблон строка | Шаблон, используемый для создания базы данных. По умолчанию: |
trust_input логическое значение добавлено в community.postgresql 0.2.0 | Если Использование Варианты:
|
Атрибуты
Атрибут | Поддержка | Описание |
|---|---|---|
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 | Список команд, которые пытались запуститься. Возвращаемое значение: успех Пример: |
Ссылки на сборку
© 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