This feature is experimental: expect things to break and documentation to be innacurate and change inadvertantly. Use at your own risks.

CLI

The Command Line Interface (CLI) lets you interact with devo. directly from your terminal. It allows you do everything that you can do through the Web UI: triggering tasks, monitoring the status of a server or listing your repositories.

Installation

You will need python 2.7+ as well as pip installed on your system.

MacOS

We recommend MacOS users to use Homebrew for installing pip.

brew install python-pip
sudo pip install https://app.devo.ps/cli/devops-cli-latest.tar.gz

Ubuntu / Debian

sudo apt-get install python-pip
sudo pip install https://app.devo.ps/cli/devops-cli-latest.tar.gz

CentOS / Fedora / RH

You will first need to install EPEL (you can find plenty of tutorials for Fedora or CentOS & RH)

sudo pip install https://app.devo.ps/cli/devops-cli-latest.tar.gz

The CLI isn't currently tested or optimized on the Windows platform.

Usage

devops --help
Displays the full list of commands supported by the CLI.
devops login
Authenticate your CLI; this require you use your devo.ps username (GitHub username) and the API key given to you on the user settings page.
devops logout
Logs your CLI out.
devops list repos
Return the list of all the repositories you have access to (as displayed in your profile).
devops list [--repo={REPO}] nodes
Return the list of all the nodes in the specified repository ({REPO}). If the --repo option is ommitted, assumes the repo is the one you run the command from (requires a local clone of the repository).
devops list [--repo={REPO}] tasks
Return the list of all the tasks associated with the specified repository ({REPO}). If the --repo option is ommitted, assumes the repo is the one you run the command from (requires a local clone of the repository).
devops list [--repo={REPO}] runs {TASK} [--count={COUNT}]
Returns the list of the previous runs of a task specified by {TASK}, limiting the list size to {COUNT} runs. If the --repo option is ommitted, assumes the repo is the one you run the command from (requires a local clone of the repository). If the --count option is ommitted, fetches the last 10 runs by default.
devops list [--repo={REPO}] webhooks
Return the list of all the webhooks associated with tasks from the specified repository ({REPO}). If the --repo option is ommitted, assumes the repo is the one you run the command from (requires a local clone of the repository).
devops sync [--repo={REPO}] {NODE}
Trigger the syncing of the specified node (where {NODE} is the node id). This is useful in case a node fell out of sync (see nodes status). If the --repo option is ommitted, assumes the repo is the one you run the command from (requires a local clone of the repository).
devops info [--repo={REPO}] {NODE}
Return information (IP address, status, services and public SSH keys) about the specified node (where '{NODE}' is the node id). If the --repo option is ommitted, assumes the repo is the one you run the command from (requires a local clone of the repository).
devops link [--repo={REPO}] {NODE}
Link the node (where {NODE} is the node id) to devo.ps with the information provided interactively. If the --repo option is ommitted, assumes the repo is the one you run the command from (requires a local clone of the repository). Note: the node file must be already exist in devo.ps.
devops run [--repo={REPO}] {TASK}
Triggers the designated task (where {TASK} is the task id). If the --repo option is ommitted, assumes the repo is the one you run the command from (requires a local clone of the repository).
devops logs [--repo={REPO}] --node={NODE}
Returns the logs of the latest sync. If the --repo option is ommitted, assumes the repo is the one you run the command from (requires a local clone of the repository).
devops logs [--repo={REPO}] --task={TASK} [{RUN}]
Returns the logs of the run specified by the run id {RUN} for the task which id is {TASK}. If the --repo option is ommitted, assumes the repo is the one you run the command from (requires a local clone of the repository). If {RUN} is ommitted, fetches the logs of the latest run.
devops ssh [--repo={REPO}] [{NODE}]
Establish an SSH connection with the designated node (where {NODE} is the node id). If the --repo option is ommitted, assumes the repo is the one you run the command from (requires a local clone of the repository). If {NODE} is ommitted and the repository only contains 1 node, connects to this node.
devops ssh-config [--repo={REPO}] [{NODE}]
Show the SSH connection configuration used to connect to the designated node (where {NODE} is the node id). If the --repo option is ommitted, assumes the repo is the one you run the command from (requires a local clone of the repository). If {NODE} is ommitted, returns the ssh-config of all the nodes defined in the repository.