Scripted Installation

Raygun APM scripting the Agent installation and application registration

The Raygun APM Agent can be scripted to install silently and configured using the Raygun CLI tool for a complete automated setup process.

Install the APM Agent

Download the latest agent installer from the Agents page and run the installer using the /quiet flag. Optionally you can output the installer log to a file which helps when diagnosing issues with the installation process.

# Run the installation using msiexec in quiet mode and no system restarts allowed,
# logging the output to a file
> msiexec.exe /i RaygunAgent-x64.msi /quiet /norestart /log RaygunAgentInstall.log

Register the Agent and configure profiling

Part of the APM Agent installation will also install the CLI tool called rgc.exe. The CLI tool can be used to register the Agent with the Raygun API and enable/disable profiling of an application.

Note that the CLI tool is installed by default to %ProgramFiles(x86)%\Raygun\RaygunAgent\rgc.exe

# Register a new Agent installation with a default API key
> rgc.exe -register <YOUR-API-KEY>

# Enable profiling of an IIS application using a specific API key
> rgc.exe -enable <raygun.com.apppool> -type IIS -apikey <app-api-key>

PowerShell example script

The following example script will download the installer, install silently, register the Agent and enable profiling of the specified IIS applications.

Note that this must be run with administrator priveledges.

# Configure where you want to download the installer to
$installermsi = "${env:TEMP}\RaygunAgent-x64.msi"
# Configure your Raygun API key
$defaultapikey = "[YOUR-API-KEY]"
# Configure which IIS applications you want to profile and they API keys to use for them
$iisapps = @{
  "[apppool.name.alpha]" = "[ALPHA-APP-API-KEY]"
  "[apppool.name.beta]" = "[BETA-APP-API-KEY]"
}
# rgc.exe will exist at this location after installation
$rgcli = "${env:Programfiles(x86)}\Raygun\RaygunAgent\rgc.exe"

# 1. Download the installer
[Net.ServicePointManager]::SecurityProtocol = [Net.SecurityProtocolType]::Tls12
Invoke-WebRequest -Uri "https://downloads.raygun.com/APM/latest/RaygunAgent-x64.msi" -OutFile $installermsi

# 2. Run the Agent installer silently
$args = "/i $installermsi","/quiet","/norestart","/log RaygunAgentInstall.log"
$exitcode = (Start-Process -FilePath msiexec.exe -ArgumentList $args -Wait -Passthru).ExitCode

Write-Host("Installation completed with exit code: $exitcode")

if ($exitcode -ne 0) {
  exit
}

# 3. Register the Agent with Raygun
$args = "-register $defaultapikey"
$exitcode = (Start-Process -FilePath $rgcli -ArgumentList $args -WindowStyle hidden -Wait -Passthru).ExitCode

Write-Host("Agent register completed with exit code: $exitcode")

if ($exitcode -ne 0) {
  exit
}

# 4. Enable profiling for the IIS application pools
foreach ($apppool in $iisapps.Keys) {
  $apikey = $iisapps[$apppool]
  
  $args = "-enable $apppool","-type iis","-apikey $apikey"
  $exitcode = (Start-Process -FilePath $rgcli -ArgumentList $args -WindowStyle hidden -Wait -Passthru).ExitCode

  Write-Host("Enable IIS $apppool completed with exit code: $exitcode")
}

Documentation missing?

If we don't have documentation about your desired topic, send us a message and we'll create it for you.