Spec-Zone.ru › Ansible 2.11

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
    Варианты:
  • no
  • yes
Правило с active, установленным в значение False, будет отслеживаться в базе данных, но никогда не будет загружаться во внутренние структуры данных.
apply
boolean
    Варианты:
  • no
  • yes
Используется в сочетании с 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
    Варианты:
  • no ←
  • yes
По умолчанию мы избегаем удаления более одного расписания в одной партии, но если вам нужна эта функциональность и вы не беспокоитесь о удаленных расписаниях, вы можете установить force_delete в значение True.
load_to_runtime
boolean
    Варианты:
  • no
  • yes ←
Динамическая загрузка конфигурации в оперативную память.
log
boolean
    Варианты:
  • no
  • yes
Запрос будет записан в журнал.
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
    Варианты:
  • no
  • yes
Если 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
    Варианты:
  • no
  • yes ←
Сохранение конфигурации в базу данных sqlite на диске для сохранения конфигурации.
schemaname
string
Критерии фильтрации, соответствующие schemaname. Если schemaname не NULL, запрос будет соответствовать только в том случае, если подключение использует schemaname в качестве своего схемы по умолчанию.
state
string
    Варианты:
  • present ←
  • absent
Когда 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

Пример:
{'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'}


Авторы

  • Бен Милдрен (@bmildren)

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

Spec-Zone.ru

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