5.2. Ignition 設定ファイルの表示
ブートストラップマシンをデプロイするのに使用される Ignition 設定ファイルを表示するには、以下のコマンドを実行します。
$ openshift-install create ignition-configs --dir $HOME/testconfig
いくつかの質問に回答すると、bootstrap.ign
、master.ign
、worker.ign
ファイルが入力したディレクトリーに表示されます。
bootstrap.ign
ファイルの内容を確認するには、そのファイルを jq
フィルターでそのファイルをパイプします。以下は、そのファイルの抜粋です。
$ cat $HOME/testconfig/bootstrap.ign | jq \\{ "ignition": \\{ "config": \\{}, "storage": \\{ "files": [ \\{ "filesystem": "root", "path": "/etc/motd", "user": \\{ "name": "root" }, "append": true, "contents": \\{ "source": "data:text/plain;charset=utf-8;base64,VGhpcyBpcyB0aGUgYm9vdHN0cmFwIG5vZGU7IGl0IHdpbGwgYmUgZGVzdHJveWVkIHdoZW4gdGhlIG1hc3RlciBpcyBmdWxseSB1cC4KClRoZSBwcmltYXJ5IHNlcnZpY2UgaXMgImJvb3RrdWJlLnNlcnZpY2UiLiBUbyB3YXRjaCBpdHMgc3RhdHVzLCBydW4gZS5nLgoKICBqb3VybmFsY3RsIC1iIC1mIC11IGJvb3RrdWJlLnNlcnZpY2UK",
bootstrap.ign
ファイルに一覧表示されたファイルの内容をデコードするには、そのファイルの内容を表す base64 でエンコードされたデータ文字列を base64 -d
コマンドに渡します。以下に示すのは、上記の出力からブートストラップマシンに追加された /etc/motd
ファイルの内容の使用例です。
$ echo VGhpcyBpcyB0aGUgYm9vdHN0cmFwIG5vZGU7IGl0IHdpbGwgYmUgZGVzdHJveWVkIHdoZW4gdGhlIG1hc3RlciBpcyBmdWxseSB1cC4KClRoZSBwcmltYXJ5IHNlcnZpY2UgaXMgImJvb3RrdWJlLnNlcnZpY2UiLiBUbyB3YXRjaCBpdHMgc3RhdHVzLCBydW4gZS5nLgoKICBqb3VybmFsY3RsIC1iIC1mIC11IGJvb3RrdWJlLnNlcnZpY2UK | base64 --decode
出力例
This is the bootstrap machine; it will be destroyed when the master is fully up. The primary service is "bootkube.service". To watch its status, run, e.g.: journalctl -b -f -u bootkube.service
これらのコマンドを master.ign
と worker.ign
ファイル上で繰り返し実行し、マシンタイプごとの Ignition 設定ファイルのソースを参照します。 ブートストラップマシンから Ignition 設定を取得する方法を特定する、worker.ign
についての以下のような行が表示されるはずです。
"source": "https://api.myign.develcluster.example.com:22623/config/worker",
bootstrap.ign
ファイルについて、以下のいくつかの点に留意してください
- フォーマット: ファイルのフォーマットは Ignition config spec に定義されています。同じフォーマットのファイルが後に MCO によって使用され、マシンの設定に変更がマージされます。
-
コンテンツ: ブートストラップマシンは他のマシンの Ignition 設定を提供するため、マスターマシンとワーカーマシンの両方の Ignition 設定情報は、ブートストラップの設定情報と共に
bootstrap.ign
に保管されます。 - サイズ: 各種タイプのリソースへのパスを含むファイルのサイズは、1,300 行を超える長さです。
- マシンにコピーされる各ファイルの内容は実際にデータ URL にエンコードされます。この場合、内容は少し読み取りにくくなる傾向があります (前述の jq や base64 コマンドを使用すると内容がより読みやすくなります)。
- 設定: Ignition 設定ファイルのそれぞれのセクションは、一般的には既存ファイルを修正するコマンドではなく、マシンのファイルシステムに単にドロップされるファイルを含むことが想定されています。たとえば、そのサービスを設定する NFS 上のセクションを設定するのではなく、単に NFS 設定ファイルを追加します。 これはその後のシステムの起動時に init プロセスによって開始されます。
- ユーザー: core という名前のユーザーが作成され、SSH キーがそのユーザーに割り当てられます。これにより、そのユーザー名と認証情報を使用してクラスターにログインすることができます。
-
ストレージ: ストレージセクションは、各マシンに追加されるファイルを特定します。これらのファイルには、(実際のクラスターがコンテナーイメージレジストリーからプルする必要のある認証情報を提供する)
/root/.docker/config.json
と、クラスターを設定するのに使用される/opt/openshift/manifests
内のマニフェストファイルのセットがあります。 - systemd: systemd セクションは、systemd ユニットファイルを作成するコンテンツを保持します。これらのファイルは、起動時にサービスを開始するために、また実行システムでサービスを管理するために使用されます。
- プリミティブ: Ignition は他のツールがビルドに使用できる低レベルのプリミティブも公開します。