Spec-Zone.ru › Ansible 2.8

postgresql_query – Выполнение запросов к PostgreSQL

Новое в версии 2.8.

  • Описание
  • Требования
  • Параметры
  • Примечания
  • См. также
  • Примеры
  • Возвращаемые значения
  • Статус

Описание

  • Выполняет произвольные запросы к PostgreSQL.
  • Может выполнять запросы из файлов скриптов SQL.
  • Не выполняет запросы к файлам резервных копий. Используйте postgresql_db с state=restore для выполнения запросов к файлам, созданным утилитами pg_dump/pg_dumpall.

Требования

Ниже перечислены требования к хосту, на котором выполняется этот модуль.

  • psycopg2

Параметры

Параметр Варианты/Значения по умолчанию Комментарии
ca_cert
строка
Указывает имя файла, содержащего сертификаты авторитета SSL (CA).
Если файл существует, серверный сертификат будет проверен на подпись одним из этих авторитетов.

Псевдонимы: ssl_rootcert
db
строка
Имя базы данных для подключения и выполнения запросов.

Псевдонимы: login_db
login_host
строка
Хост, на котором работает база данных.
login_password
строка
Пароль для аутентификации.
login_unix_socket
строка
Путь к сокету Unix-домена для локальных соединений.
login_user
строка
По умолчанию:
"postgres"
Имя пользователя для аутентификации.
named_args
словарь
Словарь пар ключ-значение для передачи в запрос.
Взаимоисключающий параметр с positional_args.
path_to_script
путь
Путь к скрипту SQL на удалённом хосте.
Возвращает результат последнего запроса в скрипте.
Взаимоисключающий параметр с query.
port
целое число
По умолчанию:
5432
Порт базы данных для подключения.

Псевдонимы: login_port
positional_args
список
Список значений для передачи в запрос в качестве позиционных аргументов.
Взаимоисключающий параметр с named_args.
query
строка
SQL запрос для выполнения. Переменные можно экранировать с использованием синтаксиса psycopg2 http://initd.org/psycopg/docs/usage.html.
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.

Примечания

Примечание

  • Аутентификация по умолчанию предполагает, что вы либо входите в систему как пользователь postgres, либо используете sudo для входа в систему как пользователь postgres на хосте.
  • Чтобы избежать ошибки «Ошибка проверки подлинности клиента для пользователя postgres», используйте пользователя postgres в качестве become_user.
  • Этот модуль использует psycopg2, адаптер Python для базы данных PostgreSQL. Вы должны убедиться, что psycopg2 установлен на хосте перед использованием этого модуля. Если удалённый хост является сервером PostgreSQL (что является случаем по умолчанию), то PostgreSQL также должен быть установлен на удалённом хосте. Для систем на базе Ubuntu установите пакеты postgresql, libpq-dev и python-psycopg2 на удалённом хосте перед использованием этого модуля.
  • Аутентификация по умолчанию предполагает, что вы либо входите в систему как пользователь, либо используете sudo для входа в систему как пользователь postgres на хосте.
  • Этот модуль использует psycopg2, адаптер Python для базы данных PostgreSQL. Вы должны убедиться, что psycopg2 установлен на хосте перед использованием этого модуля. Если удалённый хост является сервером PostgreSQL (что является случаем по умолчанию), то PostgreSQL также должен быть установлен на удалённом хосте. Для систем на базе Ubuntu установите пакеты postgresql, libpq-dev, и python-psycopg2 на удалённом хосте перед использованием этого модуля.
  • Параметр ca_cert требует как минимум версии Postgres 8.4 и psycopg2 версии 2.4.3.

См. также

См. также

postgresql_db – Добавление или удаление баз данных PostgreSQL с удаленного хоста
Официальная документация по модулю postgresql_db.

Примеры

- name: Simple select query to acme db
  postgresql_query:
    db: acme
    query: SELECT version()

- name: Select query to db acme with positional arguments and non-default credentials
  postgresql_query:
    db: acme
    login_user: django
    login_password: mysecretpass
    query: SELECT * FROM acme WHERE id = %s AND story = %s
    positional_args:
    - 1
    - test

- name: Select query to test_db with named_args
  postgresql_query:
    db: test_db
    query: SELECT * FROM test WHERE id = %(id_val)s AND story = %(story_val)s
    named_args:
      id_val: 1
      story_val: test

- name: Insert query to db test_db
  postgresql_query:
    db: test_db
    query: INSERT INTO test_db (id, story) VALUES (2, 'my_long_story')

- name: Run queries from SQL script
  postgresql_query:
    db: test_db
    path_to_script: /var/lib/pgsql/test.sql
    positional_args:
    - 1

Возвращаемые значения

Общие возвращаемые значения документированы здесь, следующие являются полями, уникальными для этого модуля:

Ключ Возвращаемое значение Описание
query
строка
всегда
Запрос, который пытались выполнить.

Пример:
SELECT * FROM bar
query_result
список
изменено
Список словарей в формате столбец:значение, представляющий возвращённые строки.

Пример:
[{'Столбец': 'Значение1'}, {'Столбец': 'Значение2'}]
rowcount
целое число
изменено
Количество затронутых строк.

Пример:
5
statusmessage
строка
всегда
Атрибут, содержащий сообщение, возвращённое командой.

Пример:
INSERT 0 1


Статус

  • Данный модуль не гарантирует обратной совместимости интерфейса. [превью]
  • Этот модуль поддерживается сообществом Ansible. [community]

Авторы

  • Felix Archambault (@archf)
  • Andrew Klychkov (@Andersson007)
  • Will Rouesnel (@wrouesnel)

Подсказка

Если вы заметите какие-либо проблемы в этой документации, вы можете изменить этот документ для его улучшения.

© 2012–2018 Michael DeHaan
© 2018–2019 Red Hat, Inc.
Licensed under the GNU General Public License version 3.
https://docs.ansible.com/ansible/2.8/modules/postgresql_query_module.html

Spec-Zone.ru

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