The DCOS Command Line Interface (CLI) is a cross-platform command line utility that provides a user-friendly yet powerful way to manage DCOS installations.
If you're a user of DCOS, please follow the installation instructions. Otherwise, follow the instructions below to set up your development environment.
Detailed help and usage information is available through the dcos help
command and for specific subcommands through dcos <subcommand> --help
.
Additional documentation for the CLI and for the DCOS in general is available in the Mesosphere docs.
The CLI outputs either whitespace delimited tables which can be processed by
all of your favourite Unix/Linux tools like sed, awk and grep, or text formatted
as JSON when using the --json
flag.
If using JSON, you can combine it with the powerful jq utility. The example below installs every package available in the DCOS repository:
dcos package search --json | jq '.[0].packages[].name' | xargs -L 1 dcos package install --yes
You may optionally configure the DCOS CLI to work with open source Mesos and Marathon by setting the following properties:
dcos config set core.mesos_master_url http://<mesos-master-host>:5050 dcos config set marathon.url http://<marathon-host>:8080
Note that the DCOS CLI has tight integration with DCOS and certain functionality may not work as expected or at all when using it directly with Mesos and Marathon.
The CLI reports usage and exception information to Segment.io for production usage.
If you wish to turn reporting of analytics off entirely,
you can set the core.reporting
property to false:
dcos config set core.reporting false
- git must be installed and on the system path in order to fetch
packages from
git
sources. - virtualenv must be installed and on the system path in order to install subcommands.
Make sure you meet requirements for installing packages
Clone git repo for the dcos cli:
git clone [email protected]:mesosphere/dcos-cli.git
Change directory to the repo directory:
cd dcos-cli
Make sure that you have virtualenv installed. If not type:
sudo pip install virtualenv
Create a virtualenv and packages for the dcos project:
make env make packages
Create a virtualenv for the dcoscli project:
cd cli make env
source
the setup file to add thedcos
command line interface to yourPATH
and create an empty configuration file:source bin/env-setup-dev
Configure the CLI, changing the values below as appropriate for your local installation of DCOS:
dcos config set core.dcos_url http://dcos-ea-1234.us-west-2.elb.amazonaws.com
Get started by calling the DCOS CLI help:
dcos help
Tox, our test runner, tests against both Python 2.7 and Python 3.4 environments.
Tox will run unit and integration tests in both Python environments using a temporarily created virtualenv.
You can set DCOS_CONFIG
to a config file that points to a DCOS
cluster you want to use for integration tests. This defaults to
~/.dcos/dcos.toml
There are two ways to run tests, you can either use the virtualenv created by
make env
above:
make test
Or, assuming you have tox installed (via sudo pip install tox
):
tox
List all of the supported test environments:
tox --listenvs
Run a specific set of tests:
tox -e <testenv>
Run a specific integration test module:
tox -e py27-integration /cli/test_config.py
Releasing a new version of the DCOS CLI is only possible through an automated TeamCity build which is triggered automatically when a new tag is added.
The tag is used as the version number and must adhere to the conventional PEP-440 version scheme.
Once all tests pass successfully, the automated build publishes two packages to PyPI using the publish_to_pypi.sh script:
These packages are now available to be installed by the DCOS CLI installation script in the mesosphere/install-scripts repository.