Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Add docs for MSI install #1039

Merged
merged 2 commits into from
Apr 23, 2024
Merged
Show file tree
Hide file tree
Changes from 1 commit
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Original file line number Diff line number Diff line change
@@ -0,0 +1,61 @@
[[install-agent-msi]]
= Install {agent} from an MSI package

MSI is the file format and command line utility for the link:https://en.wikipedia.org/wiki/Windows_Installer[Windows Installer]. Windows Installer (previously known as Microsoft Installer) is an interface for Microsoft Windows that’s used to install and manage software on Windows systems. This section covers installing Elastic Agent through the MSI package repository.

The MSI package installer must be run by an administrator account. The installer won't start without Windows admin permissions.

[discrete]
== Install {agent}

. Download the latest Elastic Agent MSI binary from the link:https://www.elastic.co/downloads/elastic-agent[{agent} download page].

. Run the installer:
+
[source,shell]
----
elastic-agent-<VERSION>-windows-x86_64.msi INSTALLARGS="--url=<URL> --enrollment-token=<TOKEN>"
----
+
Where:

* `VERSION` is the {stack} version you're installing, indicated in the MSI package name. For example, `8.13.2`.
* `URL` is the {fleet-server} URL used to enroll the {agent} into {fleet}. You can find this on the {fleet} *Settings* tab in {kib}.
* `TOKEN` is the authentication token used to enroll the {agent} into {fleet}. You can find this on the {fleet} *Enrollment tokens* tab.

+
When you run the command, the value set for `INSTALLARGS` will be passed to the <<elastic-agent-install-command,`elastic-agent install`>> command verbatim.

. If you need to troubleshoot, you can install using `msiexec` with the `-L*V "log.txt"` option to create installation logs:
+
[source,shell]
----
msiexec -i elastic-agent-<VERSION>-windows-x86_64.msi INSTALLARGS="--url=<URL> --enrollment-token=<TOKEN>" -L*V "log.txt"
----

[discrete]
== Installation notes

Installing using an MSI package has the following behaviors:

* If `INSTALLARGS` are not provided, the MSI will copy the files to a temporary folder and finish.
* If `INSTALLARGS` are provided, the MSI will copy the files to a temporary folder and then run the <<elastic-agent-install-command,`elastic-agent install`>> command with the provided parameters. If the install flow is successful, the temporary folder is deleted.
* If `INSTALLARGS` are provided but the `elastic-agent install` command fails, the top-level folder is NOT deleted, in order to allow for further troubleshooting.
* If the `elastic-agent install` command fails for any reason, the MSI will rollback all changes.
* If the {agent} enrollment fails, the install will fail as well. To avoid this behavior you can add the <<elastic-agent-install-command,`--delay-enroll`>> option to the install command.

[discrete]
== Upgrading

Upgrades are not supported and are prevented by the MSI itself. Instead, all of your {agent} upgrades can be managed in {fleet}.

[discrete]
== Installing in a custom location

Starting in version 8.13, it's also possible to override the default installation folder by running the MSI from the command line, as shown:

[source,shell]
----
msiexec /i "<full path to msi file>" INSTALLDIR="<path of custom folder>"
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This is not clear enough. I'd change to have the example from line 17 with the addition of INSTALLDIR="<path of custom folder>" at the end

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Good idea! Fixed in 135fd6a and changed to:

elastic-agent-<VERSION>-windows-x86_64.msi INSTALLARGS="--url=<URL> --enrollment-token=<TOKEN>" INSTALLDIR="<path of custom folder>"

----

2 changes: 2 additions & 0 deletions docs/en/ingest-management/index.asciidoc
Original file line number Diff line number Diff line change
Expand Up @@ -65,6 +65,8 @@ include::elastic-agent/ingest-pipeline-kubernetes.asciidoc[leveloffset=+3]

include::elastic-agent/configuration/env/container-envs.asciidoc[leveloffset=+3]

include::elastic-agent/install-agent-msi.asciidoc[leveloffset=+2]

include::elastic-agent/installation-layout.asciidoc[leveloffset=+2]

include::fleet/air-gapped.asciidoc[leveloffset=+2]
Expand Down