Skip to content
No description, website, or topics provided.
Branch: master
Clone or download
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Type Name Latest commit message Commit time
Failed to load latest commit information.

Quamotion Device Farm Installation Images

Build Status

This repository creates scripts to create installation images (.iso files) which you can use to provision nodes for a Quamotion Device Farm.

This images contain a copy of Ubuntu which has been preloaded with the required components - such as Docker or Kubernetes.

Creating a bootable USB drive

You can use Rufus or to create a bootable USB drive based on this .iso image.

Setting up the Device Cloud

To set up the device cloud:

  1. Boot from the USB drive
  2. Follow the steps in the installation wizard
  3. Temporary workarounds
  4. Apply the quamotion_device_cloud Ansible role
  5. Deploy the quamotion-device-farm and quamotion-device-daemons Helm charts.

Applying the quamotion_device_cloud Ansible role

First, add IP address to the loopback adapter by configuring Netplan:

user@nuc:~$ cat /etc/netplan/loopback.yaml 
  version: 2
  renderer: networkd
        name: lo
      addresses: [ ]

and apply the plan:

netplan apply

Then, configure a Kubernetes cluster:

sudo su
ansible-galaxy install quamotion.device_cloud_node

ansible localhost -c local -m include_role -a name=quamotion.device_cloud_node -e "device_farm_role=master ansible_distribution=Ubuntu ansible_distribution_release=bionic kubernetes_apiserver_advertise_address="

Deploying the quamotion-device-daemons and quamotion-device-farm Helm charts

Make sure to edit the cloud.yaml file

user@nuc:~$ cat cloud.yaml
  project: <YOUR-PROJECT-ID>      
  apiKey: <YOUR-API-KEY>


sudo su

helm repo add quamotion

helm install --name quamotion-device-daemons
helm install -f cloud.yaml --name quamotion-device-farm

Further Reading

The scripts are based on Azure Pipelines, so you want to be familiar with that.

The scripts extract the root file system which is applied to the target machine by subiquity, the Ubuntu server installer.

They then launch a chroot() environment, apply the Ansible scripts and update the file system image in the installer image.

You can’t perform that action at this time.