NETWAYS / ansible-collection-elasticstack

A collection to install and manage the Elastic Stack
GNU General Public License v3.0
9 stars 8 forks source link

Add code for automatic updates #250

Closed widhalmt closed 2 months ago

widhalmt commented 10 months ago

Adding playbook contributed by @xtruthx

I have to admit, I kept this playbook for waaaaay too long. @xtruthx sent it to me a long while back and I always planned to integrate it into the codebase of this collection.

Now I had to face that I took too long and so I put it up publicly. Now I worked it over so that it will fit into the elasticsearch role just well.

This PR also introduces a new role where all "global" variables can be found. This will help determining the correct version of a package to install. Some tasks that were repeated in every role get moved into this role called elasticstack to streamline execution.

This PR now reads the current version of Elasticsearch installed on the CA host and uses it as new installation target for all further installations. This not only helps with upgrading, it will also make sure that you won't have a version mismatch if you install components after the initial install.

Special thanks to @hryamzik for the workaround to run a task file like with serial: 1. Found in https://github.com/ansible/ansible/issues/12170#issuecomment-372263149

Very special thanks to CID GmbH for sponsoring parts of the the development of this PR.

Things that still need to be done:

fixes #216 fixes #286 fixes #236 fixes #205

xtruthx commented 10 months ago

Actually im working in the restructuring PR on it to integrate it. The variables need to be adapt and needs to be modified so that it can handle rpm and deb based systems.

It should not be a part somewhere! It belongs into the role for elasticsearch and should be usable by a flag/tag/bolean variable whatever. I also will integrate to integrate a better maintenance for elasticsearch configuration.

widhalmt commented 10 months ago

I missed the notes that came with the script (translated by yours truly):

widhalmt commented 4 months ago

The rolling restart via Handler in Elasticsearch doesn't work like the task in the same role. Even though I merely copied and weeded out the code.

So for now we have something that's "resembling it a bit". There's separate runs but every task is run on every node. It doesn't wait for all tasks being finished on one node. I guess this will have to stay as it is for now. And we have to hope that config changes don't appear too often after the initial install. Or we find another way. Anyway, I will add an issue and keep it how it is for now.