> For the complete documentation index, see [llms.txt](https://asus-isg-aidc.gitbook.io/guide/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://asus-isg-aidc.gitbook.io/guide/latest/cli/commandreference/ceph.md).

# Ceph Storage

| Developer | Last modified |
| --------- | ------------- |
| AIDC Team | 2026/07/06    |

## Table of Contents

* [1. Overview](#overview)
* [2. Subcommands](#subcommands)
  * [2.1 `server deploy`](#server-deploy)
* [3. Quick Summary](#quick-summary)
* [4. Usage Examples](#usage-examples)

***

## 1. Overview <a href="#overview" id="overview"></a>

{% hint style="warning" %}
**⚠️ Prerequisite: `aidc-cli init` required first**

This command depends on settings saved by [`aidc-cli init`](/guide/latest/cli/commandreference/init.md). Before running it, make sure you have completed:

* [`aidc-cli init inventory`](/guide/latest/cli/commandreference/init.md#inventory) — render the node inventory from `aidc.csv`
* SSH access to the nodes — [`aidc-cli deploy install`](/guide/latest/cli/commandreference/deploy.md) sets this up during OS deployment; for nodes that already have an OS, run [`aidc-cli deploy access-key`](/guide/latest/cli/commandreference/deploy.md) or fill the `password` column in `aidc.csv`

For the full setup sequence, see the [Getting Started](/guide/latest/cli/gettingstarted.md) guide.
{% endhint %}

The `ceph` command deploys and manages Ceph storage clusters on the targeted nodes.

```bash
aidc-cli ceph <subcommand> [flags]
```

The current workflow provides cluster deployment via `ceph server deploy`.

***

## 2. Subcommands <a href="#subcommands" id="subcommands"></a>

### 2.1 `server deploy` — Deploy a Ceph Storage Cluster <a href="#server-deploy" id="server-deploy"></a>

Deploys a Ceph storage cluster on the targeted nodes, bootstrapping the monitor and the dashboard.

```bash
aidc-cli ceph server deploy \
  --release <version> \
  --mon-ip <monitor-ip> \
  --dashboard-password <password> \
  [--cluster-network <cidr>]
```

| Flag                   | Short | Required | Default | Description                                                        |
| ---------------------- | :---: | :------: | :-----: | ------------------------------------------------------------------ |
| `--release`            |  `-r` |     ✅    |    —    | Ceph release version (e.g. `20.2.2`).                              |
| `--mon-ip`             |  `-m` |     ✅    |    —    | Ceph monitor IP address. Must be a valid IP (e.g. `10.10.51.231`). |
| `--dashboard-password` |  `-p` |     ✅    |    —    | Ceph dashboard password.                                           |
| `--cluster-network`    |  `-n` |     ❌    |    —    | Ceph cluster network in CIDR notation (e.g. `192.168.100.0/24`).   |

{% hint style="info" %}
`--mon-ip` is validated as a proper IP address and `--cluster-network`, when supplied, is validated as CIDR notation. Invalid values are rejected before deployment starts.
{% endhint %}

{% hint style="warning" %}
Cluster deployment provisions storage services on the targeted nodes. Confirm the target hosts (via `--limit-hosts`) and the monitor IP before running.
{% endhint %}

***

## 3. Quick Summary <a href="#quick-summary" id="quick-summary"></a>

| Subcommand      | Description                                                                |
| --------------- | -------------------------------------------------------------------------- |
| `server deploy` | Deploy a Ceph storage cluster (monitor + dashboard) on the targeted nodes. |

***

## 4. Usage Examples <a href="#usage-examples" id="usage-examples"></a>

```bash
# Deploy a Ceph cluster with the required parameters
aidc-cli ceph server deploy \
  --release 20.2.2 \
  --mon-ip 10.10.51.231 \
  --dashboard-password 'S3curePass!'

# Deploy with a dedicated cluster network
aidc-cli ceph server deploy \
  --release 20.2.2 \
  --mon-ip 10.10.51.231 \
  --dashboard-password 'S3curePass!' \
  --cluster-network 192.168.100.0/24

# Target specific storage nodes
aidc-cli ceph server deploy \
  --release 20.2.2 \
  --mon-ip 10.10.51.231 \
  --dashboard-password 'S3curePass!' \
  --limit-hosts ceph01,ceph02,ceph03
```
