community.postgresql.postgresql_ext – Добавить или удалить расширения PostgreSQL из базы данных
Примечание
Этот плагин является частью коллекции community.postgresql (версия 1.1.1).
Для его установки используйте: ansible-galaxy collection install community.postgresql.
Для использования в плейбуке укажите: community.postgresql.postgresql_ext.
Описание
- Добавление или удаление расширений PostgreSQL из базы данных.
Требования
Ниже приведены требования, необходимые на хосте, на котором выполняется этот модуль.
- psycopg2
Параметры
| Параметр | Варианты/Значения по умолчанию | Комментарии |
|---|---|---|
| ca_cert строка | Указывает имя файла, содержащего сертификат(ы) центра сертификации (CA) SSL. Если файл существует, сертификат сервера будет проверен на подпись одним из этих центров. Псевдонимы: ssl_rootcert | |
| cascade логическое |
| Автоматически устанавливать/удалять любые расширения, от которых зависит это расширение, которые еще не установлены/удалены (поддерживается с PostgreSQL 9.6). |
| db строка / обязательно | Имя базы данных, к которой нужно добавить или из которой нужно удалить расширение. Псевдонимы: login_db | |
| login_host строка | Хост, на котором работает база данных. | |
| login_password строка | Пароль, используемый для аутентификации. | |
| login_unix_socket строка | Путь к сокету Unix доменной области для локальных подключений. | |
| login_user строка | По умолчанию: "postgres" | Имя пользователя, используемое для аутентификации. |
| name строка / обязательно | Имя расширения, которое нужно добавить или удалить. Псевдонимы: ext | |
| port целое число | По умолчанию: 5432 | Порт базы данных для подключения. Псевдонимы: login_port |
| schema строка | Имя схемы, к которой нужно добавить расширение. | |
| 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 строка |
| Состояние расширения базы данных. |
| trust_input логическое добавлен в 0.2.0 community.postgresql |
| Если no, проверяется, являются ли значения параметров ext, schema, version, session_role потенциально опасными.Имеет смысл использовать no только в том случае, если SQL-инъекции через параметры возможны. |
| version строка | Версия расширения для добавления или обновления. Действует только при state=present. Если не указано, будет создана последняя версия расширения. Невозможно понизить версию расширения. Если требуется понижение версии, удалите расширение и создайте новое с соответствующей версией. Установите version=latest, чтобы обновить расширение до последней доступной версии. |
Примечания
Примечание
- Поддерживает
check_mode. - Аутентификация по умолчанию предполагает, что вы входите в систему или используете sudo для учетной записи
postgresна хосте. - Этот модуль использует psycopg2, адаптер базы данных Python PostgreSQL.
- Необходимо убедиться, что
psycopg2установлен на хосте перед использованием этого модуля. - Если удаленный хост является сервером PostgreSQL (что является случаем по умолчанию), то PostgreSQL также должен быть установлен на удаленном хосте.
- Для систем на основе Ubuntu установите пакеты
postgresql,libpq-dev, иpython-psycopg2на удаленном хосте перед использованием этого модуля. - Несовместимые версии, например PostGIS
unpackaged, не могут быть установлены. - Аутентификация по умолчанию предполагает, что вы входите в систему или используете 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.
См. также
См. также
- Расширения PostgreSQL
-
Общая информация о расширениях PostgreSQL.
- Ссылка CREATE EXTENSION
-
Полное руководство по команде CREATE EXTENSION.
- Ссылка ALTER EXTENSION
-
Полное руководство по команде ALTER EXTENSION.
- Ссылка DROP EXTENSION
-
Полное руководство по команде DROP EXTENSION.
Примеры
- name: Adds postgis extension to the database acme in the schema foo
community.postgresql.postgresql_ext:
name: postgis
db: acme
schema: foo
- name: Removes postgis extension to the database acme
community.postgresql.postgresql_ext:
name: postgis
db: acme
state: absent
- name: Adds earthdistance extension to the database template1 cascade
community.postgresql.postgresql_ext:
name: earthdistance
db: template1
cascade: true
# In the example below, if earthdistance extension is installed,
# it will be removed too because it depends on cube:
- name: Removes cube extension from the database acme cascade
community.postgresql.postgresql_ext:
name: cube
db: acme
cascade: yes
state: absent
- name: Create extension foo of version 1.2 or update it if it's already created
community.postgresql.postgresql_ext:
db: acme
name: foo
version: 1.2
- name: Assuming extension foo is created, update it to the latest version
community.postgresql.postgresql_ext:
db: acme
name: foo
version: latest
Значения возврата
Общие значения возврата описаны в здесь, ниже приведены поля, уникальные для этого модуля:
| Ключ | Возвращаемое значение | Описание |
|---|---|---|
| query список / элементы=строка | всегда | Список выполненных запросов. Пример: ['DROP EXTENSION "acme"'] |
Авторы
- Daniel Schep (@dschep)
- Thomas O’Donnell (@andytom)
- Sandro Santilli (@strk)
- Andrew Klychkov (@Andersson007)
© 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_ext_module.html