master-password

Sends the Couchbase master password

SYNOPSIS

couchbase-cli master-password [--new-password <password>]

DESCRIPTION

Couchbase Server Enterprise Edition has a "Secret Management" feature, which allows users to securely encrypt passwords and other sensitive configuration information that is stored on disk. These secrets must be stored in a secure way, and access must be controlled to reduce the risk of accidental exposure. By using Secret Management in Couchbase Server, secrets are written to disk in encrypted format. To decrypt these secrets, Couchbase requires the entering of a "master password", which is supplied by the user during server startup. This master password can be passed to the server using this command.

By default the Secret Management feature is disabled. To enable the feature, you must first set the master password. Once a master password is set, the user is required to enter it when the server starts up. This can be done by setting the environment variable CB_MASTER_PASSWORD=<password> during server startup. Alternatively, you can set the environment variable CB_WAIT_FOR_MASTER_PASSWORD=true, and then enter the master password using the couchbase-cli master-password command. This command must be run locally on the node that needs to be unlocked.

OPTIONS

-c
--cluster

Specifies the hostname of a node in the cluster. See the HOST FORMATS section for more information on specifying a hostname.

-u
--user <username>

Specifies the username of the user executing the command. If you do not have a user account with permission to execute the command then it will fail with an unauthorized error.

-p
--password <password>

Specifies the password of the user executing the command. If you do not have a user account with permission to execute the command then it will fail with an unauthorized error. If this argument is specified, but no password is given then the command will prompt the user for a password through non-echoed stdin. You may also specify your password by using the environment variable CB_REST_PASSWORD.

--send-password

Sends the master password to the server that is waiting to start up.

HOST FORMATS

When specifying a host for the couchbase-cli command the following formats are expected:

  • couchbase://<addr>

  • <addr>:<port>

  • http://<addr>:<port>

It is recommended to use the couchbase://<addr> format for standard installations. The other two formats allow an option to take a port number which is needed for non-default installations where the admin port has been set up on a port other that 8091.

EXAMPLES

To use the Secret Management feature, the first thing you need to do is set a password on each node of the cluster. To do this, install and start Couchbase, but don’t go through the setup process or initialize the cluster. Once Couchbase has started, run the following command to set the master password for your server.

$ couchbase-cli setting-master-password -c 127.0.0.1 -u Administrator \
  -p password --new-password password

Once the master password has been set, you need to set the server environment variable CB_WAIT_FOR_MASTER_PASSWORD=true. You can do this by running the command below or by setting the variable in your .bashrc file.

$ export CB_WAIT_FOR_MASTER_PASSWORD=true

This environment variable will cause Couchbase to wait for the master password before starting up. Once it is set, you need to restart your cluster. Upon restarting the cluster you will notice that the server doesn’t fully start. This is because it is waiting for you to enter the master password. You can do this by running the command below. The master-passowrd subcommand has to be run locally on the node that is waiting for the master password.

$ couchbase-cli master-password --send-password password

ENVIRONMENT AND CONFIGURATION VARIABLES

CB_REST_USERNAME

Specifies the username to use when executing the command. This environment variable allows you to specify a default argument for the -u/--username argument on the command line.

CB_REST_PASSWORD

Specifies the password of the user executing the command. This environment variable allows you to specify a default argument for the -p/--password argument on the command line. It also allows the user to ensure that their password are not cached in their command line history.

COUCHBASE-CLI

Part of the couchbase-cli suite