> 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/bmc.md).

# BMC Operations

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

## Table of Contents

* [1. Overview](#overview)
* [2. Subcommands](#subcommands)
* [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`
* [`aidc-cli init bmc-set`](/guide/latest/cli/commandreference/init.md#bmc-configuration) — save the BMC credentials

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

The `bmc` command provides Baseboard Management Controller (BMC/IPMI) operations for remote hardware management — including power control, firmware queries, password management, PXE boot configuration, and NTP setup.

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

***

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

### 2.1 `bmc-ver` — Get BMC Version

Retrieves the BMC firmware version from all target nodes.

```bash
aidc-cli bmc bmc-ver
```

{% hint style="info" %}
Refer to the `init bmc-set` section (for BMC credentials) and `init syscfg-set` section (for system configuration) to ensure proper BMC access settings are configured before use.
{% endhint %}

***

### 2.2 `pxe-boot` — Set PXE Boot

Configures target nodes to boot from PXE on next reboot.

```bash
aidc-cli bmc pxe-boot
```

{% hint style="info" %}
Run this before `deploy install` to ensure nodes boot from PXE for OS deployment.
{% endhint %}

***

### 2.3 `init-pwd` — Initialize BMC Password

Sets the initial BMC password (typically from factory defaults).

```bash
aidc-cli bmc init-pwd
```

***

### 2.4 `change-pwd` — Change BMC Password

Changes the BMC password to the currently configured value (set via `init bmc-set`).

```bash
aidc-cli bmc change-pwd
```

***

### 2.5 `bmc-net` — Configure BMC Network

Applies network configuration (IP, netmask, gateway) to the BMC interface.

```bash
aidc-cli bmc bmc-net
```

***

### 2.6 `bmc-ntp` — Configure BMC NTP

Sets NTP server configuration on the BMC.

```bash
aidc-cli bmc bmc-ntp
```

***

### 2.7 `power-reset` — Power Reset

Performs a power reset (reboot) on target nodes via IPMI.

```bash
aidc-cli bmc power-reset
```

***

### 2.8 `power-on` — Power On

Powers on target nodes via IPMI.

```bash
aidc-cli bmc power-on
```

***

### 2.9 `power-off` — Power Off

Powers off target nodes via IPMI.

```bash
aidc-cli bmc power-off
```

***

### 2.10 `cold-reset` — Cold Reset BMC

Performs a cold reset of the BMC controller itself (not the host system).

```bash
aidc-cli bmc cold-reset
```

{% hint style="warning" %}
Cold reset restarts the BMC firmware. The BMC may be temporarily unreachable during the reset cycle.
{% endhint %}

***

### 2.11 `reset-default` — Reset BMC to Factory Defaults

Restores the BMC configuration to factory default settings.

```bash
aidc-cli bmc reset-default
```

{% hint style="danger" %}
This will erase all BMC customizations including network settings and passwords. Ensure you have physical access or alternative management access before using this command.
{% endhint %}

***

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

| Subcommand      | Action              |  Risk Level |
| --------------- | ------------------- | :---------: |
| `bmc-ver`       | Read BMC version    |    🟢 Low   |
| `pxe-boot`      | Set PXE boot order  |    🟢 Low   |
| `init-pwd`      | Initialize password |  🟡 Medium  |
| `change-pwd`    | Change password     |  🟡 Medium  |
| `bmc-net`       | Configure network   |  🟡 Medium  |
| `bmc-ntp`       | Set NTP servers     |    🟢 Low   |
| `power-reset`   | Reboot nodes        |   🟠 High   |
| `power-on`      | Power on nodes      |    🟢 Low   |
| `power-off`     | Power off nodes     |   🟠 High   |
| `cold-reset`    | Restart BMC         |   🟠 High   |
| `reset-default` | Factory reset BMC   | 🔴 Critical |

***

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

```bash
# Check BMC version on all nodes
aidc-cli bmc bmc-ver

# Check BMC version on specific nodes
aidc-cli bmc bmc-ver -l node01,node02

# Power on specific nodes
aidc-cli bmc power-on -l node01,node02,node03

# Power off all except management node
aidc-cli bmc power-off -e mgmt01

# Set PXE boot before OS deployment
aidc-cli bmc pxe-boot

# Cold reset BMC on a problematic node
aidc-cli bmc cold-reset -l node05
```
