HatでOpenShiftのサポートエンジニアをしている林です。CoreOS(RHCOS)のマシンを起動する必要があります。そのための方法は大雑把に言って以下の二つです。RHCOSのインストーラーイメージを起動し、インストールメニューでIgnitionやカーネルイメージのURLを指定するPXEブートで、Ignitionやカーネルイメージの場所が指定されたブート構成ファイルを使用するどちらにしても、Ignitionやカーネルイメージなどの資源をホストする環境を用意する必要があります。MatchBoxは、RHCOSをネットワークブートする際に必要なIgnitionやカーネルイメージ、iPXEスクリプトなどをホストしてくれるWebアプリケーションです。github.comMACアドレスなどのマシン属性を引数にして様々なIgnitionやスクリプトを返してくれるので、例えばKVMでMACアドレスを指定して起動すれば、ユーザー入力なしでRHCOSの起動が完了します。この記事では、MatchBoxを使って、KVM上でRHCOSを自動インストールして起動する手順を紹介します。ちなみに、マッチ箱(MatchBox)でRHCOSを点火(Ignition)して起動する、的なアナロジーみたいですね。センスに溢れすぎてて震える。今回紹介するマシン構成は以下の通りです。tftpサーバーを立てて、さらにMatchBoxも同居している構成ですね。KVMの各VMはブリッジネットワークで起動しています。MatchBox環境のセットアップ大体はGitHub上の手順に従えばセットアップできます。https://github.com/poseidon/matchbox/blob/v0.8.0/Documentation/deployment.mdMatchBoxのインストール、起動まず、PXEインフラVMにMatchBoxをインストールして起動します。ipxe?uuid=${uuid}&mac=${mac:hexhyp}&domain=${domain}&hostname=${hostname}&serial=${serial}MatchBoxにRHCOS起動用のリソースを配置する次に、MatchBoxでホストする、RHCOSの起動に必要なリソースをダウンロードしてMatchBoxから取得できるようにします。http://localhost:8080/assets/rhcos-4.1.0-x86_64-metal-bios.raw.gzMatchBoxにRHCOS起動用のプロファイルを作成するMatchBoxは、URLの引数にMACアドレスなどを渡すことで、RHCOS起動に必要な様々な情報を返してくれるWebサーバーです。そのために、まず起動構成やIgnitionの情報などを記載したプロファイルを作成します。}}EOFそして、上記のプロファイルで指定したIgnitionファイルを、ignition_idと同名のファイル名で作成します。}}EOF最後に、MACアドレスとプロファイルを紐付けるgroup設定を作成します。MACアドレスは、KVMでVMを起動する時に任意のものを指定できるので、ここでは02:1a:4a:16:01:9cを使用することにします。}}EOFさて、ここまでの設定ができていれば、以下のようにURLを叩くことで必要なIginitionを取得できることを確認できるかと思います。...PXE環境とブートの流れを確認ここでは、PXE環境をdnsmasqで構築しています。dnsmasqで以下のように設定し、tftpサーバーを有効にしています。Proxyを使って構成します。基本的に、以下のGitHubドキュメントに記載されているとおりで問題ないかなと思います。verboselog-querieslog-dhcpTFTPからiPXEをロードできるように、undionly.kpxeをダウンロードしてTFTPのルートに配置します。/var/lib/tftpboot/上記により、iPXEで以下のブートスクリプトが起動するはずです。念のため、ブートスクリプトを確認してみます。/assets/rhcos-4.1.0-x86_64-installer-initramfs.imgbootRHCOSの起動これで、ブートの環境ができたので、後はKVMでVMを立ち上げればRHCOSが起動します。今回は、RHCOSを単独で起動しましたが、RHCOSは、本来、OpenShift専用のOSですので、実際はOpenShift構成時に起動することになります。以下の記事で田中さんが詳細について記載されているので、ご確認ください。rheb.hatenablog.comMatchBoxを使う場合は、openshift-installコマンドで生成されるIgnitionファイルを、MatchBoxのデータディレクトリ/var/lib/matchboxにコピーして、そのIgnitionファイルを参照するようプロファイルを作成すれば、簡単にOpenShift用のノードを起動することができるわけですね。HatでOpenShiftのサポートをしているid:nekopです。各記事は著者の見解によるものでありその所属組織を代表する公式なものではありません。その内容については非公式見解を含みます。スターをつけました引用をストックしましたストック一覧を見る閉じる引用するにはまずログインしてくださいログイン閉じる引用をストックできませんでした。再度お試しください閉じる限定公開記事のため引用できません。