Skip to content
Merged
Changes from all commits
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
58 changes: 57 additions & 1 deletion docs/plugins/plugin-script.asciidoc
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
[[plugin-management]]
== Plugin Management

The `plugin` script is used to install, list, and remove plugins. It is
Use the `elasticsearch-plugin` command line tool to install, list, and remove plugins. It is
located in the `$ES_HOME/bin` directory by default but it may be in a
different location depending on which Elasticsearch package you installed:

Expand All @@ -26,6 +26,13 @@ Otherwise run `bin/elasticsearch-plugin` as the user that owns all of the Elasti
files.
=====================

[discrete]
[[plugin-management-docker]]
=== Docker

If you run {es} using Docker, you can manage plugins using a
<<manage-plugins-using-configuration-file,configuration file>>.

[[installation]]
=== Installing Plugins

Expand Down Expand Up @@ -279,3 +286,52 @@ The default location of the `plugins` directory depends on which package you ins
* {ref}/zip-windows.html#windows-layout[Directory layout of Windows `.zip` archives]
* {ref}/deb.html#deb-layout[Directory layout of Debian package]
* {ref}/rpm.html#rpm-layout[Directory layout of RPM]


[[manage-plugins-using-configuration-file]]
=== Manage plugins using a configuration file

[IMPORTANT]
.Docker only
=====================
Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

Not a big deal, but we only require four delimiters. No real reason to use more. For example:

[IMPORTANT]
.Docker only
====
My admon text
====

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

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

I was copying from other lines in the file. I'll remember that for the future.

This feature is only available for https://www.docker.elastic.co/[official {es}
Docker images]. Other {es} distributions will not start with a
plugin configuration file.
=====================

If you run {es} using Docker, you can manage plugins using a declarative configuration file.
When {es} starts up, it will compare the plugins in the file with those
that are currently installed, and add or remove plugins as required. {es}
will also upgrade offical plugins when you upgrade {es} itself.

The file is called `elasticsearch-plugins.yml`, and must be placed in the
Elasticsearch configuration directory, alongside `elasticsearch.yml`. Here
is an example:

[source,yaml]
----
plugins:
- id: analysis-icu
- id: repository-azure
- id: custom-mapper
location: https://example.com/archive/custom-mapper-1.0.0.zip
----

This example installs the official `analysis-icu` and
`repository-azure` plugins, and one unofficial plugin. Every plugin must provide
an `id`. Unofficial plugins must also provide a `location`. This is
typically a URL, but Maven coordinates are also supported. The downloaded
plugin's name must match the ID in the configuration file.

While {es} will respect the
https://docs.oracle.com/javase/8/docs/technotes/guides/net/proxies.html[standard
Java proxy system properties] when downloading plugins, you can also configure an
HTTP proxy to use explicitly in the configuration file. For example:

[source,yaml]
----
plugins:
- id: custom-mapper
location: https://example.com/archive/custom-mapper-1.0.0.zip
proxy: proxy.example.com:8443
----