I’ve only tested this on Linux and the Intel architecture. You need to have qemu-system-x86 installed, and your computer should allow you to use the Linux kernel kvm module.

Install

To use Ambient, you need to install ambient-driver. For now, the only supported way is by building from source, using the Rust toolchain:

  • Clone the Git repository
  • Go into the source tree
  • Install with cargo install

The shell session should look like this:

$ git clone https://codeberg.org/ambient/ambient-driver.git
Cloning into 'ambient-driver'...
remote: Enumerating objects: 776, done.
remote: Total 776 (delta 0), reused 0 (delta 0), pack-reused 776 (from 1)
Receiving objects: 100% (776/776), 154.41 KiB | 2.71 MiB/s, done.
Resolving deltas: 100% (498/498), done.
$ cd ambient-driver/
$ cargo install --path=. --root $HOME/bin

Get virtual machine image

Download a virtual machine image, and unpack it.

curl https://files.liw.fi/ambient/ambient.qcow2.xz | unxz > ambient.qcow2

Create a projects file

Create a file projects.yaml with the following content:

projects:
  demo:
    image: /scratch/ambient-images/ambient-boot.qcow2
    source: /scratch/demo
    plan:
      - action: shell
        shell: |
          echo hello, world

Create a configuration file

Create ~/.config/ambient-driver/config.yaml with the following content:

tmpdir: /scratch/tmp
log: /scratch/ambient.log
target: _ewww@webby:/srv/http
dput_target: apt.liw.fi
run_ci: /usr/bin/run-ci
cpus: 4
memory: 8G
cache_max_size: 10G
state: /scratch/ambient-state

Adjust as needed.

Run CI

ambient-driver ambient.yaml

Read the log file from the location specified in the configuration file.