community.general.aerospike_migrations 模块 – 检查或等待节点之间的迁移

注意

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

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

要安装它,请使用:ansible-galaxy collection install community.general

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

概要

  • 这可以用来检查集群中的迁移。这使得在 Aerospike 节点上进行滚动升级/更新变得容易。

  • 如果不需要等待迁移,只需轮询直到端口 3000 可用,或者 asinfo -v status 返回 ok

参数

参数

注释

connect_timeout

整数

在放弃连接之前尝试连接的时间(毫秒)

默认值: 1000

consecutive_good_checks

整数

集群应该连续多少次报告“没有迁移”才返回 OK 到 Ansible?

默认值: 3

fail_on_cluster_change

布尔值

如果集群密钥发生变化,则失败。如果其他东西正在更改集群,我们可能希望失败

选择

  • false

  • true ← (默认)

host

字符串

我们使用哪个主机作为信息连接的种子

默认值: "localhost"

local_only

布尔值 / 必需

您是否只想在返回之前检查本地节点上的迁移,还是希望集群中的所有节点都完成迁移才返回?

选择

  • false

  • true

migrate_rx_key

字符串

用于确定我们是否剩余 rx 迁移的度量密钥。由于向后兼容性,可更改。

默认值: "migrate_rx_partitions_remaining"

migrate_tx_key

字符串

用于确定我们是否剩余 tx 迁移的度量密钥。由于向后兼容性,可更改。

默认值: "migrate_tx_partitions_remaining"

min_cluster_size

整数

在满足集群大小或用尽尝试次数之前,检查将返回错误

默认值: 1

port

整数

连接到 Aerospike 的端口(服务端口)

默认值: 3000

sleep_between_checks

整数

每次检查之间休眠的时间(秒)。

默认值: 60

target_cluster_size

整数

当集群中所有 aerospike 构建版本都大于 4.3 时,将使用 cluster-stable 信息命令。在此命令中,您可以选择指定目标集群大小 - 但这不是必需的。如果您不想使用此选项,仍然可以依赖 min_cluster_size。

如果在至少有 1 个主机 <4.3 的集群上指定此选项,则在最小版本达到 4.3 之前将被忽略。

tries_limit

整数

在放弃并失败之前,我们轮询多少次?

默认值: 300

属性

属性

支持

描述

check_mode

支持: 完全

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

diff_mode

支持:

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

示例

# check for migrations on local node
- name: Wait for migrations on local node before proceeding
  community.general.aerospike_migrations:
    host: "localhost"
    connect_timeout: 2000
    consecutive_good_checks: 5
    sleep_between_checks: 15
    tries_limit: 600
    local_only: false

# example playbook:
- name: Upgrade aerospike
  hosts: all
  become: true
  serial: 1
  tasks:
    - name: Install dependencies
      ansible.builtin.apt:
        name:
            - python
            - python-pip
            - python-setuptools
        state: latest
    - name: Setup aerospike
      ansible.builtin.pip:
          name: aerospike
# check for migrations every (sleep_between_checks)
# If at least (consecutive_good_checks) checks come back OK in a row, then return OK.
# Will exit if any exception, which can be caused by bad nodes,
# nodes not returning data, or other reasons.
# Maximum runtime before giving up in this case will be:
# Tries Limit * Sleep Between Checks * delay * retries
    - name: Wait for aerospike migrations
      community.general.aerospike_migrations:
          local_only: true
          sleep_between_checks: 1
          tries_limit: 5
          consecutive_good_checks: 3
          fail_on_cluster_change: true
          min_cluster_size: 3
          target_cluster_size: 4
      register: migrations_check
      until: migrations_check is succeeded
      changed_when: false
      delay: 60
      retries: 120
    - name: Another thing
      ansible.builtin.shell: |
          echo foo
    - name: Reboot
      ansible.builtin.reboot:

作者

  • Albert Autin (@Alb0t)