proxysql_query_rules – Изменяет правила запросов с помощью админ-интерфейса proxysql.
Новое в версии 2.3.
Обзор
- Модуль proxysql_query_rules изменяет правила запросов с помощью админ-интерфейса proxysql.
Требования
Ниже приведены требования к хосту, на котором будет выполняться этот модуль.
- PyMySQL (Python 2.7 и Python 3.X), или
- MySQLdb (Python 2.x)
Параметры
| Параметр | Варианты/Значения по умолчанию | Комментарии |
|---|---|---|
| active - | Правило с active, установленным в False, будет отслеживаться в базе данных, но никогда не будет загружено в структуры данных в оперативной памяти. | |
| apply - | Используется в сочетании с flagIN и flagOUT для создания цепочек правил. Установка apply в True означает последнее применяемое правило. | |
| cache_ttl - | Количество миллисекунд, на которое будет кэшироваться результат запроса. Обратите внимание, что в ProxySQL 1.1 cache_ttl измерялся в секундах. | |
| client_addr - | Сопоставление трафика из определенного источника. | |
| comment - | Поле свободного текста, которое может использоваться для описания правила запроса. | |
| config_file - | По умолчанию: "" | Укажите конфигурационный файл, из которого необходимо считать login_user и login_password. |
| delay - | Количество миллисекунд, на которое задерживается выполнение запроса. Это, по сути, механизм ограничения скорости и QoS, позволяющий указать приоритет запросов. Это значение добавляется к глобальной переменной mysql-default_query_delay, которая применяется ко всем запросам. | |
| destination_hostgroup - | Маршрутизация сопоставленных запросов в этот набор хостов. Это происходит, если нет начатой транзакции, и у пользователя, который вошел в систему, установлено transaction_persistent в значение True\ (см. proxysql_mysql_users). | |
| digest - | Сопоставление запросов со специфическим дайджестом, возвращаемым stats_mysql_query_digest.digest. | |
| error_msg - | Запрос будет заблокирован, и указанное значение error_msg будет возвращено клиенту. | |
| flagIN - | Используется в сочетании с flagOUT и apply для создания цепочек правил. | |
| flagOUT - | Используется в сочетании с flagIN и apply для создания цепочек правил. При установке, flagOUT указывает на flagIN, который будет использован в следующей цепочке правил. | |
| force_delete - | По умолчанию: "нет" | По умолчанию, мы избегаем удаления более одного расписания в одной группе, однако если вам необходим этот функционал и вы не беспокоитесь о удаленных расписаниях, можно установить force_delete в True. |
| load_to_runtime boolean |
| Динамическая загрузка конфигурации в оперативную память. |
| log - | Запрос будет залогирован. | |
| login_host - | По умолчанию: "127.0.0.1" | Хост, используемый для подключения к админ-интерфейсу ProxySQL. |
| login_password - | Пароль, используемый для аутентификации в админ-интерфейсе ProxySQL. | |
| login_port - | По умолчанию: 6032 | Порт, используемый для подключения к админ-интерфейсу 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 может использоваться для зеркалирования запросов на тот же или другой набор хостов. | |
| negate_match_pattern - | Если negate_match_pattern установлено в True, только запросы, не соответствующие тексту запроса, будут считаться совпадением. Это действует как оператор NOT перед регулярным выражением, сопоставляемым с match_pattern. | |
| proxy_addr - | Сопоставление входящего трафика по определенному локальному IP-адресу. | |
| proxy_port - | Сопоставление входящего трафика по определенному локальному порту. | |
| replace_pattern - | Это шаблон, который необходимо заменить найденному шаблону. Обратите внимание, что это необязательно, и при его отсутствии обработчик запросов будет только кэшировать, маршрутизировать или устанавливать другие параметры без переписывания. | |
| retries - | Максимальное количество попыток повторного выполнения запроса в случае обнаружения ошибки во время выполнения запроса. Если retries не указано, применяется глобальная переменная mysql-query_retries_on_failure. | |
| rule_id - | Уникальный идентификатор правила. Правила обрабатываются в порядке rule_id. | |
| save_to_disk boolean |
| Сохранение конфигурации в базу данных sqlite на диске для сохранения конфигурации. |
| schemaname - | Критерии фильтрации, сопоставляемые с schemaname. Если schemaname не NULL, запрос будет соответствовать только в том случае, если соединение использует schemaname в качестве своего схемы по умолчанию. | |
| state - |
| При значении present\ - добавляет правило, при значении absent\ - удаляет правило. |
| timeout - | Максимальное время ожидания в миллисекундах для выполнения сопоставленного или переписанного запроса. Если запрос выполняется дольше указанного предела, запрос автоматически завершается. Если timeout не указан, применяется глобальная переменная mysql-default_query_timeout. | |
| username - | Критерии фильтрации, сопоставляемые с именем пользователя. Если username не NULL, запрос будет соответствовать только в том случае, если соединение выполнено с правильным именем пользователя. |
Примеры
---
# This example adds a rule to redirect queries from a specific user to another
# hostgroup, it saves the mysql query rule config to disk, but avoids loading
# the mysql query config 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 M(proxysql_manage_config) module). It uses supplied
# credentials to connect to the proxysql admin interface.
- proxysql_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
# mysql query rule config to disk, and dynamically loads the mysql query rule
# config to runtime. It uses credentials in a supplied config file to connect
# to the proxysql admin interface.
- proxysql_query_rules:
config_file: '~/proxysql.cnf'
username: 'guest_ro'
state: absent
force_delete: true
Значения возврата
Общие значения возвращаемых данных описаны здесь, следующие поля уникальны для данного модуля:
| Ключ | Возвращаемое значение | Описание |
|---|---|---|
| stdout словарь | При создании/обновлении вернет изменённое правило, в остальных случаях вернёт список правил, соответствующих заданным критериям. | Пользователь MySQL, изменённый или удалённый из proxysql Пример: {'changed': True, 'msg': 'Добавленное правило для mysql_query_rules', 'rules': [{'active': '0', 'apply': '0', 'cache_ttl': None, 'client_addr': None, 'comment': None, 'delay': None, 'destination_hostgroup': 1, 'digest': None, 'error_msg': None, 'flagIN': '0', 'flagOUT': None, 'log': None, 'match_digest': None, 'match_pattern': None, 'mirror_flagOUT': None, 'mirror_hostgroup': None, 'negate_match_pattern': '0', 'proxy_addr': None, 'proxy_port': None, 'reconnect': None, 'replace_pattern': None, 'retries': None, 'rule_id': '1', 'schemaname': None, 'timeout': None, 'username': 'guest_ro'}], 'state': 'present'} |
Статус
- В данном модуле гарантированы отсутствие обратной несовместимости в будущих изменениях. [stableinterface]
- Данный модуль поддерживается сообществом Ansible. [community]
Авторы
- Ben Mildren (@bmildren)
Подсказка
Если вы обнаружите какие-либо проблемы в этой документации, вы можете изменить этот документ, чтобы улучшить его.
© 2012–2018 Michael DeHaan
© 2018–2019 Red Hat, Inc.
Licensed under the GNU General Public License version 3.
https://docs.ansible.com/ansible/2.7/modules/proxysql_query_rules_module.html