Fedora CoreOSのインストール練習 1
KVM上にFedora CoreOSをインストールしてみる。
公式ドキュメントを参考に作業を進める。
最初に、公式ダウンロードページから、QEMU用のイメージファイルをダウンロードして展開する。
$ curl -O 'https://builds.coreos.fedoraproject.org/prod/streams/stable/builds/34.20210518.3.0/x86_64/fedora-coreos-34.20210518.3.0-qemu.x86_64.qcow2.xz' $ unxz fedora-coreos-34.20210518.3.0-qemu.x86_64.qcow2.xz
次に、公式ドキュメントを参考に、Ignitionファイルを準備する。
まずはButaneのDockerイメージを取得する。
$ docker pull quay.io/coreos/butane:release
次に、YAML形式のButan configファイル simple.bu
を作成する。
ここではユーザcore
を作るだけの設定にする。
variant: fcos version: 1.3.0 passwd: users: - name: core ssh_authorized_keys: - (ssh公開鍵)
ここで(ssh公開鍵)
は実際のSSH公開鍵を入力する。
Butan configファイル simple.bu
からJSON形式のIgnition configファイル simple.ign
に変換する。
$ docker run -i --rm quay.io/coreos/butane:release < simple.bu > simple.ign
出力されたsimple.ign
の中身はこれ。
{"ignition":{"version":"3.2.0"},"passwd":{"users":[{"name":"core","sshAuthorizedKeys":["(ssh公開鍵)"]}]}}
ここまででFedora CoreOSのインストールに必要なものは準備できたが、
Debian系ではAppArmorが有効になっており、そのままvirt-install
すると
can't load /path/to/simple.ign: Failed to open file “/path/to/simple.ign”: Permission denied
といって怒られる。
そこで、libvirtがsimple.ign
ファイルを読めるように、AppArmorの設定を変更する。
$ sudo vi /etc/apparmor.d/libvirt/TEMPLATE.qemu
profile LIBVIRT_TEMPLATE flags=(attach_disconnected) {
#include <abstractions/libvirt-qemu>
+ /path/to/simple.ign rk,
}
準備が整ったので、VMを作成する。
手元のホストでは、os-variantでfedora-coreos-stable
が認識してもらえなかったので、fedora31
を指定している。
$ virt-install --name coreos --vcpus 1 --memory 2048 --os-variant fedora31 --import --graphics=none --disk path=coreos.img,size=10,backing_store=$PWD/fedora-coreos-34.20210518.3.0-qemu.x86_64.qcow2 --network network=default --qemu-commandline="-fw_cfg name=opt/com.coreos/config,file=$PWD/simple.ign"
インストールが終了したら、sshで接続してみる。
IPアドレスはインストール時のコンソールの最後の方に次のように表示されている。
enp1s0: 192.168.122.22 fe80::ba1b:5f86:aa42:280f
coreユーザでssh接続できることを確認する。
$ ssh core@192.168.122.22
無事Fedora CoreOSがKVM上にインストールできた!