Spec-Zone.ru › Ansible 2.9

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

В версии 2.8.

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

Обзор

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

Требования

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

  • psycopg2

Параметры

Параметр Варианты/Значения по умолчанию Комментарии
autocommit
boolean
добавлено в 2.9
    Варианты:
  • нет ←
  • да
Выполнять в режиме автосвершения, когда запрос не может быть выполнен внутри блока транзакции (например, VACUUM).
Взаимоисключающий с check_mode.
ca_cert
строка
Указывает имя файла, содержащего сертификат(ы) центра сертификации (CA).
Если файл существует, сертификат сервера будет проверен на подпись одним из этих центров.

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

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

псевдонимы: login_port
positional_args
список
Список значений, которые будут переданы в качестве позиционных аргументов запросу. Когда значение является списком, оно преобразуется в массив PostgreSQL.
Взаимоисключающий с 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.

Примечания

Примечание

  • По умолчанию аутентификация предполагает, что вы вошли в систему или используете 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_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 test_table in db test_db
  postgresql_query:
    db: test_db
    query: INSERT INTO test_table (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

- name: Example of using autocommit parameter
  postgresql_query:
    db: test_db
    query: VACUUM
    autocommit: yes

- name: >
    Insert data to the column of array type using positional_args.
    Note that we use quotes here, the same as for passing JSON, etc.
  postgresql_query:
    query: INSERT INTO test_table (array_column) VALUES (%s)
    positional_args:
    - '{1,2,3}'

# Pass list and string vars as positional_args
- name: Set vars
  set_fact:
    my_list:
    - 1
    - 2
    - 3
    my_arr: '{1, 2, 3}'

- name: Select from test table by passing positional_args as arrays
  postgresql_query:
    query: SELECT * FROM test_array_table WHERE arr_col1 = %s AND arr_col2 = %s
    positional_args:
    - '{{ my_list }}'
    - '{{ my_arr|string }}'

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

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

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

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

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

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

Пример:
INSERT 0 1


Статус

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

Авторы

  • 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.9/modules/postgresql_query_module.html

Spec-Zone.ru

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