Spec-Zone.ru › Ansible

Модуль community.proxysql.proxysql_pgsql_query_rules — изменение правил запросов pgsql с помощью интерфейса администратора proxysql

Примечание

Этот модуль входит в коллекцию community.proxysql (версия 1.8.0).

Возможно, эта коллекция уже установлена, если вы используете пакет ansible. Она не включена в ansible-core. Чтобы проверить, установлена ли она, выполните ansible-galaxy collection list.

Для установки используйте: ansible-galaxy collection install community.proxysql. Для использования этого модуля необходимы дополнительные требования; подробности см. в разделе Требования.

Чтобы использовать модуль в плейбуке, укажите: community.proxysql.proxysql_pgsql_query_rules.

Добавлено в community.proxysql 1.8.0

  • Краткое описание
  • Требования
  • Параметры
  • Атрибуты
  • Примеры
  • Возвращаемые значения

Краткое описание

  • Модуль community.proxysql.proxysql_pgsql_query_rules изменяет правила запросов pgsql с помощью интерфейса администратора proxysql.

Требования

На узле, выполняющем этот модуль, должны быть соблюдены следующие требования.

  • PyMySQL
  • mysqlclient

Параметры

Параметр

Комментарии

active

логический

Правило со значением active, равным False, будет сохранено в базе данных, но никогда не будет загружено в структуры данных в памяти. Если параметр не указан, значение по умолчанию для active в базе данных proxysql — False.

Варианты:

  • false
  • true

apply

логический

Используется совместно с flagIN и flagOUT для создания цепочек правил. Значение True для apply означает, что это последнее применяемое правило. Если параметр не указан, значение по умолчанию для apply в базе данных proxysql — False.

Варианты:

  • false
  • true

attributes

строка

Поле JSON, которое можно использовать для указания балансировки нагрузки между группами хостов на основе правил запросов. Если параметр не указан, значение по умолчанию для attributes в базе данных proxysql — ''.

cache_empty_result

логический

Определяет, будут ли кэшироваться наборы результатов без строк.

Варианты:

  • false
  • true

cache_timeout

целое число

Максимальное время ожидания в миллисекундах для кэширования результата запроса.

cache_ttl

целое число

Время в миллисекундах, в течение которого кэшируется результат запроса.

client_addr

строка

Сопоставление трафика с определённым источником.

comment

строка

Поле со свободным текстом, предназначенное для описательного комментария к правилу запроса.

config_file

путь

Укажите файл конфигурации, из которого следует прочитать login_user и login_password.

По умолчанию: ""

database

строка

Критерий фильтрации, соответствующий базе данных. Если database не равно NULL, запрос будет соответствовать правилу, только если в соединении эта база данных используется как схема по умолчанию.

delay

целое число

Задержка выполнения запроса в миллисекундах. Это, по сути, механизм ограничения частоты и обеспечения качества обслуживания (QoS), позволяющий отдавать приоритет одним запросам перед другими.

destination_hostgroup

целое число

Направлять соответствующие запросы в эту группу хостов.

digest

строка

Сопоставление запросов с определённым дайджестом, возвращаемым stats_pgsql_query_digest.digest.

error_msg

строка

Запрос будет заблокирован, а клиенту будет возвращено указанное сообщение error_msg.

flagIN

целое число

Используется совместно с flagOUT и apply для создания цепочек правил. Если параметр не указан, значение по умолчанию для flagIN в базе данных proxysql — 0.

flagOUT

целое число

Используется совместно с flagIN и apply для создания цепочек правил. Если задано, flagOUT указывает flagIN, который будет использоваться в следующей цепочке правил.

force_delete

логический

По умолчанию мы не удаляем более одного правила запроса за одну пакетную операцию. Однако, если вам необходимо такое поведение и вас не беспокоит, какие именно правила запросов будут удалены, задайте для force_delete значение True.

Варианты:

  • false ← (по умолчанию)
  • true

load_to_runtime

логический

Динамически загружать конфигурацию в память среды выполнения.

Варианты:

  • false
  • true ← (по умолчанию)

log

логический

Запрос будет записан в журнал.

Варианты:

  • false
  • true

login_host

строка

Хост для подключения к интерфейсу администратора ProxySQL.

По умолчанию: "127.0.0.1"

login_password

строка

Пароль для аутентификации в интерфейсе администратора ProxySQL.

login_port

целое число

Порт для подключения к интерфейсу администратора ProxySQL.

По умолчанию: 6032

login_unix_socket

строка

Сокет для подключения к интерфейсу администратора ProxySQL.

login_user

строка

Имя пользователя для аутентификации в интерфейсе администратора ProxySQL.

match_digest

строка

Регулярное выражение, соответствующее дайджесту запроса. Используется диалект регулярных выражений re2 — https://github.com/google/re2.

match_pattern

строка

Регулярное выражение, соответствующее тексту запроса. Используется диалект регулярных выражений re2 — https://github.com/google/re2.

mirror_flagOUT

целое число

Включает зеркалирование запросов. Если задано, mirror_flagOUT можно использовать для проверки зеркального запроса по указанной цепочке правил.

mirror_hostgroup

целое число

Включает зеркалирование запросов. Если задано, mirror_hostgroup можно использовать для зеркалирования запросов в ту же или другую группу хостов.

multiplex

