Spec-Zone.ru › Ansible 2.11

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
строка
    Варианты:
  • allow
  • disable
  • prefer ←
  • require
  • verify-ca
  • verify-full
Определяет, будет ли и с каким приоритетом устанавливаться защищенное SSL TCP/IP-соединение с сервером.
См. https://www.postgresql.org/docs/current/static/libpq-ssl.html для получения дополнительной информации о режимах.
Значение по умолчанию prefer соответствует значению по умолчанию libpq.
state
строка
    Варианты:
  • absent
  • dump
  • present ←
  • restore
Состояние базы данных.
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
  • yes ←
Если 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

Spec-Zone.ru

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