# 20201009_CoreOS-Installer-Custom-Install The following steps create and embed an Ignition config into the RHCOS Live ISO image. The Ignition config defines a `install.service` that runs automatically when the Live ISO is booted and provides its own `coreos-installer` command line to run with options that configure networking via kernel arguments and also specifies a remote Ignition config via the `ignition.config.url` kernel arguement. The boot from the ISO that performs the install will require no networking at all to perform the install. Note this is based on the [upstream documentation](https://coreos.github.io/coreos-installer/customizing-install/#custom-coreos-installer-invocation). 1. Define a config that will be translated via `fcct` ``` cat <<'EOF' > fcct-custom-install.yaml variant: fcos version: 1.1.0 systemd: units: - name: install.service enabled: true contents: | [Unit] Description=Run CoreOS Installer Requires=coreos-installer-pre.target After=coreos-installer-pre.target OnFailure=emergency.target OnFailureJobMode=replace-irreversibly [Service] Type=oneshot ExecStart=/usr/bin/coreos-installer install --append-karg="ip=192.168.122.111::192.168.122.1:255.255.255.0:myhostname::none:192.168.122.1" --append-karg="ignition.config.url=https://dustymabe.fedorapeople.org/user-systemd.ign" /dev/sda ExecStart=/usr/bin/systemctl --no-block reboot StandardOutput=kmsg+console StandardError=kmsg+console [Install] RequiredBy=default.target EOF ``` You'll want to replace the values above with your own customization. For example, you'll provide different `ip=` values, a different `ignition.config.url` value, and probably a different value for `/dev/sda`. 2. Convert the config into an Ignition config: ``` cat fcct-custom-install.yaml | fcct > fcct-custom-install.ign ``` 3. Embed the config into the ISO and create a new file `rhcos-custom.iso` ``` coreos-installer iso ignition embed -i ./fcct-custom-install.ign -o rhcos-custom.iso rhcos-4.6.0-0.nightly-2020-09-29-013537-x86_64-live.x86_64.iso ``` 4. Now use the ISO to boot a system. It will auto-install to `/dev/sda` and embed the defined kernel arguments above for the installed system.