作業ログ源泉垂れ流し

しがないIT技術者の作業ログを垂れ流す

Fedora CoreOSのインストール練習 3 〜CDからのスタンドアロンインストール〜

前回の続き。

今回は、ISOイメージをカスタマイズして、スタンドアロンインストールを試してみる。

まずは、docker上でcoreos-installerを使ってisoイメージをダウンロードする。

$ docker run --rm -v $PWD:/data -w /data quay.io/coreos/coreos-installer:release download -s stable -p metal -f iso

次に、Live CDを構成するためのButane config liveiso.buを準備する。
インストール先用のIgnition configをLive CDシステム上に配置し、 coreos-installerのドキュメントを参考に、coreos-installerを自動実行するsystemdサービスを定義する。

variant: fcos
version: 1.3.0
storage:
  files:
    - path: /var/tmp/simple.ign
      contents:
        local: simple.ign
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 --ignition-file /var/tmp/simple.ign /dev/vda
        ExecStart=/usr/bin/systemctl --no-block reboot
        StandardOutput=kmsg+console
        StandardError=kmsg+console

        [Install]
        RequiredBy=default.target

そして、Ignition config liveiso.ignに変換する。

$ docker run -i -v $PWD:/data --rm quay.io/coreos/butane:release --files-dir /data < liveiso.bu > liveiso.ign

準備したliveiso.ignをLive CDのISOイメージに追加する。
ここでは、ダウンロードしたisoファイルをコピーして書き込んでいる。

$ cp fedora-coreos-34.20210518.3.0-live.x86_64.iso fedora-coreos-34.20210518.3.0-live-mod.x86_64.iso
$ docker run -i --rm -v $PWD:/data -w /data quay.io/coreos/coreos-installer:release iso ignition embed fedora-coreos-34.20210518.3.0-live-mod.x86_64.iso < liveiso.ign

今回はKVMにインストールするので、コンソールがシリアルに表示されるように、Live CDのkernel引数も変更しておく。

$ docker run --rm -v $PWD:/data -w /data quay.io/coreos/coreos-installer:release iso kargs modify fedora-coreos-34.20210518.3.0-live-mod.x86_64.iso --append "console=ttyS0,115200n8"

出来上がったISOイメージを使ってKVMにインストールする。

$ virt-install --name coreos --vcpus 1 --memory 2048 --os-variant fedora31 --cdrom fedora-coreos-34.20210518.3.0-live-mod.x86_64.iso --disk path=coreos.img,size=10 --network network=default --graphics none --console pty,target_type=serial

無事インストールが完了。

Ignitionファイルを格納したISOイメージを作って、スタンドアロンでインストールできた!