How do you manage your agents updates

Hello everyone, :slight_smile:

I’m wondering how you are updating all your agents in a “simple” way ?
Let’s say you have plenty (100+ or more) agents on differents OS (windows, debian, centos, etc).
What are you using ?

Thx in advance

Mostly configuration management with tools like Puppet, Ansible or similar.

The easiest way to get started, and take care about update only would be Ansible, which also supports Windows via WinRM and Powershell.

Getting Started with Ansible

Official project:

Community based:

2 Likes

Hi,

first of all every department in our company is self-responsible for the updates on their servers. If there are updates to install they get informations (e.g. from icinga with the update check).

Linux (in our case CentOS):
If you are using the official repo, the updates are comming with all the other linux and program updates. So everybody install the updates for their servers with a package manager like yum.
For central configuration management we are using salt. So with this it would be also possible to start the updates from the salt-server.

Windows:
We are using the PS-Modul (https://github.com/Icinga/icinga2-powershell-module) to install icinga on windows machines. And every icinga agents gets some standard checks too monitor them (like “Cluster”, “icinga” etc.).
A colleague from the server group wrote another PowerShell-Script. He is parsing a list from icingaweb2 (e.g. https://icinga-Server/icingaweb2/monitoring/list/services?service=icinga*&sort=host_name). In the output of the icinga-check you can find the installed version. If this version is older than the version we want to install, his script is doing a remote connection to every server from the list to run the Icinga-PS-modul to update the icinga agent.
With this solution you have to put the setup file and the Icinga-PS-Modul on a share which every server can access (maybe a Problem with dmz Servers) or you copy the latest version from both on the server.

3 Likes

Thx you both of you for your answers.

I didn’t know the PowerShell module. Thank you, I’ll have a look.

Quite difficult to do so for us.

Update Linux agent seems easier than Windows’ agent … (as always).

:+1:

Thx

1 Like

Powershell Remoting is very powerful, can be used for Ansible, and custom scripts.

We are currently experimenting with more features on Windows… This should also easy installation, based on PS Remoting

1 Like

If PowerShell is too complicated for you, you should thank about a Software managment software for Windows Server. Microsoft offers e.g. SCCM.
But like @mfrosch wrote: Powershell is very powerful!

No it’s not the usage of Powershell that is a problem for us.
But more the shared server

ok, than you could copy the files (setup file and PS-modul) with your own PS-script via remote connection to every Server. Than you don’t Need a share or Network drive :wink:
like

  1. connect to Server
  2. copy the (actual files) to the local drive on the server
  3. run the icinga-PS-Modul for update the icinga agent
  4. disconnect from the Server.
1 Like

One thing which also comes to mind - manage scripts in a central Git repository and check that out on clients. We used to do that in my previous job before we knew about Puppet. For binaries, use SMB/Samba or rsync all the way.

+1 for ansible from me. Customer rely on several different solution. For my personal setup I use Ansible.

1 Like

Ansible prefered for me also.
It is used for the plugins / icinga2.conf / constants.conf / plugins / commands.conf files.

2 Likes