Skip to content

Update Framework and Components

Icinga for Windows ships with a bunch of Cmdlets, allowing users to manage the entire environment without much effort. This includes features to install entire components, but also allows to update them.

Updating Icinga PowerShell Framework

To update the Framework it is not required to run the installation process again. The Framework ships with a native command for this and is recommended to use, as this allows you to keep your current configuration and cache files. The command is Install-IcingaFrameworkUpdate.

Interactive Update

To start the interactive update with a wizard, asking you on how to update, simply type the command inside your Icinga shell or call Use-Icinga before.

Install-IcingaFrameworkUpdate;

Afterwards you will be asked a bunch of questions, which we explain in the following.

Do you provide a custom repository for "Icinga Framework"? (y/N):

Like any other component, you can type in y or n for this answer. The custom repository is defined as a .zip file you might have downloaded directly from GitHub for the Framework at placed it either on your Icinga webserver somewhere, or locally. If you type no, you can choose if you want to install the latest stable or snapshot.

Which version of the "Icinga Framework" do you want to install? (release/snapshot) (Defaults: "release"):

By default the command will connect to https://github.com/Icinga/icinga-powershell-framework and either fetch the latest stable release if you select release or the current master branch if you use snapshot. Lets assume we update our production environment and therefor using release.

icinga> Install-IcingaFrameworkUpdate
Do you provide a custom repository for "Icinga Framework"? (y/N):
Which version of the "Icinga Framework" do you want to install? (release/snapshot) (Defaults: "release"):
[Notice]: Downloading "Icinga Framework" into "C:\Users\Administrator\AppData\Local\Temp\tmp_icinga1262975608.d"
[Notice]: Installing module into "C:\Users\Administrator\AppData\Local\Temp\tmp_icinga1262975608.d"
[Notice]: Using content of folder "C:\Users\Administrator\AppData\Local\Temp\tmp_icinga1262975608.d\icinga-powershell-framework-1.4.1" for updates
[Notice]: Stopping Icinga Agent service
[Notice]: Stopping service "icinga2"
[Notice]: Removing files from framework
[Notice]: Copying new files to framework
[Notice]: Unblocking Icinga PowerShell Files
[Notice]: Cleaning temporary content
[Notice]: Updating Framework cache file
[Notice]: Framework update has been completed. Please start a new PowerShell instance now to complete the update
[Passed]: Icinga Agent service is installed
[Passed]: The specified user "NT Authority\NetworkService" is allowed to run as service
[Passed]: Directory "C:\ProgramData\icinga2\etc" is accessible and writable by the Icinga Service User "NT Authority\NetworkService"
[Passed]: Directory "C:\ProgramData\icinga2\var" is accessible and writable by the Icinga Service User "NT Authority\NetworkService"
[Passed]: Directory "C:\Program Files\WindowsPowerShell\Modules\icinga-powershell-framework\cache" is accessible and writable by the Icinga Service User "NT Authority\NetworkService"
[Passed]: Icinga Agent configuration is valid
[Passed]: Icinga Agent debug log is disabled
[Notice]: Starting Icinga Agent service
[Notice]: Starting service "icinga2"

Thats it. Your Icinga Agent will now continue it’s work behind without requiring additional actions. If you want to use the new Framework features, you should open a new PowerShell instance to apply the updates to your current session.

Update With Defined Package

To avoid the above wizard and to properly automate the task, the Cmdlet Install-IcingaFrameworkUpdate ships with one additional argument: -FrameworkUrl

As -FrameworkUrl you can define the target to the Icinga PowerShell Frameworks .zip file and directly install this version with the same result as above, but fully automated without questions.

Examples For URL

Local File:

Install-IcingaFrameworkUpdate -FrameworkUrl 'C:\Icinga2\icinga-powershell-framework-1.5.0.zip';

NetworkShare File:

Install-IcingaFrameworkUpdate -FrameworkUrl '\\icinga.example.com\IcingaForWindows\Icinga2\icinga-powershell-framework-1.5.0.zip';

Custom Web Path:

Install-IcingaFrameworkUpdate -FrameworkUrl 'https://example.com/Icinga/icinga-powershell-framework-1.5.0.zip';

GitHub Release:

Install-IcingaFrameworkUpdate -FrameworkUrl 'https://github.com/Icinga/icinga-powershell-framework/archive/refs/tags/v1.5.0.zip';

GitHub Master Branch:

Install-IcingaFrameworkUpdate -FrameworkUrl 'https://github.com/Icinga/icinga-powershell-framework/archive/refs/heads/master.zip';

GitHub Branch

Install-IcingaFrameworkUpdate -FrameworkUrl 'https://github.com/Icinga/icinga-powershell-framework/archive/refs/heads/fix/framework_root_folder_lookup.zip';

Once you enter the command, the update process will continue as shown above earlier

Updating Icinga PowerShell Components

Updating components like plugins is as easy as installing them. If you used the Framework Component Installer as described in every plugin repository, you can use the same command to update the plugins as well.

The command Install-IcingaFrameworkComponent is designed to both, install components on a fresh environment and also keeps them updated if you run the same command again.