community.proxysql.proxysql_query_rules – Изменяет правила запросов, используя интерфейс администрирования proxysql.
Примечание
Этот плагин входит в коллекцию community.proxysql (версия 1.0.0).
Для его установки используйте: ansible-galaxy collection install community.proxysql.
Чтобы использовать его в книге задач, укажите: community.proxysql.proxysql_query_rules.
Обзор
- Модуль community.proxysql.proxysql_query_rules изменяет правила запросов, используя интерфейс администрирования proxysql.
Требования
Ниже перечислены требования, необходимые на хосте, на котором выполняется этот модуль.
- PyMySQL (Python 2.7 и Python 3.X), или
- MySQLdb (Python 2.x)
Параметры
| Параметр | Варианты/Значения по умолчанию | Комментарии |
|---|---|---|
| active boolean |
| Правило с active, установленным в False, будет отслеживаться в базе данных, но никогда не будет загружаться в структуры данных в оперативной памяти. |
| apply boolean |
| Используется в сочетании с flagIN и flagOUT для создания цепочек правил. Установка apply в True означает последнее правило для применения. |
| cache_ttl integer | Количество миллисекунд, в течение которого сохраняется результат запроса в кэше. Обратите внимание, что в ProxySQL 1.1 параметр cache_ttl был в секундах. | |
| client_addr string | Сопоставление трафика из определённого источника. | |
| comment string | Поле свободного текста, используемое для описательного комментария к правилу запроса. | |
| config_file path | По умолчанию: "" | Укажите файл конфигурации, из которого должны быть считываются login_user и login_password. |
| delay integer | Количество миллисекунд задержки выполнения запроса. Это механизм регулирования скорости и QoS, и позволяет назначать приоритет запросам. Данное значение добавляется к глобальной переменной mysql-default_query_delay, которая применяется ко всем запросам. | |
| destination_hostgroup integer | Маршрутизация сопоставленных запросов в эту группу хостов. Это происходит, если нет начатой транзакции и у вошедшего пользователя установлен параметр transaction_persistent в значение True (см. community.proxysql.proxysql_mysql_users). | |
| digest string | Сопоставление запросов с определённым хэш-кодом, возвращаемым stats_mysql_query_digest.digest. | |
| error_msg string | Запрос будет заблокирован, и указанное error_msg будет возвращено клиенту. | |
| flagIN integer | Используется в сочетании с flagOUT и apply для создания цепочек правил. | |
| flagOUT integer | Используется в сочетании с flagIN и apply для создания цепочек правил. Если задано, flagOUT указывает flagIN для использования в следующей цепочке правил. | |
| force_delete boolean |
| По умолчанию мы избегаем удаления более одного расписания в одной партии, однако если вам нужна эта функциональность и вы не беспокоитесь об удалённых расписаниях, вы можете установить force_delete в значение True. |
| load_to_runtime boolean |
| Динамическая загрузка конфигурации в оперативную память. |
| log boolean |
| Запрос будет записан в журнал. |
| login_host string | По умолчанию: "127.0.0.1" | Хост, используемый для подключения к интерфейсу администрирования ProxySQL. |
| login_password string | Пароль, используемый для аутентификации в интерфейсе администрирования ProxySQL. | |
| login_port integer | По умолчанию: 6032 | Порт, используемый для подключения к интерфейсу администрирования ProxySQL. |
| login_unix_socket string | Сокет, используемый для подключения к интерфейсу администрирования ProxySQL. | |
| login_user string | Имя пользователя, используемое для аутентификации в интерфейсе администрирования ProxySQL. | |
| match_digest string | Регулярное выражение, которое соответствует хэш-коду запроса. Используется диалект регулярных выражений re2 - https://github.com/google/re2 | |
| match_pattern string | Регулярное выражение, которое соответствует тексту запроса. Используется диалект регулярных выражений re2 - https://github.com/google/re2 | |
| mirror_flagOUT integer | Включает зеркалирование запросов. Если задано, mirror_flagOUT может использоваться для оценки зеркального запроса по заданной цепочке правил. | |
| mirror_hostgroup integer | Включает зеркалирование запросов. Если задано, mirror_hostgroup может использоваться для зеркалирования запросов в ту же или другую группу хостов. | |
| negate_match_pattern boolean |
| Если negate_match_pattern установлено в значение True, только запросы, не соответствующие тексту запроса, будут считаться соответствием. Это действует как оператор NOT перед регулярным выражением, сопоставляющим match_pattern. |
| proxy_addr string | Сопоставление входящего трафика по определённому локальному IP-адресу. | |
| proxy_port integer | Сопоставление входящего трафика по определённому локальному порту. | |
| replace_pattern string | Это шаблон, который нужно заменить на сопоставленный шаблон. Обратите внимание, что это необязательно, и при его отсутствии процессор запросов будет только кэшировать, маршрутизировать или устанавливать другие параметры без переписывания. | |
| retries integer | Максимальное количество попыток повторного выполнения запроса в случае обнаружения ошибки во время выполнения запроса. Если retries не указано, применяется глобальная переменная mysql-query_retries_on_failure. | |
| rule_id integer | Уникальный идентификатор правила. Правила обрабатываются в порядке rule_id. | |
| save_to_disk boolean |
| Сохранение конфигурации в базе данных SQLite на диске для сохранения конфигурации. |
| schemaname string | Критерии фильтрации по schemaname. Если schemaname не NULL, запрос будет соответствовать только если соединение использует schemaname в качестве своего стандартной схемы. | |
| state string |
| При present - добавляет правило, при absent - удаляет правило. |
| timeout integer | Максимальное время ожидания в миллисекундах для выполнения сопоставленного или переписанного запроса. Если запрос выполняется дольше, чем указанный порог, запрос автоматически прерывается. Если timeout не указано, применяется глобальная переменная mysql-default_query_timeout. | |
| username string | Критерии фильтрации по имени пользователя. Если 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 community.general.proxysql_manage_config module). It
# uses supplied credentials to connect to the proxysql admin interface.
- name: Add a rule
community.proxysql.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.
- name: Remove rules
community.proxysql.proxysql_query_rules:
config_file: '~/proxysql.cnf'
username: 'guest_ro'
state: absent
force_delete: true
Возвращаемые значения
Общие возвращаемые значения описаны здесь, следующие поля уникальны для этого модуля:
| Ключ | Возвращаемое значение | Описание |
|---|---|---|
| stdout словарь | При создании/обновлении вернет новую измененную запись, в остальных случаях вернет список правил, соответствующих заданным критериям. | Данные о пользователе mysql, измененном или удаленном из proxysql Пример: {'изменено': True, 'сообщение': 'Добавленное правило в mysql_query_rules', 'правила': [{'активный': '0', 'применить': '0', 'кеш_ttl': None, 'адрес_клиента': None, 'комментарий': None, 'задержка': None, 'группа_хостов_назначения': 1, 'хеш': None, 'сообщение_ошибки': None, 'флагВ': '0', 'флагИЗ': None, 'журнал': None, 'соответствующий_хеш': None, 'соответствующий_шаблон': None, 'флаг_зеркалаИЗ': None, 'группа_хостов_зеркала': None, 'отрицание_соответствия_шаблону': '0', 'адрес_прокси': None, 'порт_прокси': None, 'переподключение': None, 'замена_шаблона': None, 'повторные_попытки': None, 'id_правила': '1', 'имя_схемы': None, 'таймаут': None, 'имя_пользователя': 'guest_ro'}], 'состояние': 'present'} |
Авторы
- 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.10/collections/community/proxysql/proxysql_query_rules_module.html