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)