community.postgresql.postgresql_db – Добавление или удаление баз данных PostgreSQL с удалённого хоста.
Примечание
Этот плагин входит в коллекцию community.postgresql (версия 1.0.0).
Для его установки используйте: ansible-galaxy collection install community.postgresql.
Для использования в плейбуке укажите: community.postgresql.postgresql_db.
Обзор
- Добавление или удаление баз данных PostgreSQL с удалённого хоста.
Требования
Ниже перечислены требования к хосту, на котором будет выполняться этот модуль.
- psycopg2
Параметры
| Параметр | Варианты/Значения по умолчанию | Комментарии |
|---|---|---|
| ca_cert строка | Указывает имя файла, содержащего сертификат(ы) центра сертификации SSL (CA). Если файл существует, сертификат сервера будет проверен на подпись одним из этих центров. алиасы: 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) для использования в базе данных (например, нижний регистр, верхний регистр, ...). Должен соответствовать 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 или программы восстановления (pg_restore или psql, в зависимости от формата целевого объекта). Используется при state равен dump или restore. | |
| template строка | Шаблон, используемый для создания базы данных | |
| trust_input логическое значение добавлен в версии 0.2.0 community.postgresql |
| Если no, проверяется, являются ли значения параметров owner, conn_limit, encoding, db, template, tablespace, session_role потенциально опасными.Использование no имеет смысл только в том случае, если SQL-инъекции через параметры возможны. |
Примечания
Примечание
- Состояния
dumpиrestoreне требуют psycopg2 с версии 2.8. - По умолчанию предполагается, что вы входите в систему как или используете sudo от учётной записи
postgresна хосте. - Чтобы избежать ошибки "Ошибка проверки подлинности Peer для пользователя 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
© 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/postgresql/postgresql_db_module.html