Cluster

The role performs various tasks related to OS configuration, reset and validation.

Role Settings

See the related role settings listed below, defined into main.yaml defaults file.

cluster_vars.device

  • Default value: null

If a SSD device is attached to hardware through USB cable, there is a validation step making sure the same device id and name related to cable adapter chipset is present into all cluster nodes. Validate the USB storage device values attached to nodes, by running the lsusb command:

lsusb

Command output:

Bus 003 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
Bus 002 Device 002: ID 174c:55aa ASMedia Technology Inc. ASM1051E SATA 6Gb/s bridge, ASM1053E SATA 6Gb/s bridge, ASM1153 SATA 3Gb/s bridge, ASM1153E SATA 6Gb/s bridge
Bus 002 Device 001: ID 1d6b:0003 Linux Foundation 3.0 root hub
Bus 001 Device 002: ID 2109:3431 VIA Labs, Inc. Hub
Bus 001 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub

For example, connecting the SSD device with different USB cable models might result in a different device.name. Similarly, connecting the SSD device to a different USB port will result in a different device.id.

ℹī¸
Run the Validation playbook, to validate the USB storage device values.

See the related child settings, listed below.

device.id

  • Default value: string, 2:2

The SSD device attached with a cable adapter to hardware is identified as Bus 002 Device 002, which sets the device.id to 2:2. To test if the value is correct, run:

lsusb -s '2:2'

Command output:

Bus 002 Device 002: ID 174c:55aa ASMedia Technology Inc. ASM1051E SATA 6Gb/s bridge, ASM1053E SATA 6Gb/s bridge, ASM1153 SATA 3Gb/s bridge, ASM1153E SATA 6Gb/s bridge

device.name

  • Default value: string, ASMedia Technology

The SSD device cable adapter chipset is identified as ASMedia Technology Inc. bridge, which sets the device.name to ASMedia Technology. To test if the value is correct, run:

lsusb -s '2:2' | grep 'ASMedia Technology'

Command output:

Bus 002 Device 002: ID 174c:55aa ASMedia Technology Inc. ASM1051E SATA 6Gb/s bridge, ASM1053E SATA 6Gb/s bridge, ASM1153 SATA 3Gb/s bridge, ASM1153E SATA 6Gb/s bridge

device.transport

  • Default value: string, usb

Setting the value to sata will disable any validation and configuration settings related to SSD devices with usb transport type. The Provisioning playbook will assume the OS was deployed prior, to a properly formatted internal disk.

cluster_vars.hardware

  • Default value: null

See the related child settings, listed below.

hardware.architecture

  • Default value: string, aarch64

Hardware architecture used to identify the cluster node hardware architecture. To determine the hardware architecture, run:

arch

Command output:

aarch64

hardware.product

  • Default value: string, Raspberry Pi

Hardware product, used to identify the cluster node hardware model. To determine the hardware product, run:

lshw -class system -quiet | grep product

Command output:

product: Raspberry Pi 4 Model B Rev 1.5

cluster_vars.service

  • Default value: null

See the related child settings, listed below.

service.bluetooth

  • Default value: null

Setup Bluetooth service, on Raspberry Pi hardware. By default, Ubuntu Server LTS 24.04 does not installs the related apt packages.

bluetooth.enabled
  • Default value: boolean, false

service.cloud_init

  • Default value: null

Setup Cloud Init service.

cloud_init.enabled
  • Default value: boolean, false

service.postfix

  • Default value: null

Setup Postfix service, with iCloud mail servers.

postfix.enabled
  • Default value: boolean, true
postfix.protocols
  • Default value: string, ipv4
postfix.relay
  • Default value: null
relay.host
  • Default value: string, smtp.mail.me.com
relay.port
  • Default value: integer, 587
postfix.user
  • Default value: null
user.alias

Mail sent by root user will use this email address.

user.name

Used for login into iCloud servers.

user.password

Encrypt the variable with ansible-vault.

service.snapd

  • Default value: null

Setup Snapd service.

snapd.enabled
  • Default value: boolean, false

service.unattended_upgrades

  • Default value: null

Setup Unattended Upgrades service.

unattended_upgrades.enabled
  • Default value: boolean, true
unattended_upgrades.mail_report
  • Default value: string, on-change
unattended_upgrades.remove_deps
  • Default value: string, true

service.wifi

  • Default value: null

Setup WiFi service, on Raspberry Pi hardware. By default, Ubuntu Server LTS 24.04 does not installs the related apt packages.

wifi.enabled
  • Default value: boolean, false

cluster_vars.ssh

  • Default value: null

See the related child settings, listed below.

ssh.authorized_key

  • Default value: string, /Users/username/.ssh/id_ed25519.pub

Example of setting a different storage location:

cluster_vars:
  ssh:
    authorized_key: /Users/username/keys/id_ed25519.pub

Role Tasks

See the related role tasks, listed below.

Configuration

OS configuration related tasks, see configuration.yaml for details.

Facts

Ansible facts, see facts.yaml for details.

Firewall

Firewall related tasks, can be used to also configure specific firewall rules. See firewall.yaml for details.

Main

Main role related tasks, see main.yaml for details.

Reset

Reset related tasks, see reset.yaml for details.

Upgrade

OS upgrade related tasks, see upgrade.yaml for details.

User

User related tasks, see user.yaml for details.

Validation

Validation related tasks, see validation.yaml for details.