blob: 9ca87deb1b20163b342a3d636d358818b9585ed8 [file] [log] [blame]
= Cloud Script
:toc: left
== Solr
=== Running a local SolrCloud Cluster
At times, it is important to do manual testing on a running server, and in many
cases it is a good idea to test in a clustered environment to ensure that features
play nice both locally and across nodes. To lower the barrier for realistic local
testing, there is a script at `dev-tools/scripts/cloud.sh`.
NOTE: This script only supports POSIX environments. There is no similar .bat script at this time.
Typical usage of the script is:
1. Copy the script to a location outside the `./solr/` working copy such as `<GIT_CHECKOUT>/../solr-testing`. Trying to use it from within the working copy will leave you fighting version control to avoid checking in files.
2. Edit the script to provide a proper back reference to your working copy for `DEFAULT_VCS_WORKSPACE` (the default is `../code/solr`)
3. Start a local zookeeper instance. This zookeeper must be running on localhost, but the port can be adjusted with a `-z` option passed to the script. `docker run -p 2181:2181 zookeeper` is one option to start up a local Zookeeper.
4. run ./cloud.sh new -r
The command in the final step will:
1. Recompile and package (`-r`) the solr checkout found at `DEFAULT_VCS_WORKSPACE` (but not run the tests).
2. The tarball produced by step 1 is then extracted in a directory that is a peer to cloud.sh and named for the current date (such as `./2021-02-21`).
3. A node at the top level of zookeeper is created and named for the canonical path of this directory to serve as a zkchroot for this deployment.
4. Start solr on ports 8981, 8982, 8983 and 8984 with listening debugger ports on 5001, 5002, 5003, and 5004.
5. Each solr instance will place its data and solr.log in a corresponding directory such as `./2021-02-21/n1`, `./2021-02-21/n2` etc.
The script supports `start`, `stop` and `restart` commands, and a variety of options
detailed in the extensive introductory comment in cloud.sh.