aerospike_migrations – Check or wait for migrations between nodes¶
New in version 2.8.
Synopsis¶
This can be used to check for migrations in a cluster. This makes it easy to do a rolling upgrade/update on Aerospike nodes.
If waiting for migrations is not desired, simply just poll until port 3000 if available or asinfo -v status returns ok
Parameters¶
Parameter | Choices/Defaults | Comments |
---|---|---|
connect_timeout
integer
|
Default: 1000
|
How long to try to connect before giving up (milliseconds)
|
consecutive_good_checks
integer
|
Default: 3
|
How many times should the cluster report "no migrations" consecutively before returning OK back to ansible?
|
fail_on_cluster_change
boolean
|
|
Fail if the cluster key changes if something else is changing the cluster, we may want to fail
|
host
string
|
Default: "localhost"
|
Which host do we use as seed for info connection
|
local_only
boolean
/ required
|
|
Do you wish to only check for migrations on the local node before returning, or do you want all nodes in the cluster to finish before returning?
|
migrate_rx_key
string
|
Default: "migrate_rx_partitions_remaining"
|
The metric key used to determine if we have rx migrations remaining. Changeable due to backwards compatibility.
|
migrate_tx_key
string
|
Default: "migrate_tx_partitions_remaining"
|
The metric key used to determine if we have tx migrations remaining. Changeable due to backwards compatibility.
|
min_cluster_size
integer
|
Default: 1
|
Check will return bad until cluster size is met or until tries is exhausted
|
port
integer
|
Default: 3000
|
Which port to connect to Aerospike on (service port)
|
sleep_between_checks
integer
|
Default: 60
|
How long to sleep between each check (seconds).
|
target_cluster_size
integer
|
When all aerospike builds in the cluster are greater than version 4.3, then the
cluster-stable info command will be used. Inside this command, you can optionally specify what the target cluster size is - but it is not necessary. You can still rely on min_cluster_size if you don't want to use this option.If this option is specified on a cluster that has at least 1 host <4.3 then it will be ignored until the min version reaches 4.3.
|
|
tries_limit
integer
|
Default: 300
|
How many times do we poll before giving up and failing?
|
Examples¶
# check for migrations on local node
- name: wait for migrations on local node before proceeding
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
apt:
name:
- python
- python-pip
- python-setuptools
state: latest
- name: setup aerospike
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
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
shell: |
echo foo
- name: reboot
reboot:
Status¶
This module is not guaranteed to have a backwards compatible interface. [preview]
This module is maintained by the Ansible Community. [community]