You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Cloud-init is an industry-standard tool for automating the initial configuration of virtual machines on first boot. NVIDIA Air supports cloud-init through the {{<exlinkurl="https://cloudinit.readthedocs.io/en/latest/reference/datasources/nocloud.html"text="NoCloud datasource">}}, which allows you to inject user-data and meta-data into your simulation nodes.
11
+
12
+
With cloud-init, you can automate tasks such as:
13
+
- Setting hostnames
14
+
- Installing packages
15
+
- Writing configuration files
16
+
- Running custom scripts on first boot
17
+
18
+
## Supported Images
19
+
20
+
Cloud-init works on any image that includes cloud-init with NoCloud datasource support, including custom images. The Air-provided `generic/ubuntu` images include cloud-init out of the box.
21
+
22
+
## Configuration
23
+
24
+
Cloud-init configuration consists of two components:
25
+
26
+
-**User-data**: Defines the actions to perform on first boot, such as installing packages, running commands, or writing files. Supports all standard {{<exlinkurl="https://cloudinit.readthedocs.io/en/latest/explanation/format.html"text="cloud-init user-data formats">}}.
27
+
-**Meta-data**: Provides instance metadata such as the hostname. Uses a simple `key: value` format.
28
+
29
+
### Workflow
30
+
31
+
Cloud-init is configured through the API. The general workflow is:
32
+
33
+
1. Create a simulation with your desired topology, but do not start it yet.
34
+
2. Create **UserConfig** resources containing your user-data and meta-data content. UserConfigs are reusable — for example, you can create one user-data config and share it across multiple nodes, while giving each node its own meta-data with a unique hostname.
35
+
3. Assign the UserConfig resources to simulation nodes using the {{<exlinkurl="https://air-ngc.nvidia.com/api/docs/#tag/nodes/PATCH/api/v3/simulations/nodes/bulk-assign"text="bulk-assign endpoint">}}. This endpoint lets you assign both user-data and meta-data to multiple nodes in a single request.
36
+
4. Start the simulation. Cloud-init runs automatically on each node during its first boot.
37
+
38
+
{{%notice note%}}
39
+
Cloud-init runs during the initial boot of each node. Configure cloud-init assignments before starting the simulation for the first time. Assignments made after a node has already booted do not take effect until the node is rebuilt.
40
+
{{%/notice%}}
41
+
42
+
### Example
43
+
44
+
The following `cloud-config` user-data installs packages and writes a configuration file on first boot:
45
+
46
+
```yaml
47
+
#cloud-config
48
+
49
+
packages:
50
+
- curl
51
+
- jq
52
+
53
+
write_files:
54
+
- path: /etc/myapp/config.yaml
55
+
content: |
56
+
server:
57
+
listen: 0.0.0.0:8080
58
+
log_level: info
59
+
```
60
+
61
+
For information and additional examples of user-data and meta-data formats, refer to the {{<exlink url="https://cloudinit.readthedocs.io/en/latest/explanation/format.html" text="cloud-init documentation">}}.
After you create your topology, start the simulation. You cannot add, remove, or edit nodes after the simulation starts for the first time
88
+
After you create your topology, start the simulation. You cannot add, remove, or edit nodes after the simulation starts for the first time.
89
+
90
+
### Breakout Ports
91
+
92
+
For switch nodes, you can break out a port into multiple sub-ports to simulate multi-lane configurations. For example, breaking out `swp1` into four sub-ports creates `swp1s0`, `swp1s1`, `swp1s2`, and `swp1s3`.
93
+
94
+
To break out a port:
95
+
96
+
1. Select a switch node to open its properties panel.
97
+
2. In the **Connectors** section, click **Breakout Port**.
98
+
3. Select the ports you want to break out.
99
+
4. Choose the split type (number of sub-ports) and click **Confirm**.
100
+
101
+
{{<imgsrc="/images/guides/nvidia-air-v2/BreakoutPorts.png"alt="Breakout Port dialog showing port selection and split type">}}
102
+
103
+
The available split options depend on the switch model. To revert a breakout, select **Delete Breakout** in the Breakout Port dialog.
104
+
105
+
{{%notice note%}}
106
+
Breakout ports can only be configured before the simulation starts for the first time. Only data plane interfaces on switch nodes support breakout — management and OOB interfaces do not.
107
+
{{%/notice%}}
108
+
109
+
### Outbound Links
110
+
111
+
Outbound links connect a node's interface directly to external networks, giving that interface internet access independently of the OOB management network. This is useful when you need a node to have a public-facing interface — for example, to simulate an edge router or a firewall with an external uplink.
112
+
113
+
To configure an outbound link:
114
+
115
+
1. Select a node to open its properties panel.
116
+
2. In the **Connectors** section, click the port you want to connect externally.
117
+
3. In the Connect dialog, toggle **Outbound link** on.
118
+
119
+
{{<imgsrc="/images/guides/nvidia-air-v2/OutboundLink.png"alt="Connect dialog showing outbound link toggle">}}
120
+
121
+
Outbound interfaces appear in the **Services** tab, where you can create services (such as SSH or HTTP) that terminate on the outbound interface.
122
+
123
+
{{%notice note%}}
124
+
An outbound interface connects directly to the external network. It cannot also be connected to another node's interface.
125
+
{{%/notice%}}
89
126
90
127
### OOB Management Network
91
128
@@ -483,7 +520,7 @@ The following topology defines two nodes (`node-1` and `node-2`) connected to ea
483
520
484
521
The following topology defines two nodes (`node-1` and `node-2`) connected to each other through `eth1` interfaces. The out-of-band management network is disabled (`"oob": false`). The example includes:
485
522
- Custom values for configurable node fields (`cpu`, `memory`, `storage`)
486
-
-A public-facing interface (with a custom `mac` address) to the outside world (`eth2`of `node-1`)
523
+
-An outbound link (`eth2` of `node-1`) that connects directly to external networks. In the links array, use the string `"outbound"` as the second element instead of a node reference.
487
524
- A reference to the `os` image by specific UUID (`node-2`)
488
525
489
526
```
@@ -503,11 +540,15 @@ The following topology defines two nodes (`node-1` and `node-2`) connected to ea
Copy file name to clipboardExpand all lines: content/nvidia-air-v2/OOB-Management-Network.md
+24-1Lines changed: 24 additions & 1 deletion
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -2,7 +2,7 @@
2
2
title: OOB Management Network
3
3
author: NVIDIA
4
4
weight: 45
5
-
product: NVIDIA Air
5
+
product: NVIDIA Air 2.0
6
6
---
7
7
8
8
## Overview
@@ -119,6 +119,29 @@ When you enable the OOB network, Air automatically configures:
119
119
-**DHCP relay** on leaf switches to forward DHCP requests to the server
120
120
-**SSH key injection** so your Air SSH keys work on the `oob-mgmt-server`
121
121
122
+
### Disabling the DHCP Service
123
+
124
+
By default, the OOB network includes a fully configured DHCP server. If you want to manage DHCP yourself — for example, to run your own DHCP server with custom configurations — you can disable the automatic DHCP service while keeping the rest of the OOB network (L2 connectivity, management interfaces, and infrastructure nodes).
125
+
126
+
To disable DHCP when importing a JSON topology, set `enable_dhcp` to `false` in the `oob` object:
127
+
128
+
```
129
+
{
130
+
"nodes": { ... },
131
+
"links": [ ... ],
132
+
"oob": {
133
+
"enable_dhcp": false
134
+
}
135
+
}
136
+
```
137
+
138
+
When DHCP is disabled:
139
+
140
+
- The `oob-mgmt-server` and OOB switch infrastructure are still created.
141
+
- Management interfaces (`eth0`) are still connected to the OOB network.
142
+
- No DHCP server, DNS, or NAT gateway is configured on the `oob-mgmt-server`.
143
+
- Nodes do not receive automatic IP assignments. You must configure IP addresses manually or provide your own DHCP server.
144
+
122
145
## Accessing Your Nodes
123
146
124
147
The `oob-mgmt-server` is the entry point to your simulation. When you connect via SSH (using the service URL provided by Air), you land on this server.
0 commit comments