LogoHydro Contest

Install Guide

The default boot entry for the ICPC Contest Image will deploy the image automatically in the first available disk with CLI Deploy Toolkit autoinstall configuration. This means that the image will be installed without any user intervention, and the system will be ready to use immediately after the installation completes. This is the recommended way. See the Autoinstall Guide section below for more details on how to customize the autoinstall configuration.

If you want to install the image manually for dual-boot scenarios or for any other reason, you can use the Install ICPC Contest Image boot entry. This will boot into a live environment where you can manually install the image using the calamares installer. This is not recommended for contest environments, as it requires manual intervention.

Autoinstall Guide

The autoinstall feature is a subset of the subiquity installer used by Ubuntu Server. It allows for unattended installations and configurations.

For now, the CLI Deploy Tookit only supports a limited set of autoinstall features (networks and user-data), other configuration keys will be ignored.

There are two ways to provide the autoinstall configuration:

  • #cloud-config user data containing autoinstall: configuration directives for cloud-init
  • Directly on the installation media

Autoinstall by way of cloud-config

The suggested way of providing autoinstall configuration is via cloud-init. This allows the configuration to be applied to the installer without having to modify the installation media.

The autoinstall configuration is provided via cloud-init configuration, which is almost endlessly flexible. In most scenarios the easiest way will be to provide user data via the NoCloud data source.

Autoinstall on the installation media

Another option for supplying autoinstall is to place a file named autoinstall.yaml on the installation media itself.

There are two locations that installer checks for the autoinstall.yaml file:

  • At the root of the installation medium. When writing the installation ISO to a USB flash drive, copy autoinstall.yaml to the partition containing the contents of the ISO - i.e. to the directory containing the casper sub-directory.
  • On the root file system of the installation system - this option typically requires modifying the installation ISO and is not recommended.
autoinstall.yaml
#cloud-config
autoinstall:
  version: 1
  user-data:
    # password for the default user
    # use "openssl passwd -6 passw0rd" to generate a SHA-512-hashed password
    password: '$6$UKai2yFOPb8$KAVcYf7BkWWqxnyR24Is/1rvcSTfuOA3uiA65OszXtsmuo3kif4W6gdND0iclBS6ihrN2N5PoiObUVulfEOxg/'
 
    # Do not expire the password on first login
    chpasswd:
      expire: false
 
    # Configure ssh public keys for root and default user
    ssh_authorized_keys:
      - ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIElY6Wzp70KNeMRGDBsLMCfDIwe3qZ5lmpzFvAnrbLfr sysops
 
    # Configure Autologin for the default user
    write_files:
      - path: /etc/gdm3/custom.conf
        content: |
          [daemon]
          AutomaticLoginEnable=true
          AutomaticLogin=icpc
 
          [security]
 
          [xdmcp]
 
          [chooser]
 
          [debug]
        owner: root:root
        permissions: '0644'
 
  network:
    version: 2
    wifis:
      # CLI Deploy Toolkit extension, this is not a standard cloud-init feature.
      # Use __autodetect__ to automatically detect first available wifi adapter
      # and connect to the specified access point.
      # This is useful for environments where the wifi adapter name is not known.
      __autodetect__:
        dhcp4: true
        dhcp-identifier: mac
        optional: true
        access-points:
          icpc-contest:
            password: 'p@s$w0rd'

On this page