Fedora CoreOSとは
公式サイトには
『Fedora CoreOSは、コンテナ化されたワークロードを安全かつ大規模に実行するための、自動的に更新される最小限のオペレーティングシステムです』(直訳)
と記載されています。
要するにコンテナ実行特化型の軽量OSです。
歴史が少々複雑で、
CoreOS社が「CoreOS」を提供
↓
名称変更して「Container Linux」になる
↓
CoreOS社がRedHatに買収される
↓
Project Atomicと統合され「Fedora CoreOS」になる(開発成果はRHEL CoreOSに取り込まれる)
という過去をたどっているので、「Fedora CoreOS」と「CoreOS」は全くの別物であることに注意です。
インストールの前に
大抵のLinux系OSインストーラはネットワークやユーザ設定等を対話式に進めていきますが、Fedora CoreOSは違います。
設定情報を予めIgnitionファイルと呼ばれるものに記述しておき、インストール時はIgnitionファイルを参照してセットアップが行われます
IgnitionファイルはJSON形式ですが、手で書くのはつらいので、YAML形式のFCCファイルからIgnitionファイルを生成する、FCCTというツールが公式で提供されています。
また今回はVMware+OVAでセットアップを行うため、isoインストーラを使用する場合と少し手順が異なります。
OSセットアップ手順
流れとしてはざっくりこんなかんじです。
- FCCファイルの記述
- Ignitionファイルの生成
- 仮想マシン作成, 起動
以下の設定を行うのが今回の目標です。
- デフォルトで用意されているユーザ
core
にSSHログインするための公開鍵設定 - ホスト名を
fcos1
にする - 静的ネットワーク設定
- NIC:
ens192
- IP:
192.168.1.1/24
- Gateway:
192.168.1.1
- Nameserver:
192.168.1.1
1. FCCファイルの記述
とりあえず完成版貼り付け。
variant: fcos
version: 1.3.0
passwd:
users:
- name: core
ssh_authorized_keys:
- ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAICZ+BJTMKUu0wO0I7PMN89CAiKF77V0HQ/lGy4NXJ1Jx
storage:
files:
- path: /etc/hostname
mode: 0644
contents:
inline: fcos1
- path: /etc/NetworkManager/system-connections/ens192.nmconnection
mode: 0600
contents:
inline: |
[connection]
id=ens192
type=ethernet
interface-name=ens192
[ipv4]
address1=192.168.1.21/24,192.168.1.1
dns=192.168.1.1
dns-search=
may-fail=false
method=manual
各設定項目についてはこのへん読んでください(説明放棄)。
- Configuring Users :: Fedora Docs
- https://docs.fedoraproject.org/en-US/fedora-coreos/authentication/
- Setting a Hostname :: Fedora Docs
- https://docs.fedoraproject.org/en-US/fedora-coreos/hostname/
- Host Network Configuration :: Fedora Docs
- https://docs.fedoraproject.org/en-US/fedora-coreos/sysconfig-network-configuration/#_via_ignition
2. Ignitionファイルの作成
先述の通り、FCCTでFCC→Ignitionに変換します。
FCCTは実行バイナリとコンテナイメージが配布されています。今回はDockerコンテナでいきます。
先程作成したFCCファイルをhoge.fcc
として保存し、以下のコマンドを実行します。
docker run -i --rm quay.io/coreos/fcct:release --pretty --strict < hoge.fcc > hoge.ign
これでhoge.ign
にIgnitionファイルが出力されます。
(isoインストーラを使用してOSインストールを行う場合は、このIgnitionファイルをHTTPで公開する必要があります。)
VMwareでは、仮想マシン作成時にBase64エンコードしたIgnitionファイルを直接指定できるので、以下コマンドでIgnitionファイルをBase64エンコードしておきます。
base64 -w0 hoge.ign > hoge_b64.txt
3. 仮想マシンの作成, 起動
ダウンロードページからVMware用のOVAファイルを落とします。
- Download Fedora CoreOS
- https://getfedora.org/coreos/download?tab=metal_virtualized&stream=stable
※ここからはESXiの画面になります
「OVFファイルまたはOVAファイルから仮想マシンをデプロイ」を選択します。
ストレージ選択とデプロイオプションはお好みで。
Options
を展開し、設定を入力します。
- Ignition config data
- IgnitionファイルをBase64エンコードした文字列(先ほど作成したhoge_b64.txtの内容)をペースト
- Ignition config data encoding
-
base64
を入力
あとはVM起動時にIgnitionファイルの設定が反映されます。
設定したIPにpingが通るか、設定したユーザ&鍵でSSHログインできることを確認します。
以上です。最初からpodmanとdockerがインストールされているので、あとは好きなようにコンテナを載せていきましょう。