<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE refentry PUBLIC "-//OASIS//DTD DocBook XML V4.5//EN" "http://www.docbook.org/xml/4.5/docbookx.dtd">
<!--
There is some extra magic in this document besides the usual DocBook semantics
to allow us to derive manpages, HTML and usage messages from the same source
document.
Examples need to be moved to the end for man pages. To this end, <para>s and
<screen>s with role="example" will be moved, and with role="example-prefix"
will be removed.
The usage messages are more involved. We have some magic in usage.xsl to pull
out the command synopsis, global option and subcommand synopses. We also pull
out <para>s with role="usage".
Finally we construct lists of possible values for subcommand options, if the
subcommand's <varlistentry> has role="usage-has-option-list". The option which
takes the values should be marked with role="usage-option-list".
-->
<refentry lang="en">
<refentryinfo>
<productname>RabbitMQ Server</productname>
<authorgroup>
<corpauthor>The RabbitMQ Team <<ulink url="mailto:info@rabbitmq.com"><email>info@rabbitmq.com</email></ulink>></corpauthor>
</authorgroup>
</refentryinfo>
<refmeta>
<refentrytitle>rabbitmq-plugins</refentrytitle>
<manvolnum>1</manvolnum>
<refmiscinfo class="manual">RabbitMQ Service</refmiscinfo>
</refmeta>
<refnamediv>
<refname>rabbitmq-plugins</refname>
<refpurpose>command line tool for managing RabbitMQ broker plugins</refpurpose>
</refnamediv>
<refsynopsisdiv>
<cmdsynopsis>
<command>rabbitmq-plugins</command>
<arg choice="opt">-n <replaceable>node</replaceable></arg>
<arg choice="req"><replaceable>command</replaceable></arg>
<arg choice="opt" rep="repeat"><replaceable>command options</replaceable></arg>
</cmdsynopsis>
</refsynopsisdiv>
<refsect1>
<title>Description</title>
<para>
<command>rabbitmq-plugins</command> is a command line tool for managing
RabbitMQ broker plugins. It allows one to enable, disable and browse
plugins. It must be run by a user with write permissions to the RabbitMQ
configuration directory.
</para>
<para>
Some plugins depend on others to work
correctly. <command>rabbitmq-plugins</command> traverses these
dependencies and enables all required plugins. Plugins listed on
the <command>rabbitmq-plugins</command> command line are marked as
explicitly enabled; dependent plugins are marked as implicitly
enabled. Implicitly enabled plugins are automatically disabled again
when they are no longer required.
</para>
<para>
The <command>enable</command>, <command>disable</command> and
<command>set</command> commands will update the plugins file and
then attempt to connect to the broker and ensure it is running
all enabled plugins. By default if it is not possible to connect
to the running broker (for example if it is stopped) then a
warning is displayed. Specify <command>--online</command> or
<command>--offline</command> to change this behaviour.
</para>
</refsect1>
<refsect1>
<title>Commands</title>
<variablelist>
<varlistentry>
<term><cmdsynopsis><command>list</command> <arg choice="opt">-v</arg> <arg choice="opt">-m</arg> <arg choice="opt">-E</arg> <arg choice="opt">-e</arg> <arg choice="opt"><replaceable>pattern</replaceable></arg></cmdsynopsis></term>
<listitem>
<variablelist>
<varlistentry>
<term>-v</term>
<listitem><para>Show all plugin details (verbose).</para></listitem>
</varlistentry>
<varlistentry>
<term>-m</term>
<listitem><para>Show only plugin names (minimal).</para></listitem>
</varlistentry>
<varlistentry>
<term>-E</term>
<listitem><para>Show only explicitly enabled
plugins.</para></listitem>
</varlistentry>
<varlistentry>
<term>-e</term>
<listitem><para>Show only explicitly or implicitly
enabled plugins.</para></listitem>
</varlistentry>
<varlistentry>
<term>pattern</term>
<listitem><para>Pattern to filter the plugin names by.</para></listitem>
</varlistentry>
</variablelist>
<para>
Lists all plugins, their versions, dependencies and
descriptions. Each plugin is prefixed with two status
indicator characters inside [ ]. The first indicator can
be " " to indicate that the plugin is not enabled, "E" to
indicate that it is explicitly enabled, "e" to indicate
that it is implicitly enabled, or "!" to indicate that it
is enabled but missing and thus not operational. The
second indicator can be " " to show that the plugin is not
running, or "*" to show that it is.
</para>
<para>
If the optional pattern is given, only plugins whose
name matches <command>pattern</command> are shown.
</para>
<para role="example-prefix">For example:</para>
<screen role="example">rabbitmq-plugins list</screen>
<para role="example">
This command lists all plugins, on one line each.
</para>
<screen role="example">rabbitmq-plugins list -v </screen>
<para role="example">
This command lists all plugins.
</para>
<screen role="example">rabbitmq-plugins list -v management</screen>
<para role="example">
This command lists all plugins whose name contains "management".
</para>
<screen role="example">rabbitmq-plugins list -e rabbit</screen>
<para role="example">
This command lists all implicitly or explicitly enabled
RabbitMQ plugins.
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><cmdsynopsis><command>enable</command> <arg choice="opt">--offline</arg> <arg choice="opt">--online</arg> <arg choice="req"><replaceable>plugin</replaceable> ...</arg></cmdsynopsis></term>
<listitem>
<variablelist>
<varlistentry>
<term>--offline</term>
<listitem><para>Just modify the enabled plugins file.</para></listitem>
</varlistentry>
<varlistentry>
<term>--online</term>
<listitem><para>Treat failure to connect to the running broker as fatal.</para></listitem>
</varlistentry>
<varlistentry>
<term>plugin</term>
<listitem><para>One or more plugins to enable.</para></listitem>
</varlistentry>
</variablelist>
<para>
Enables the specified plugins and all their dependencies.
</para>
<para role="example-prefix">For example:</para>
<screen role="example">rabbitmq-plugins enable rabbitmq_shovel rabbitmq_management</screen>
<para role="example">
This command enables the <command>shovel</command> and
<command>management</command> plugins and all their
dependencies.
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><cmdsynopsis><command>disable</command> <arg choice="opt">--offline</arg> <arg choice="opt">--online</arg> <arg choice="req"><replaceable>plugin</replaceable> ...</arg></cmdsynopsis></term>
<listitem>
<variablelist>
<varlistentry>
<term>--offline</term>
<listitem><para>Just modify the enabled plugins file.</para></listitem>
</varlistentry>
<varlistentry>
<term>--online</term>
<listitem><para>Treat failure to connect to the running broker as fatal.</para></listitem>
</varlistentry>
<varlistentry>
<term>plugin</term>
<listitem><para>One or more plugins to disable.</para></listitem>
</varlistentry>
</variablelist>
<para>
Disables the specified plugins and all their dependencies.
</para>
<para role="example-prefix">For example:</para>
<screen role="example">rabbitmq-plugins disable amqp_client</screen>
<para role="example">
This command disables <command>amqp_client</command> and
all plugins that depend on it.
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><cmdsynopsis><command>set</command> <arg choice="opt">--offline</arg> <arg choice="opt">--online</arg> <arg choice="req"><replaceable>plugin</replaceable> ...</arg></cmdsynopsis></term>
<listitem>
<variablelist>
<varlistentry>
<term>--offline</term>
<listitem><para>Just modify the enabled plugins file.</para></listitem>
</varlistentry>
<varlistentry>
<term>--online</term>
<listitem><para>Treat failure to connect to the running broker as fatal.</para></listitem>
</varlistentry>
<varlistentry>
<term>plugin</term>
<listitem><para>Zero or more plugins to enable.</para></listitem>
</varlistentry>
</variablelist>
<para>
Enables the specified plugins and all their
dependencies. Unlike <command>rabbitmq-plugins
enable</command> this command ignores and overwrites any
existing enabled plugins. <command>rabbitmq-plugins
set</command> with no plugin arguments is a legal command
meaning "disable all plugins".
</para>
<para role="example-prefix">For example:</para>
<screen role="example">rabbitmq-plugins set rabbitmq_management</screen>
<para role="example">
This command enables the <command>management</command>
plugin and its dependencies and disables everything else.
</para>
</listitem>
</varlistentry>
</variablelist>
</refsect1>
</refentry>