целое число

Если 0, мультиплексирование будет отключено.

Если 1, будет предпринята попытка включить мультиплексирование. Этому могут помешать другие условия.

Если 2, мультиплексирование не отключается только для текущего запроса.

По умолчанию политика мультиплексирования не изменяется.

Варианты:

  • 0
  • 1
  • 2

negate_match_pattern

логический

Если для negate_match_pattern задано значение True, совпадением будут считаться только запросы, не соответствующие тексту запроса. Это действует как оператор NOT перед сопоставлением регулярного выражения с match_pattern. Если параметр не указан, значение по умолчанию для negate_match_pattern в базе данных proxysql — False.

Варианты:

  • false
  • true

next_query_flagIN

целое число

Если задано, это значение станет значением flagIN для следующих запросов.

OK_msg

строка

Для запроса, использующего заданное правило, будет возвращено указанное сообщение.

proxy_addr

строка

Сопоставление входящего трафика с определённым локальным IP-адресом.

proxy_port

целое число

Сопоставление входящего трафика с определённым локальным портом.

re_modifiers

строка

Список параметров, разделённых запятыми, для изменения поведения обработчика регулярных выражений (RE). При использовании CASELESS сопоставление выполняется без учёта регистра. При использовании GLOBAL замена выполняется глобально (заменяются все совпадения, а не только первое). Для обеспечения обратной совместимости по умолчанию включён только параметр CASELESS.

reconnect

логический

Пока не реализовано в ProxySQL.

Варианты:

  • false
  • true

replace_pattern

строка

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

retries

целое число

Максимальное число повторных выполнений запроса при обнаружении сбоя во время его выполнения.

rule_id

целое число

Уникальный идентификатор правила. Правила обрабатываются в порядке возрастания rule_id.

save_to_disk

логический

Сохранить конфигурацию в sqlite-базе данных на диске, чтобы обеспечить её сохранность.

Варианты:

  • false
  • true ← (по умолчанию)

state

строка

При значении present правило добавляется, при значении absent — удаляется.

Варианты:

  • "present" ← (по умолчанию)
  • "absent"

sticky_conn

логический

Пока не реализовано в ProxySQL.

Варианты:

  • false
  • true

timeout

целое число

Максимальное время ожидания в миллисекундах, в течение которого должен выполняться соответствующий запрос или переписанный запрос. Если запрос выполняется дольше заданного порога, он автоматически завершается.

username

строка

Критерий фильтрации, соответствующий имени пользователя. Если username не равно NULL, запрос будет соответствовать правилу, только если соединение установлено с правильным именем пользователя.

Атрибуты

Атрибут

Поддержка

Описание

check_mode

Поддержка: полная

Не вносить изменения в память, на диск или в среду выполнения.

Примеры

---
# This example adds a rule to redirect queries from a specific user to another
# hostgroup, it saves the pgsql query rule config to disk, but avoids loading
# the pgsql query config to runtime (this might be because several rules are
# being added and the user wants to push the config to runtime in a single
# batch using the community.proxysql.proxysql_manage_config module). It uses
# supplied credentials to connect to the proxysql admin interface.

- name: Add a rule
  community.proxysql.proxysql_pgsql_query_rules:
    login_user: admin
    login_password: admin
    username: 'guest_ro'
    match_pattern: "^SELECT.*"
    destination_hostgroup: 1
    active: 1
    retries: 3
    state: present
    load_to_runtime: false

# This example removes all rules that use the username 'guest_ro', saves the
# pgsql query rule config to disk, and dynamically loads the pgsql query rule
# config to runtime.  It uses credentials in a supplied config file to connect
# to the proxysql admin interface.

- name: Remove rules
  community.proxysql.proxysql_pgsql_query_rules:
    config_file: '~/proxysql.cnf'
    username: 'guest_ro'
    state: absent
    force_delete: true

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

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

Ключ

Описание

stdout

словарь

Правило запроса pgsql, изменённое или удалённое из proxysql.

Возвращается: При создании или обновлении возвращает изменённое правило; во всех остальных случаях возвращает список правил, соответствующих заданным критериям.

Пример: {"changed": true, "msg": "Added rule to pgsql_query_rules", "rules": [{"OK_msg": null, "active": "0", "apply": "0", "cache_empty_result": null, "cache_timeout": null, "cache_ttl": null, "client_addr": null, "comment": null, "database": null, "delay": null, "destination_hostgroup": 1, "digest": null, "error_msg": null, "flagIN": "0", "flagOUT": null, "log": null, "match_digest": null, "match_pattern": null, "mirror_flagOUT": null, "mirror_hostgroup": null, "multiplex": null, "negate_match_pattern": "0", "proxy_addr": null, "proxy_port": null, "reconnect": null, "replace_pattern": null, "retries": null, "rule_id": "1", "timeout": null, "username": "guest_ro"}], "state": "present"}

Авторы

  • Janos Ruszo (@jruszo)

Ссылки на коллекцию

  • Отслеживание проблем
  • Репозиторий (исходный код)

© 2012–2018 Michael DeHaan
© 2018–2025 Red Hat, Inc.
Licensed under the GNU General Public License version 3.
https://docs.ansible.com/projects/ansible/latest/collections/community/proxysql/proxysql_pgsql_query_rules_module.html

Spec-Zone.ru

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