community.proxysql.proxysql_backend_servers 模块 – 通过 ProxySQL 管理界面添加或移除 MySQL 主机

注意

此模块是 community.proxysql 集合 (版本 1.6.0) 的一部分。

如果您使用的是 ansible 包,则可能已安装此集合。它不包含在 ansible-core 中。要检查它是否已安装,请运行 ansible-galaxy collection list

要安装它,请使用:ansible-galaxy collection install community.proxysql。您需要其他需求才能使用此模块,请参阅 需求 获取详细信息。

要在 playbook 中使用它,请指定:community.proxysql.proxysql_backend_servers

概要

需求

执行此模块的主机需要以下需求。

  • PyMySQL

  • mysqlclient

参数

参数

注释

comment

字符串

可用于用户定义的任何用途的文本字段。可以是对主机存储内容的描述、主机添加或禁用的提醒,或者由某些检查脚本处理的 JSON。

默认值: ""

compression

整数

如果 compression 值大于 0,则与该服务器的新连接将使用压缩。如果省略,则 ProxySQL 数据库的 compression 默认值为 0。

config_file

路径

指定从中读取 login_userlogin_password 的配置文件。

默认值: ""

hostgroup_id

整数

此 mysqld 实例包含在其中的主机组。一个实例可以属于一个或多个主机组。

默认值: 0

hostname

字符串 / 必需

可以联系 mysqld 实例的 IP 地址。

load_to_runtime

布尔值

动态将配置加载到运行时内存。

选项

  • false

  • true ← (默认)

login_host

字符串

用于连接到 ProxySQL 管理界面的主机。

默认值: "127.0.0.1"

login_password

字符串

用于对 ProxySQL 管理界面进行身份验证的密码。

login_port

整数

用于连接到 ProxySQL 管理界面的端口。

默认值: 6032

login_unix_socket

字符串

用于连接到 ProxySQL 管理界面的套接字。

login_user

字符串

用于对 ProxySQL 管理界面进行身份验证的用户名。

max_connections

整数

ProxySQL 将为此后端服务器打开的最大连接数。如果省略,则 ProxySQL 数据库的 max_connections 默认值为 1000。

max_latency_ms

整数

定期监控 ping 时间。如果主机的 ping 时间大于 max_latency_ms,则将其从连接池中排除(尽管服务器仍然处于联机状态)。如果省略,则 ProxySQL 数据库的 max_latency_ms 默认值为 0。

max_replication_lag

整数

如果大于 0,ProxySQL 将定期监控复制延迟。如果复制延迟超过 max_replication_lag,ProxySQL 将暂时屏蔽服务器,直到复制赶上。如果省略,则 ProxySQL 数据库的 max_replication_lag 默认值为 0。

port

整数

可以联系 mysqld 实例的端口。

默认值: 3306

save_to_disk

布尔值

将配置保存到磁盘上的 sqlite 数据库以持久化配置。

选项

  • false

  • true ← (默认)

state

字符串

present 时 - 添加主机,当 absent 时 - 移除主机。

选项

  • "present" ← (默认)

  • "absent"

status

字符串

ONLINE - 后端服务器完全运行。OFFLINE_SOFT - 当服务器处于 OFFLINE_SOFT 模式时,连接将一直保持使用,直到当前事务完成。这允许优雅地分离后端。OFFLINE_HARD - 当服务器处于 OFFLINE_HARD 模式时,现有连接将被断开,而新的传入连接也不会被接受。如果省略,则 ProxySQL 数据库的 status 默认值为 ONLINE

选项

  • "ONLINE"

  • "OFFLINE_SOFT"

  • "OFFLINE_HARD"

use_ssl

布尔值

如果 use_ssl 设置为 True,则将使用 SSL 连接与该服务器建立连接。如果省略,则 ProxySQL 数据库的 use_ssl 默认值为 False

选项

  • false

  • true

weight

整数

服务器的权重相对于其他服务器权重越大,则从主机组中选择该服务器的概率越高。如果省略,proxysql 数据库的weight默认值为 1。

注释

注意

  • 支持 check_mode

示例

---
# This example adds a server, it saves the mysql server config to disk, but
# avoids loading the mysql server config to runtime (this might be because
# several servers 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 server
  community.proxysql.proxysql_backend_servers:
    login_user: 'admin'
    login_password: 'admin'
    hostname: 'mysql01'
    state: present
    load_to_runtime: false

# This example removes a server, saves the mysql server config to disk, and
# dynamically loads the mysql server config to runtime.  It uses credentials
# in a supplied config file to connect to the proxysql admin interface.

- name: Remove a server
  community.proxysql.proxysql_backend_servers:
    config_file: '~/proxysql.cnf'
    hostname: 'mysql02'
    state: absent

返回值

常见的返回值已在 此处 记录,以下是此模块特有的字段

描述

标准输出

字典

从 proxysql 中修改或删除的 MySQL 主机

返回值: 创建/更新时将返回新修改的主机,删除时将返回已删除的记录。

示例: {"changed": true, "hostname": "192.168.52.1", "msg": "已将服务器添加到 mysql_hosts", "server": {"comment": "", "compression": "0", "hostgroup_id": "1", "hostname": "192.168.52.1", "max_connections": "1000", "max_latency_ms": "0", "max_replication_lag": "0", "port": "3306", "status": "ONLINE", "use_ssl": "0", "weight": "1"}, "state": "present"}

作者

  • Ben Mildren (@bmildren)