community.proxysql.proxysql_query_rules модуль — Изменяет правила запросов с помощью интерфейса администрирования proxysql
Примечание
Этот модуль входит в коллекцию community.proxysql (версия 1.6.0).
Эта коллекция может быть уже установлена, если вы используете пакет ansible. Она не включена в ansible-core. Чтобы проверить установку, выполните ansible-galaxy collection list.
Для установки используйте: ansible-galaxy collection install community.proxysql. Для использования этого модуля необходимы дополнительные требования. Подробнее см. Требования.
Для использования в плейбуке укажите: community.proxysql.proxysql_query_rules.
Обзор
- Модуль community.proxysql.proxysql_query_rules изменяет правила запросов с помощью интерфейса администрирования proxysql.
Требования
Ниже приведены требования к хосту, на котором выполняется этот модуль.
- PyMySQL
- mysqlclient
Параметры
Параметр | Комментарии |
|---|---|
active boolean | Правило с параметром active, установленным в Варианты:
|
apply boolean | Используется в сочетании с flagIN и flagOUT для создания цепочек правил. Установка apply в True обозначает последнее правило, которое будет применено. Варианты:
|
cache_empty_result boolean добавлено в community.proxysql 1.1.0 | Управляет тем, будет ли кэшироваться результирующий набор без строк или нет. Варианты:
|
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 установлен в |
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 в Варианты:
|
load_to_runtime boolean | Динамически загрузить конфигурацию в оперативную память. Варианты:
|
log boolean | Запрос будет залогирован. Варианты:
|
login_host string | Хост, используемый для подключения к интерфейсу администрирования ProxySQL. По умолчанию: |
login_password string | Пароль, используемый для аутентификации в интерфейсе администрирования ProxySQL. |
login_port integer | Порт, используемый для подключения к интерфейсу администрирования 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, можно отражать запросы в ту же или другую группу хостов. |
multiplex integer added in community.proxysql 1.1.0 | Если Если Если По умолчанию, не изменяет политики многопоточности. Выбор:
|
negate_match_pattern boolean | Если negate_match_pattern установлено в Выбор:
|
next_query_flagIN integer added in community.proxysql 1.3.0 | При установке его значение станет значением flagIN для последующих запросов. |
OK_msg string added in community.proxysql 1.1.0 | Указанное сообщение будет возвращено для запроса, использующего определённое правило. |
proxy_addr string | Сопоставление входящего трафика со специфическим локальным IP-адресом. |
proxy_port integer | Сопоставление входящего трафика со специфическим локальным портом. |
re_modifiers string added in community.proxysql 1.3.0 | Список опций, разделённых запятыми, для изменения поведения движка RE. С |
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 | При Выбор:
|
timeout integer | Максимальная задержка в миллисекундах, с которой должен быть выполнен сопоставленный или переписанный запрос. Если запрос выполняется дольше, чем заданный порог, запрос автоматически прерывается. Если timeout не указан, применяется глобальная переменная mysql-default_query_timeout. |
username string | Критерии фильтрации, соответствующие имени пользователя. Если username не NULL, запрос будет соответствовать только в том случае, если соединение выполнено с правильным именем пользователя. |
Примечания
Примечание
- Поддерживает
check_mode.
Примеры
---
# 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 demonstrates the situation, if your application tries to set a
# variable that will disable multiplexing, and you think it can be filtered out,
# you can create a filter that returns OK without executing the request.
- name: Add a filter rule
community.proxysql.proxysql_query_rules:
login_user: admin
login_password: admin
match_digest: '^SET @@wait_timeout = ?'
active: 1
OK_msg: 'The wait_timeout variable is ignored'
# This example adds a caching rule for a query that matches the digest.
# The query digest can be obtained from the `stats_mysql_query_digest`
# table. `cache_ttl` is specified in milliseconds. Empty responses are
# not cached.
- name: Add a cache rule
community.proxysql.proxysql_query_rules:
login_user: admin
login_password: admin
rule_id: 1
digest: 0xECA450EA500A9A55
cache_ttl: 30000
cache_empty_result: false
destination_hostgroup: 1
active: true
state: present
save_to_disk: true
load_to_runtime: true
# This example demonstrates how to prevent disabling multiplexing for
# situations where a request contains @.
- name: Add a rule with multiplex
community.proxysql.proxysql_query_rules:
login_user: admin
login_password: admin
rule_id: 1
active: 1
match_digest: '^SELECT @@max_allowed_packet'
multiplex: 2
# This example demonstrates how to use next_query_flagIN argument. It allows
# ProxySQL query rules to be chained. The examples shows how you can have SELECTS
# immediately follow INSERT/UPDATE/DELETE statements to query the primary hostgroup
# and avoid replication lag
- name: Add insert query rule
proxysql_query_rules:
match_digest: "^INSERT"
destination_hostgroup: 1,
next_query_flagIN: 1
- name: Add update query rule
proxysql_query_rules:
match_digest: "^UPDATE"
destination_hostgroup: 1,
next_query_flagIN: 1
- name: Add delete query rules
proxysql_query_rules:
match_digest: "^DELETE"
destination_hostgroup: 1,
next_query_flagIN: 1
- name: Add insert query rules
proxysql_query_rules:
match_digest: ".*"
destination_hostgroup: 1,
next_query_flagIN: 1
comment: Match every queries after an INSERT/UPDATE/DELETE query
# 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. Возвращаемое значение: При создании/обновлении возвращает новую изменённую запись, в остальных случаях возвращает список правил, соответствующих заданным критериям. Пример: |
Ссылки на сборку
© 2012–2018 Michael DeHaan
© 2018–2024 Red Hat, Inc.
Licensed under the GNU General Public License version 3.
https://docs.ansible.com/ansible/latest/collections/community/proxysql/proxysql_query_rules_module.html