This document provides an overview of the CLI tools for administrating devices in the [[ phacility_cluster | Phacility Cluster ]].
Core Tools
======
These tools are provided by rCORE. They can be run from an administrative terminal outside of the cluster. The words "administrative terminal" mean "your laptop".
These tools are specific to the Phacility cluster and not part of the Phabricator upstream.
Commands which affect servers operate through the bastion. See [[ phacility_cluster/bastion | Phacility Cluster Bastion ]].
Deployment Commands
=======
These commands deploy or upgrade servers.
Deploying or upgrading a bastion host requires the master key.
| Command | Workflow | Summary |
|---|---|---|
| `bin/remote` | `deploy` | Deploy a new host, installing system software and `rCORE` on it. Then, `upgrade`. |
| `bin/remote` | `upgrade` | Install and upgrade application software on a deployed host. Then, `restart`. |
| `bin/remote` | `restart` | Restart one or more instances on an upgraded host. |
These workflows build on each other: `deploy` does all three steps; `upgrade` does the last two; `restart` does the least work.
`deploy` and `upgrade` apply to the entire host, and implicitly to all instances on the host. `restart` applies to all instances by default, but can restart a specific instance with `--instance`.
Operational Commands
=======
These commands perform routine operational tasks.
| Command | Workflow | Summary |
|---|---|---|
| `bin/remote` | `backup` | Manually trigger an instance backup. |
Console Commands
======
These commands are like `ssh` and `mysql`, but connect through the bastion (and require the bastion to authorize the request).
| Command | Workflow | Summary |
|---|---|---|
| `bin/remote` | `ssh` | Open an administrative SSH console on a device, like connecting with `ssh`. |
| `bin/remote` | `mysql` | Open an administrative MySQL console on a device, like connecting with `mysql`. |
Bastion/Authorization Commands
======
These commands affect user access to the bastion, and thereby to the cluster.
Authorization must be performed with the master key.
| Command | Workflow | Summary |
|---|---|---|
| `bin/remote` | `authorize` | Authorize a user to use the bastion to perform operations work. |
Status Commands
=======
These commands report host status.
| Command | Workflow | Summary |
|---|---|---|
| `bin/remote` | `status` | Report host status metrics. |
Internal Commands
=======
These commands are used internally by other tools.
| Command | Workflow | Summary |
|---|---|---|
| `bin/host` | //(All)// | Local versions of `bin/remote` commands; what `bin/remote` ultimately invokes. |
| `bin/bastion` | //(All)// | Used by the bastion host to authorize and relay operational traffic. |