Skip to content
Kostiantyn Kostiuk edited this page Jul 10, 2024 · 11 revisions

AutoHCK Installer

This repository contains scripts to deploy the HCK-CI solution on a local server.

Supported OS

The installation process has been tested at the following OSes:

  1. Ubuntu 22.04
  2. Fedora 37-39
  3. CentOS Stream 9

Pre-requirements

  1. Install the latest version of jq.

Ubuntu 20.04 additional pre-requirements

  1. Add your user to kvm group: sudo adduser $(id -un) kvm

  2. On Ubuntu 20.04 only the root can access /dev/vhost-net device. You must run HCK-CI as a root or add the udev rule to change /dev/vhost-net permission.

    Create /etc/udev/rules.d/01-vhost-net-kvm.rules file with the following content:

    KERNEL=="vhost-net", GROUP="kvm", MODE="0660", OPTIONS+="static_node=vhost-net"
    

Installation

To install the HCK-CI solution run bash install.sh.

Silent installation

To install HCK-CI solution in silent mode:

  1. define at least "REPOS_DIR", "ISO_PATH", "IMAGES_PATH", "WORKSPACE_PATH" environment variables (details)
  2. run bash install.sh --silent.

Installation for VirtIO-Win upstream CI (Jenkins agent)

  1. ssh to a new machine (at least 12 CPU cores, 24G RAM)
  2. export AUTOHCK_DIR='/root/Prometheus/auto_hck'
  3. install HCK-CI solution
  4. copy .env, lib/config/*.crt, lib/resultuploaders/dropbox.json from an existing agent
  5. copy OS images to IMAGES_PATH from an existing agent
  6. create jenkins node

After installation

  1. You must configure AutoHCK and install Windows images before running tests. Please refer to https://github.com/HCK-CI/AutoHCK/wiki/Getting-Started#configuration and https://github.com/HCK-CI/AutoHCK/wiki/Image-Installation
  2. Run testing by example https://github.com/HCK-CI/AutoHCK/wiki#examples

Supported environment variables

  • REPOS_DIR - path to repositories directory, contains all dependencies.
  • ISO_PATH - path to ISO directory, contains all ISO for image installation.
  • IMAGES_PATH - path to images directory. This directory needs to have enough free storage to hold the images (~ 50Gb for one platform)
  • WORKSPACE_PATH - path to workspace directory. See workspace for details. This directory needs to have enough free storage.
  • QEMU_DIR - custom path for QEMU repository (default: REPOS_DIR/qemu).
  • TOOLSHCK_DIR - custom path for Tools HCK repository (default: REPOS_DIR/toolsHCK).
  • HLK_SETUP_SCRIPTS_DIR - custom path for HLK Setup scripts repository (default: REPOS_DIR/HLK-Setup-Scripts).
  • EXTRA_SOFTWARE_DIR - custom path for extra software repository (default: REPOS_DIR/extra-software). Notes, some of the extra software is very big ~5Gb, check directory free space, or move this repository to another location.
  • HLK_PLAYLISTS_DIR - custom path for HLK playlists repository (default: REPOS_DIR/hlkplaylists).
  • HCK_FILTERS_DIR - custom path for HCK filters (default: REPOS_DIR/hckfilters).
  • AUTOHCK_DIR - custom path for AutoHCK repository (default: REPOS_DIR/AutoHCK).

Examples

export REPOS_DIR='/home/<user>/HCK-CI/repos'
export AUTOHCK_DIR='/home/<user>/AutoHCK'
export HLK_SETUP_SCRIPTS_DIR='/data/HCK-CI/HLK-Setup-Scripts'
bash install.sh
export REPOS_DIR='/home/<user>/HCK-CI/repos'
export ISO_PATH='/home/<user>/HCK-CI/iso'
export IMAGES_PATH='/home/<user>/HCK-CI/images'
export WORKSPACE_PATH='/home/<user>/HCK-CI/workspace'
export AUTOHCK_DIR='/home/<user>/AutoHCK'
bash install.sh --silent