community.general.postgresql_db – Добавление или удаление баз данных PostgreSQL с удалённого хоста.
Примечание
Этот плагин входит в коллекцию community.general (версия 1.3.2).
Для его установки используйте: ansible-galaxy collection install community.general.
Для использования в плейбуке укажите: community.general.postgresql_db.
Описание
- Добавление или удаление баз данных PostgreSQL с удалённого хоста.
Требования
Ниже перечислены требования, необходимые на хосте, выполняющем данный модуль.
- psycopg2
Параметры
| Параметр | Варианты/Значения по умолчанию | Комментарии |
|---|---|---|
| ca_cert строка | Указывает имя файла, содержащего сертификаты авторитета сертификации SSL (CA). Если файл существует, сертификат сервера будет проверен на подпись одним из этих авторитетов. Псевдонимы: ssl_rootcert | |
| conn_limit строка | Указывает лимит подключений к базе данных. | |
| dump_extra_args строка добавлен в 0.2.0 community.general | Предоставляет дополнительные аргументы, когда 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 строка |
| Определяет, будет ли или с каким приоритетом устанавливаться безопасное SSL TCP/IP соединение с сервером. См. https://www.postgresql.org/docs/current/static/libpq-ssl.html для получения дополнительной информации о режимах. Значение по умолчанию prefer соответствует значению по умолчанию libpq. |
| state строка |
| Состояние базы данных. 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 или restore (pg_restore или psql, в зависимости от формата целевого объекта). Используется при state dump или restore. | |
| template строка | Шаблон, используемый для создания базы данных | |
| trust_input логическое добавлен в 0.2.0 community.general |
| Если no, проверять, являются ли значения параметров owner, conn_limit, encoding, db, template, tablespace, session_role потенциально опасными.Использование no имеет смысл только тогда, когда возможны SQL-инъекции через параметры. |
Примечания
Примечание
- Состояния
dumpиrestoreне требуют psycopg2 начиная с версии 2.8. - Аутентификация по умолчанию предполагает, что вы либо входите в систему как, либо используете sudo для входа в учетную запись
postgresна хосте. - Чтобы избежать ошибки «Ошибка проверки подлинности клиента для пользователя 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.general.postgresql_tablespace
-
Официальная документация модуля community.general.postgresql_tablespace.
- community.general.postgresql_info
-
Официальная документация модуля community.general.postgresql_info.
- community.general.postgresql_ping
-
Официальная документация модуля community.general.postgresql_ping.
Примеры
- name: Create a new database with name "acme"
community.general.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.general.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.general.postgresql_db:
name: acme
conn_limit: "100"
- name: Dump an existing database to a file
community.general.postgresql_db:
name: acme
state: dump
target: /tmp/acme.sql
- name: Dump an existing database to a file excluding the test table
community.general.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.general.postgresql_db:
name: acme
state: dump
target: /tmp/acme.sql.gz
- name: Dump a single schema for an existing database
community.general.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.general.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.general.postgresql_db:
name: foo
tablespace: bar
Значения возврата
Общие значения возврата документированы здесь, следующие поля уникальны для данного модуля:
| Ключ | Возвращаемое значение | Описание |
|---|---|---|
| executed_commands список / элементы=строка добавлено в 0.2.0 community.general | всегда | Список команд, которые пытались запуститься. Пример: ['CREATE DATABASE acme'] |
Авторы
- Команда Ansible Core
© 2012–2018 Michael DeHaan
© 2018–2019 Red Hat, Inc.
Licensed under the GNU General Public License version 3.
https://docs.ansible.com/ansible/2.10/collections/community/general/postgresql_db_module.html