Skip to content

Commit

Permalink
Add a new configurable option to the windows installer for static mod…
Browse files Browse the repository at this point in the history
…e for expanding env vars (grafana#5958)

* Add a new configurable option to the windows installer for static mode for expanding env vars 

Signed-off-by: erikbaranowski <[email protected]>

* Update docs/sources/static/set-up/install/install-agent-on-windows.md

Co-authored-by: Clayton Cornell <[email protected]>

---------

Signed-off-by: erikbaranowski <[email protected]>
Co-authored-by: Clayton Cornell <[email protected]>
  • Loading branch information
2 people authored and BarunKGP committed Feb 20, 2024
1 parent f8ce8ac commit 16b77a5
Show file tree
Hide file tree
Showing 3 changed files with 57 additions and 9 deletions.
4 changes: 4 additions & 0 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
Expand Up @@ -17,6 +17,10 @@ Main (unreleased)
- [GO-2023-2412](https://github.com/advisories/GHSA-7ww5-4wqc-m92c)
- [CVE-2023-49568](https://github.com/advisories/GHSA-mw99-9chc-xw7r)

### Enhancements

- Add an option to the windows static mode installer for expanding environment vars in the yaml config. (@erikbaranowski)

### Bugfixes

- Fix an issue in `remote.s3` where the exported content of an object would be an empty string if `remote.s3` failed to fully retrieve
Expand Down
26 changes: 25 additions & 1 deletion docs/sources/static/set-up/install/install-agent-on-windows.md
Original file line number Diff line number Diff line change
Expand Up @@ -30,7 +30,11 @@ To do a standard graphical install of Grafana Agent on Windows, perform the foll
1. Double-click on `grafana-agent-installer.exe` to install Grafana Agent.

Grafana Agent is installed into the default directory `C:\Program Files\Grafana Agent`.
The [windows_exporter integration](/docs/agent/latest/static/configuration/integrations/windows-exporter-config) can be enabled with all default windows_exporter options.

The following options are available:

- The [windows_exporter integration][windows_exporter_config] can be enabled with all default windows_exporter options.
- The [-config.expand-env][flags] command line flag can be enabled.

## Silent install

Expand Down Expand Up @@ -78,6 +82,24 @@ If you are using `remote_write` you must enable Windows Exporter and set the glo

If you are using Powershell, make sure you use triple quotes `"""http://example.com"""` around the URL parameter.

## Silent install with `-config.expand_env`

You can enable [-config.expand-env][flags] during a silent install.

1. Navigate to the [latest release](https://github.com/grafana/agent/releases) on GitHub.

1. Scroll down to the **Assets** section.

1. Download the file called `grafana-agent-installer.exe.zip`.

1. Unzip the downloaded file.

1. Run the following command in PowerShell or Command Prompt:

```shell
PATH_TO_INSTALLER/grafana-agent-installer.exe /S /ExpandEnv true
```

## Verify the installation

1. Make sure you can access `http://localhost:12345/-/healthy` and `http://localhost:12345/agent/api/v1/metrics/targets`.
Expand Down Expand Up @@ -146,6 +168,8 @@ Refer to [windows_events](/docs/loki/latest/clients/promtail/configuration/#wind
- [Configure Grafana Agent][configure]
{{% docs/reference %}}
[flags]: "/docs/agent/ -> /docs/agent/<AGENT_VERSION>/static/configuration/flags"
[windows_exporter_config]: "/docs/agent/ -> /docs/agent/<AGENT_VERSION>/static/configuration/integrations/windows-exporter-config"
[start]: "/docs/agent/ -> /docs/agent/<AGENT_VERSION>/static/set-up/start-agent"
[start]: "/docs/grafana-cloud/ -> ../start-agent"
[configure]: "/docs/agent/ -> /docs/agent/<AGENT_VERSION>/static/configuration/create-config-file"
Expand Down
36 changes: 28 additions & 8 deletions packaging/grafana-agent/windows/install_script.nsis
Original file line number Diff line number Diff line change
Expand Up @@ -24,17 +24,19 @@ outFile "${OUT}"
LicenseData LICENSE

# Everything must be global Vars
Var EnableOptionsDialog
Var PassedInParameters
Var EnableExporterCheck
Var EnableExporterValue
Var EnableExporterDialog
Var PassedInParameters
Var Url
Var Username
Var Password
Var ExpandEnvCheck
Var ExpandEnvValue

Page license
Page directory
Page custom enableWindowsExporter enableWindowsExporterLeave
Page custom enableOptions enableOptionsLeave
Page instfiles

# Annoyingly macros need to be defined before use
Expand All @@ -61,17 +63,18 @@ Section "install"
${GetOptions} $PassedInParameters "/Url" $Url
${GetOptions} $PassedInParameters "/Username" $Username
${GetOptions} $PassedInParameters "/Password" $Password
${GetOptions} $PassedInParameters "/ExpandEnv" $ExpandEnvValue
Call Install
Return
RunInstaller:
Call Install
SectionEnd

Function enableWindowsExporter
Function enableOptions
nsDialogs::Create 1018
Pop $EnableExporterDialog
Pop $EnableOptionsDialog

${If} $EnableExporterDialog == error
${If} $EnableOptionsDialog == error
Abort
${EndIf}

Expand All @@ -81,16 +84,29 @@ Function enableWindowsExporter
${NSD_CreateCheckBox} 0 13u 100% 12u ""
Pop $EnableExporterCheck

${NSD_CreateLabel} 0 26u 100% 12u "Expand Environment Variables"
Pop $0

${NSD_CreateCheckBox} 0 39u 100% 12u ""
Pop $ExpandEnvCheck

nsDialogs::Show
FunctionEnd

Function enableWindowsExporterLeave
Function enableOptionsLeave
${NSD_GetState} $EnableExporterCheck $EnableExporterValue
${If} $EnableExporterValue == ${BST_CHECKED}
StrCpy $EnableExporterValue "true"
${Else}
StrCpy $EnableExporterValue "false"
${EndIf}

${NSD_GetState} $ExpandEnvCheck $ExpandEnvValue
${If} $ExpandEnvValue == ${BST_CHECKED}
StrCpy $ExpandEnvValue "true"
${Else}
StrCpy $ExpandEnvValue "false"
${EndIf}
FunctionEnd

Function Install
Expand Down Expand Up @@ -128,7 +144,11 @@ Function Install
nsExec::ExecToLog 'sc create "Grafana Agent" binpath= "\"$INSTDIR\grafana-agent-windows-amd64.exe\""'
Pop $0
# These separate create and config commands are needed, on the config the binpath is required
nsExec::ExecToLog 'sc config "Grafana Agent" start= auto binpath= "\"$INSTDIR\grafana-agent-windows-amd64.exe\" -config.file=\"$INSTDIR\agent-config.yaml\""'
${If} $ExpandEnvValue == "true"
nsExec::ExecToLog 'sc config "Grafana Agent" start= auto binpath= "\"$INSTDIR\grafana-agent-windows-amd64.exe\" -config.expand-env -config.file=\"$INSTDIR\agent-config.yaml\""'
${Else}
nsExec::ExecToLog 'sc config "Grafana Agent" start= auto binpath= "\"$INSTDIR\grafana-agent-windows-amd64.exe\" -config.file=\"$INSTDIR\agent-config.yaml\""'
${EndIf}
Pop $0
nsExec::ExecToLog `sc start "Grafana Agent"`
Pop $0
Expand Down

0 comments on commit 16b77a5

Please sign in to comment.