Skip to main content

Automated ElasticSearch cluster rolling restarts/upgrades via SaltStack

Project description

Rollastic
=========

Elasticsearch cluster management, namely rolling restart and upgrades.
Your cluster should be deployed/managed via SaltStack; this is meant to be ran on your Salt master.

While currently not a *hard* requirement (as far as states applied on an upgrade, a highstate is performed), we
recommend to use our fork of the elasticsearch Salt formula: https://github.com/vkgit/saltstack-elasticsearch-formula,
as further integration will happen in the future.


Install
-------

```
pip install rollastic
```

Usage
-----

### Restart

```
Usage: rollastic restart [OPTIONS] MASTER_NODE

Rolling restart of cluster.

MASTER_NODE is the initial node to query to get the list of master nodes
to connect to. Rollastic will connect to all master nodes to avoid relying
on one to be up for the roll procedure.

This will:
- Collect and order the nodes to roll.
If you opted to include master nodes, they are always done first.
- Wait until cluster is in green health
- For each node from #1 above
If node's heap used percentage is over kill-at-heap:
* Disable cluster allocation
* Ping node through Salt to verify connectivity
* Shutdown node
* Wait for ES to die for 2m.
If it's not dead, run a killall java and wait another 2m.
If it's still not dead, fail.
* Start elasticsearch service through Salt
* Wait until node joins cluster with an uptime within 120s.
* Enable allocation
* Wait until cluster is in green health

Options:
--masters / --no-masters Restart master nodes as well [false]
--datas / --no-datas Restart data nodes [true]
--kill-at-heap INTEGER Heap used percentage threshold to restart that
node [85]
--help Show this message and exit.
```

### Upgrade

```
Usage: rollastic upgrade [OPTIONS] MASTER_NODE

Rolling upgrade of cluster.

MASTER_NODE is the initial node to query to get the list of master nodes
to connect to. Rollastic will connect to all master nodes to avoid relying
on one to be up for the roll procedure.

This will:
- Collect and order the nodes to roll.
If you opted to include master nodes, they are always done first.
- Wait until cluster is in green health
- For each node from #1 above
If node's ES version is under minimum_version:
* Disable cluster allocation
* Ping node through Salt to verify connectivity
* Run a Salt highstate
* Check for an available upgrade on the Elasticsearch package, if so:
- Shutdown node
- Wait for ES to die for 2m.
If it's not dead, run a killall java and wait another 2m.
If it's still not dead, fail.
* If ES was stopped at any point in this:
- Start elasticsearch service if it's not already started
- Wait until node joins cluster with an uptime within 120s.
* Enable allocation
* Wait until cluster is in green health

Options:
--masters / --no-masters Restart master nodes as well [false]
--datas / --no-datas Restart data nodes [true]
--minimum-version TEXT Minimum version to upgrade to [1.7.1]
--help Show this message and exit.
```

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

rollastic-0.0.7.tar.gz (20.8 kB view details)

Uploaded Source

File details

Details for the file rollastic-0.0.7.tar.gz.

File metadata

  • Download URL: rollastic-0.0.7.tar.gz
  • Upload date:
  • Size: 20.8 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No

File hashes

Hashes for rollastic-0.0.7.tar.gz
Algorithm Hash digest
SHA256 b9febb2068d014ba7f02a9ccce83c120fb11d44b3ad84295d3b5f687263fc1fe
MD5 ad31c05a2b3d3252c75dcb2b3f13c843
BLAKE2b-256 c9c48269e64d023cba4ed2bcc025858ca9b62066a9c23d3bc56f9eff5f1c7b88

See more details on using hashes here.

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page