---
# System prepended metadata

title: RHEL for Edge Installer Demo

---

# RHEL for Edge Installer Demo

*2020-04-12 (standard Stant-Up time)*

Short presentation showing the workflow for building a RHEL for Edge Installer (`rhel-edge-installer`) image.

## Workflow

1. Start osbuild-composer and connect to cockpit-composer.
2. Load or create blueprint with some interesting customizations (see [Blueprint section](#Blueprint)).
3. Build `rhel-edge-container` image type with ostree ref `rhel/edge/demo`
4. Load image into root's podman registry: `cat <container>.tar | sudo podman load`
5. Tag the container for convenience: `sudo podman tag <ID> localhost/edge-demo`
6. Start the container: `sudo podman run --rm -p 8080:80 localhost/edge-demo`
7. Load or create an empty blueprint.
8. Build `rhel-edge-installer` image type, pointing the `ostree-url` to `http://10.0.2.2:8080/repo/` and setting the `ostree-ref` to `rhel/edge/demo`.
9. Prepare a qcow disk: `qemu-img create -f qcow2 <diskfile>.qcow2 5G`
10. Boot the VM using the disk as a `drive` and the installer ISO as a `cdrom`:  `qemu-system-x86_64 -enable-kvm -m 4G -drive file=<diskfile>.qcow2 -cdrom <installer>.iso -device virtio-net-pci,netdev=n0,mac="FE:0B:6E:22:3D:13" -netdev user,id=n0,net=10.0.2.0/24`
11. Run through installation and reboot.
12. Log in to the new VM: `achilleas:password42` or `demo:password42`

### Demo workflow

The build steps (3 and 8) should be skipped and pre-built images should be used (see [Images section](#Images)) since the image building takes time.
The demo should show the workflow up to and including submitting the request, but immediately after that, the pre-built image should be used instead.

To make the demo workflow as similar to the real workflow as possible, we could have the pre-built images in composer beforehand as finished jobs that we can download and use, instead of just having them on disk ready to go.
We should also have prepared images on disk however, to avoid any issues (e.g., VM crashing and losing its storage).


## Prep assets
### Blueprint

The blueprint should have a few customizations to show its effect on the installed system.

```toml
name = "edge-demo"
description = "For RHEL for Edge Container+Installer demo"
version = "0.0.3"
modules = []
groups = []

[[packages]]
name = "vim-enhanced"
version = "*"

[[packages]]
name = "tmux"
version = "*"

[customizations]

[[customizations.user]]
name = "achilleas"
description = "Achilleas Koutsou"
password = "$6$uvdfeuHQYM6kUaea$fvvzyu.Z.u89TVCB2tq8UEc52XDFGnAqCo75BX3zu8OzIbS.EKMo/Saammb151sLrdzmlESnpNEPrJ7h5b0c6/"
key = "ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIIAYU2wzSk9r1l3iOwsvaJXCsfQIUga3xzShZJAM1zHv achilleas@Ruby"
groups = ["wheel"]

[[customizations.user]]
name = "demo"
description = "Demo User"
password = "$6$EUtzZbfQKb8ICn9h$Svf8dBjFaVqtjgGV4DwKk3fBlZ/hm2g20lbmzZtGZ6jwmR7CtEO7VjoHDeFllQON/wd1d9kQeT/1IrBK8dVzI1"
key = "ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIIAYU2wzSk9r1l3iOwsvaJXCsfQIUga3xzShZJAM1zHv achilleas@Ruby"
```

### Images

The image building process takes some time (10-20 mins for each), so both image types should be prepared before the demo to show the workflow without waiting time.

1. Container: A `rhel-edge-container` built from the blueprint above (RHEL 8.4).
2. Installer: A `rhel-edge-installer` that consumes the commit from the `rhel-edge-container`.