community.general.redis 模块 – 各种 redis 命令、副本和刷新

注意

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

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

要安装它,请使用:ansible-galaxy collection install community.general。您需要进一步的要求才能使用此模块,请参阅 要求 了解详细信息。

要在 playbook 中使用它,请指定:community.general.redis

概要

  • 与 redis 实例交互的统一实用程序。

要求

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

  • certifi

  • redis

参数

参数

注释

ca_certs

字符串

在 community.general 4.6.0 中添加

根证书文件的路径。如果未设置且 tls 设置为 true,则将使用 certifi ca-certificates。

client_cert_file

字符串

在 community.general 9.3.0 中添加

客户端证书文件的路径。

client_key_file

字符串

在 community.general 9.3.0 中添加

客户端私钥文件的路径。

command

字符串

选择的 redis 命令

config 确保实例上的配置设置。

flush 刷新所有实例或指定的数据库。

replica 将 redis 实例设置为副本或主模式。(slavereplica 的别名。)

选择

  • "config"

  • "flush"

  • "replica"

  • "slave"

db

整数

要刷新的数据库(在 db 模式下使用)[flush 命令]

flush_mode

字符串

刷新类型(redis 实例中的所有数据库或特定的数据库)[flush 命令]

选择

  • "all" ← (默认)

  • "db"

login_host

字符串

指定运行数据库的目标主机。

默认值: "localhost"

login_password

字符串

指定用于身份验证的密码。

当目标是 localhost 时通常不使用。

login_port

整数

指定要连接的端口。

默认值: 6379

login_user

字符串

在 community.general 4.6.0 中添加

指定用于身份验证的用户。

需要 redis >= 3.4.0。

master_host

字符串

主实例的主机 [replica 命令]

master_port

整数

主实例的端口 [replica 命令]

name

字符串

redis 配置键。

replica_mode

别名:slave_mode

字符串

redis 实例的模式 [replica 命令]

slavereplica 的别名。

选择

  • "master"

  • "replica" ← (默认)

  • "slave"

tls

布尔值

在 community.general 4.6.0 中添加

指定是否对连接使用 TLS。

选择

  • false ← (默认)

  • true

validate_certs

布尔值

在 community.general 4.6.0 中添加

指定是否验证 TLS 证书。

仅应针对个人控制的站点或以 localhost 作为目标关闭此项。

选择

  • false

  • true ← (默认)

value

字符串

redis 配置值。当需要内存大小时,可以以 1KB、2M、400MB 的常用形式指定,其中基数为 1024。单位不区分大小写,即 1m = 1mb = 1M = 1MB。

属性

属性

支持

描述

check_mode

支持: 完全

可以在 check_mode 下运行,并返回更改状态预测,而无需修改目标。

diff_mode

支持:

当处于 diff 模式时,将返回已更改(或可能需要在 check_mode 中更改)的详细信息。

注释

注意

  • 远程主机上需要 redis-py Python 包。 您可以使用 pip (pip install redis) 或软件包管理器安装它。 https://github.com/andymccurdy/redis-py

  • 如果我们正在复制的 Redis 主实例受密码保护,则需要在主实例的 redis.conf 中的 masterauth 变量中设置密码

  • 远程主机上需要 redis Python 包。 您可以使用 pip (pip install redis) 或软件包管理器安装它。 有关该库的信息,请访问 https://github.com/andymccurdy/redis-py

另请参阅

另请参阅

community.general.redis_info

收集有关 Redis 服务器的信息。

示例

- name: Set local redis instance to be a replica of melee.island on port 6377
  community.general.redis:
    command: replica
    master_host: melee.island
    master_port: 6377

- name: Deactivate replica mode
  community.general.redis:
    command: replica
    replica_mode: master

- name: Flush all the redis db
  community.general.redis:
    command: flush
    flush_mode: all

- name: Flush only one db in a redis instance
  community.general.redis:
    command: flush
    db: 1
    flush_mode: db

- name: Configure local redis to have 10000 max clients
  community.general.redis:
    command: config
    name: maxclients
    value: 10000

- name: Configure local redis maxmemory to 4GB
  community.general.redis:
    command: config
    name: maxmemory
    value: 4GB

- name: Configure local redis to have lua time limit of 100 ms
  community.general.redis:
    command: config
    name: lua-time-limit
    value: 100

- name: Connect using TLS and certificate authentication
  community.general.redis:
    command: config
    name: lua-time-limit
    value: 100
    tls: true
    ca_certs: /etc/redis/certs/ca.crt
    client_cert_file: /etc/redis/certs/redis.crt
    client_key_file: /etc/redis/certs/redis.key

作者

  • Xabier Larrakoetxea (@slok)