mirror of
https://github.com/siderolabs/talos.git
synced 2026-05-05 12:26:21 +02:00
docs: add nocloud documentation
Update documentation - how to use nocloud platform. Signed-off-by: Serge Logvinov <serge.logvinov@sinextra.dev> Signed-off-by: Andrey Smirnov <andrey.smirnov@talos-systems.com>
This commit is contained in:
parent
59437d6d83
commit
ca65b918a7
@ -3,4 +3,123 @@ title: "Nocloud"
|
||||
description: "Creating a cluster via the CLI using qemu."
|
||||
---
|
||||
|
||||
Talos is known to work on nocloud; however, it is currently undocumented.
|
||||
Talos supports [nocloud](https://cloudinit.readthedocs.io/en/latest/topics/datasources/nocloud.html) data source implementation.
|
||||
|
||||
There are two ways to configure Talos server with `nocloud` platform:
|
||||
|
||||
* via SMBIOS "serial number" option
|
||||
* using CDROM or USB-flash filesystem
|
||||
|
||||
### SMBIOS Serial Number
|
||||
|
||||
This method requires the network connection to be up (e.g. via DHCP).
|
||||
Configuration is delivered from the HTTP server.
|
||||
|
||||
```text
|
||||
ds=nocloud-net;s=http://10.10.0.1/configs/;h=HOSTNAME
|
||||
```
|
||||
|
||||
After the network initialization is complete, Talos fetches:
|
||||
|
||||
* the machine config from `http://10.10.0.1/configs/user-data`
|
||||
* the network config (if available) from `http://10.10.0.1/configs/network-config`
|
||||
|
||||
#### SMBIOS: QEMU
|
||||
|
||||
Add the following flag to `qemu` command line when starting a VM:
|
||||
|
||||
```bash
|
||||
qemu-system-x86_64 \
|
||||
...\
|
||||
-smbios type=1,serial=ds=nocloud-net;s=http://10.10.0.1/configs/
|
||||
```
|
||||
|
||||
#### SMBIOS: Proxmox
|
||||
|
||||
Set the source machine config through the serial number on Proxmox GUI.
|
||||
|
||||
<img src="/images/no-cloud/proxmox-smbios.png" width="920px">
|
||||
|
||||
The Proxmox stores the VM config at `/etc/pve/qemu-server/$ID.conf` (```$ID``` - VM ID number of virtual machine), you will see something like:
|
||||
|
||||
```conf
|
||||
...
|
||||
smbios1: uuid=ceae4d10,serial=ZHM9bm9jbG91ZC1uZXQ7cz1odHRwOi8vMTAuMTAuMC4xL2NvbmZpZ3Mv,base64=1
|
||||
...
|
||||
```
|
||||
|
||||
Where serial holds the base64-encoded string version of `ds=nocloud-net;s=http://10.10.0.1/configs/`.
|
||||
|
||||
### CDROM/USB
|
||||
|
||||
Talos can also get machine config from local attached storage without any prior network connection being established.
|
||||
|
||||
You can provide configs to the server via files on a VFAT or ISO9660 filesystem.
|
||||
The filesystem volume label must be ```cidata``` or ```CIDATA```.
|
||||
|
||||
#### Example: QEMU
|
||||
|
||||
Create and prepare Talos machine config:
|
||||
|
||||
```bash
|
||||
export CONTROL_PLANE_IP=192.168.1.10
|
||||
|
||||
talosctl gen config talos-nocloud https://$CONTROL_PLANE_IP:6443 --output-dir _out
|
||||
```
|
||||
|
||||
Prepare cloud-init configs:
|
||||
|
||||
```bash
|
||||
mkdir -p iso
|
||||
mv _out/controlplane.yaml iso/user-data
|
||||
echo "local-hostname: controlplane-1" > iso/meta-data
|
||||
cat > iso/network-config << EOF
|
||||
version: 1
|
||||
config:
|
||||
- type: physical
|
||||
name: eth0
|
||||
mac_address: "52:54:00:12:34:00"
|
||||
subnets:
|
||||
- type: static
|
||||
address: 192.168.1.10
|
||||
netmask: 255.255.255.0
|
||||
gateway: 192.168.1.254
|
||||
EOF
|
||||
```
|
||||
|
||||
Create cloud-init iso image
|
||||
|
||||
```bash
|
||||
cd iso && genisoimage -output cidata.iso -V cidata -r -J user-data meta-data network-config
|
||||
```
|
||||
|
||||
Start the VM
|
||||
|
||||
```bash
|
||||
qemu-system-x86_64 \
|
||||
...
|
||||
-cdrom iso/cidata.iso \
|
||||
...
|
||||
```
|
||||
|
||||
#### Example: Proxmox
|
||||
|
||||
Proxmox can create cloud-init disk [for you](https://pve.proxmox.com/wiki/Cloud-Init_Support).
|
||||
Edit the cloud-init config information in Proxmox as follows, substitute your own information as necessary:
|
||||
|
||||
<img src="/images/no-cloud/proxmox-cloudinit.png" width="600px">
|
||||
|
||||
and then update ```cicustom``` param at `/etc/pve/qemu-server/$ID.conf`.
|
||||
|
||||
```config
|
||||
cicustom: user=local:snippets/master-1.yml
|
||||
ipconfig0: ip=192.168.1.10/24,gw=192.168.10.254
|
||||
nameserver: 1.1.1.1
|
||||
searchdomain: local
|
||||
```
|
||||
|
||||
> Note: `snippets/master-1.yml` is Talos machine config.
|
||||
It is usually located at `/var/lib/vz/snippets/master-1.yml`.
|
||||
This file must be placed to this path manually, as Proxmox does not support snippet uploading via API/GUI.
|
||||
|
||||
Click on `Regenerate Image` button after the above changes are made.
|
||||
|
||||
@ -3,4 +3,123 @@ title: "Nocloud"
|
||||
description: "Creating a cluster via the CLI using qemu."
|
||||
---
|
||||
|
||||
Talos is known to work on nocloud; however, it is currently undocumented.
|
||||
Talos supports [nocloud](https://cloudinit.readthedocs.io/en/latest/topics/datasources/nocloud.html) data source implementation.
|
||||
|
||||
There are two ways to configure Talos server with `nocloud` platform:
|
||||
|
||||
* via SMBIOS "serial number" option
|
||||
* using CDROM or USB-flash filesystem
|
||||
|
||||
### SMBIOS Serial Number
|
||||
|
||||
This method requires the network connection to be up (e.g. via DHCP).
|
||||
Configuration is delivered from the HTTP server.
|
||||
|
||||
```text
|
||||
ds=nocloud-net;s=http://10.10.0.1/configs/;h=HOSTNAME
|
||||
```
|
||||
|
||||
After the network initialization is complete, Talos fetches:
|
||||
|
||||
* the machine config from `http://10.10.0.1/configs/user-data`
|
||||
* the network config (if available) from `http://10.10.0.1/configs/network-config`
|
||||
|
||||
#### SMBIOS: QEMU
|
||||
|
||||
Add the following flag to `qemu` command line when starting a VM:
|
||||
|
||||
```bash
|
||||
qemu-system-x86_64 \
|
||||
...\
|
||||
-smbios type=1,serial=ds=nocloud-net;s=http://10.10.0.1/configs/
|
||||
```
|
||||
|
||||
#### SMBIOS: Proxmox
|
||||
|
||||
Set the source machine config through the serial number on Proxmox GUI.
|
||||
|
||||
<img src="/images/no-cloud/proxmox-smbios.png" width="920px">
|
||||
|
||||
The Proxmox stores the VM config at `/etc/pve/qemu-server/$ID.conf` (```$ID``` - VM ID number of virtual machine), you will see something like:
|
||||
|
||||
```conf
|
||||
...
|
||||
smbios1: uuid=ceae4d10,serial=ZHM9bm9jbG91ZC1uZXQ7cz1odHRwOi8vMTAuMTAuMC4xL2NvbmZpZ3Mv,base64=1
|
||||
...
|
||||
```
|
||||
|
||||
Where serial holds the base64-encoded string version of `ds=nocloud-net;s=http://10.10.0.1/configs/`.
|
||||
|
||||
### CDROM/USB
|
||||
|
||||
Talos can also get machine config from local attached storage without any prior network connection being established.
|
||||
|
||||
You can provide configs to the server via files on a VFAT or ISO9660 filesystem.
|
||||
The filesystem volume label must be ```cidata``` or ```CIDATA```.
|
||||
|
||||
#### Example: QEMU
|
||||
|
||||
Create and prepare Talos machine config:
|
||||
|
||||
```bash
|
||||
export CONTROL_PLANE_IP=192.168.1.10
|
||||
|
||||
talosctl gen config talos-nocloud https://$CONTROL_PLANE_IP:6443 --output-dir _out
|
||||
```
|
||||
|
||||
Prepare cloud-init configs:
|
||||
|
||||
```bash
|
||||
mkdir -p iso
|
||||
mv _out/controlplane.yaml iso/user-data
|
||||
echo "local-hostname: controlplane-1" > iso/meta-data
|
||||
cat > iso/network-config << EOF
|
||||
version: 1
|
||||
config:
|
||||
- type: physical
|
||||
name: eth0
|
||||
mac_address: "52:54:00:12:34:00"
|
||||
subnets:
|
||||
- type: static
|
||||
address: 192.168.1.10
|
||||
netmask: 255.255.255.0
|
||||
gateway: 192.168.1.254
|
||||
EOF
|
||||
```
|
||||
|
||||
Create cloud-init iso image
|
||||
|
||||
```bash
|
||||
cd iso && genisoimage -output cidata.iso -V cidata -r -J user-data meta-data network-config
|
||||
```
|
||||
|
||||
Start the VM
|
||||
|
||||
```bash
|
||||
qemu-system-x86_64 \
|
||||
...
|
||||
-cdrom iso/cidata.iso \
|
||||
...
|
||||
```
|
||||
|
||||
#### Example: Proxmox
|
||||
|
||||
Proxmox can create cloud-init disk [for you](https://pve.proxmox.com/wiki/Cloud-Init_Support).
|
||||
Edit the cloud-init config information in Proxmox as follows, substitute your own information as necessary:
|
||||
|
||||
<img src="/images/no-cloud/proxmox-cloudinit.png" width="600px">
|
||||
|
||||
and then update ```cicustom``` param at `/etc/pve/qemu-server/$ID.conf`.
|
||||
|
||||
```config
|
||||
cicustom: user=local:snippets/master-1.yml
|
||||
ipconfig0: ip=192.168.1.10/24,gw=192.168.10.254
|
||||
nameserver: 1.1.1.1
|
||||
searchdomain: local
|
||||
```
|
||||
|
||||
> Note: `snippets/master-1.yml` is Talos machine config.
|
||||
It is usually located at `/var/lib/vz/snippets/master-1.yml`.
|
||||
This file must be placed to this path manually, as Proxmox does not support snippet uploading via API/GUI.
|
||||
|
||||
Click on `Regenerate Image` button after the above changes are made.
|
||||
|
||||
@ -3,4 +3,123 @@ title: "Nocloud"
|
||||
description: "Creating a cluster via the CLI using qemu."
|
||||
---
|
||||
|
||||
Talos is known to work on nocloud; however, it is currently undocumented.
|
||||
Talos supports [nocloud](https://cloudinit.readthedocs.io/en/latest/topics/datasources/nocloud.html) data source implementation.
|
||||
|
||||
There are two ways to configure Talos server with `nocloud` platform:
|
||||
|
||||
* via SMBIOS "serial number" option
|
||||
* using CDROM or USB-flash filesystem
|
||||
|
||||
### SMBIOS Serial Number
|
||||
|
||||
This method requires the network connection to be up (e.g. via DHCP).
|
||||
Configuration is delivered from the HTTP server.
|
||||
|
||||
```text
|
||||
ds=nocloud-net;s=http://10.10.0.1/configs/;h=HOSTNAME
|
||||
```
|
||||
|
||||
After the network initialization is complete, Talos fetches:
|
||||
|
||||
* the machine config from `http://10.10.0.1/configs/user-data`
|
||||
* the network config (if available) from `http://10.10.0.1/configs/network-config`
|
||||
|
||||
#### SMBIOS: QEMU
|
||||
|
||||
Add the following flag to `qemu` command line when starting a VM:
|
||||
|
||||
```bash
|
||||
qemu-system-x86_64 \
|
||||
...\
|
||||
-smbios type=1,serial=ds=nocloud-net;s=http://10.10.0.1/configs/
|
||||
```
|
||||
|
||||
#### SMBIOS: Proxmox
|
||||
|
||||
Set the source machine config through the serial number on Proxmox GUI.
|
||||
|
||||
<img src="/images/no-cloud/proxmox-smbios.png" width="920px">
|
||||
|
||||
The Proxmox stores the VM config at `/etc/pve/qemu-server/$ID.conf` (```$ID``` - VM ID number of virtual machine), you will see something like:
|
||||
|
||||
```conf
|
||||
...
|
||||
smbios1: uuid=ceae4d10,serial=ZHM9bm9jbG91ZC1uZXQ7cz1odHRwOi8vMTAuMTAuMC4xL2NvbmZpZ3Mv,base64=1
|
||||
...
|
||||
```
|
||||
|
||||
Where serial holds the base64-encoded string version of `ds=nocloud-net;s=http://10.10.0.1/configs/`.
|
||||
|
||||
### CDROM/USB
|
||||
|
||||
Talos can also get machine config from local attached storage without any prior network connection being established.
|
||||
|
||||
You can provide configs to the server via files on a VFAT or ISO9660 filesystem.
|
||||
The filesystem volume label must be ```cidata``` or ```CIDATA```.
|
||||
|
||||
#### Example: QEMU
|
||||
|
||||
Create and prepare Talos machine config:
|
||||
|
||||
```bash
|
||||
export CONTROL_PLANE_IP=192.168.1.10
|
||||
|
||||
talosctl gen config talos-nocloud https://$CONTROL_PLANE_IP:6443 --output-dir _out
|
||||
```
|
||||
|
||||
Prepare cloud-init configs:
|
||||
|
||||
```bash
|
||||
mkdir -p iso
|
||||
mv _out/controlplane.yaml iso/user-data
|
||||
echo "local-hostname: controlplane-1" > iso/meta-data
|
||||
cat > iso/network-config << EOF
|
||||
version: 1
|
||||
config:
|
||||
- type: physical
|
||||
name: eth0
|
||||
mac_address: "52:54:00:12:34:00"
|
||||
subnets:
|
||||
- type: static
|
||||
address: 192.168.1.10
|
||||
netmask: 255.255.255.0
|
||||
gateway: 192.168.1.254
|
||||
EOF
|
||||
```
|
||||
|
||||
Create cloud-init iso image
|
||||
|
||||
```bash
|
||||
cd iso && genisoimage -output cidata.iso -V cidata -r -J user-data meta-data network-config
|
||||
```
|
||||
|
||||
Start the VM
|
||||
|
||||
```bash
|
||||
qemu-system-x86_64 \
|
||||
...
|
||||
-cdrom iso/cidata.iso \
|
||||
...
|
||||
```
|
||||
|
||||
#### Example: Proxmox
|
||||
|
||||
Proxmox can create cloud-init disk [for you](https://pve.proxmox.com/wiki/Cloud-Init_Support).
|
||||
Edit the cloud-init config information in Proxmox as follows, substitute your own information as necessary:
|
||||
|
||||
<img src="/images/no-cloud/proxmox-cloudinit.png" width="600px">
|
||||
|
||||
and then update ```cicustom``` param at `/etc/pve/qemu-server/$ID.conf`.
|
||||
|
||||
```config
|
||||
cicustom: user=local:snippets/master-1.yml
|
||||
ipconfig0: ip=192.168.1.10/24,gw=192.168.10.254
|
||||
nameserver: 1.1.1.1
|
||||
searchdomain: local
|
||||
```
|
||||
|
||||
> Note: `snippets/master-1.yml` is Talos machine config.
|
||||
It is usually located at `/var/lib/vz/snippets/master-1.yml`.
|
||||
This file must be placed to this path manually, as Proxmox does not support snippet uploading via API/GUI.
|
||||
|
||||
Click on `Regenerate Image` button after the above changes are made.
|
||||
|
||||
BIN
website/static/images/no-cloud/proxmox-cloudinit.png
Normal file
BIN
website/static/images/no-cloud/proxmox-cloudinit.png
Normal file
Binary file not shown.
|
After Width: | Height: | Size: 28 KiB |
BIN
website/static/images/no-cloud/proxmox-smbios.png
Normal file
BIN
website/static/images/no-cloud/proxmox-smbios.png
Normal file
Binary file not shown.
|
After Width: | Height: | Size: 64 KiB |
Loading…
x
Reference in New Issue
Block a user