LoginSignup
5
0

More than 3 years have passed since last update.

Fedora CoreOSをVMware上で動かす

Last updated at Posted at 2021-02-28

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セットアップ手順

流れとしてはざっくりこんなかんじです。
1. FCCファイルの記述
2. Ignitionファイルの生成
3. 仮想マシン作成, 起動

以下の設定を行うのが今回の目標です。

  • デフォルトで用意されているユーザ 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

各設定項目についてはこのへん読んでください(説明放棄)。

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ファイルを落とします。

※ここからはESXiの画面になります
「OVFファイルまたはOVAファイルから仮想マシンをデプロイ」を選択します。

仮想マシンの名前を入力し、OVAファイルをアップロード

ストレージ選択とデプロイオプションはお好みで。

Optionsを展開し、設定を入力します。

  • Ignition config data
    • IgnitionファイルをBase64エンコードした文字列(先ほど作成したhoge_b64.txtの内容)をペースト
  • Ignition config data encoding
    • base64を入力

あとはVM起動時にIgnitionファイルの設定が反映されます。
設定したIPにpingが通るか、設定したユーザ&鍵でSSHログインできることを確認します。

以上です。最初からpodmanとdockerがインストールされているので、あとは好きなようにコンテナを載せていきましょう。

5
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
5
0