Inventory Reference#
The Ansible inventory file hosts.yml defines all hosts and their groupings.
Host groups#
Group |
Purpose |
Used by |
|---|---|---|
|
The devcontainer (localhost) |
|
|
Turing Pi BMC hosts |
|
|
Nodes on a specific Turing Pi |
|
|
Non-Turing Pi servers |
All node roles |
|
Union of all node groups |
|
Naming conventions#
Turing Pi node groups#
Node groups for Turing Pi boards must be named <bmc_hostname>_nodes. The flash
role uses this convention to discover which nodes belong to each BMC.
Examples:
BMC hostname
turingpi→ node groupturingpi_nodesBMC hostname
turingpi-2→ node groupturingpi-2_nodes
The all_nodes group#
The all_nodes group is a union of all node groups. Define it using children:
all_nodes:
children:
turingpi_nodes:
extra_nodes:
Per-node variables#
Variable |
Required |
Values |
Description |
|---|---|---|---|
|
For Turing Pi nodes |
|
Physical slot on the board (slot 1 nearest coin battery) |
|
For Turing Pi nodes |
|
Compute module type (determines OS image) |
|
Optional |
Device path |
Target block device for OS migration (e.g. |
|
Optional |
|
Set |
|
Optional |
|
Applies |
|
Optional |
IP address |
Forces K3s to use this IP (passed as |
|
Optional |
Interface name |
Forces flannel’s VXLAN tunnel to use this interface (passed as |
Example: Turing Pi only#
controller:
hosts:
localhost:
ansible_connection: local
turing_pis:
hosts:
turingpi:
vars:
ansible_user: "{{ tpi_user }}"
turingpi_nodes:
hosts:
node01:
slot_num: 1
type: pi4
node02:
slot_num: 2
type: rk1
root_dev: /dev/nvme0n1
node03:
slot_num: 3
type: rk1
root_dev: /dev/nvme0n1
node04:
slot_num: 4
type: rk1
root_dev: /dev/nvme0n1
vars:
ansible_user: "{{ ansible_account }}"
all_nodes:
children:
turingpi_nodes:
Example: Standalone servers only#
controller:
hosts:
localhost:
ansible_connection: local
extra_nodes:
hosts:
server1:
server2:
server3:
vars:
ansible_user: "{{ ansible_account }}"
all_nodes:
children:
extra_nodes:
Example: Mixed (Turing Pi + extra nodes)#
controller:
hosts:
localhost:
ansible_connection: local
turing_pis:
hosts:
turingpi:
vars:
ansible_user: "{{ tpi_user }}"
turingpi_nodes:
hosts:
node01:
slot_num: 1
type: pi4
node02:
slot_num: 2
type: rk1
root_dev: /dev/nvme0n1
vars:
ansible_user: "{{ ansible_account }}"
extra_nodes:
hosts:
nuc1:
nuc2:
vars:
ansible_user: "{{ ansible_account }}"
all_nodes:
children:
turingpi_nodes:
extra_nodes: