インストールシード

IncusOSはインストールのプロセスを自動化するために「インストールシード」に依存しています。

このシートは通常イメージの取得の際に自動で生成されます。

より高度な用途には、下記の情報を使ってあなた自身のシードデータを提供できます。

形式と配置

インストールシードは1つ以上のJSONまたはYAMLの設定ファイルからなる単なるtarアーカイブです。 tarファイルはインストールイメージの第2パーティションの先頭に直接かかれます。 実行時に、IncusOSは第2パーティションからインストールシードの読み取りを試み、そこにあるデータをインストールプロセス中に使います。

あるいは、ユーザーが提供するシードのパーティションをインストールイメージとは無関係に提供できます。 パーティションのラベルはSEED_DATAである必要がありUSBドライブはFATまたはISOイメージとしてフォーマットされている必要があります。 tarアーカイブを読むのとは違い、インストールのロジックはマウントされたファイルシステムからJSONあるいはYAMLの設定ファイルを直接読もうと試みます。 インストールの完了時に、マシンからシードドライブを切断するかどうかはユーザー次第です。 IncusOSは起動時にシードデータがまだ存在する場合は混乱することでしょう。 (インストールプロセスは最終インストールからデードデータのtarアーカイブを消去しますが、ユーザー提供のシードにはこれはできません。)

シードの中身

現時点では以下の設定ファイルが認識されます:

install.{json,yml,yaml}

空であってもこのファイルが存在すれば、IncusOSはインストールプロセスを発動します。

この構造体はapi/seed/install.goで定義されています:

  • force_install: trueの場合、パーティションが既に存在していてもターゲットデバイスにインストオールします。警告:これはデータ消失を引き起こすかもしれません!

  • force_reboot: trueの場合、インストール後にインストールメディアの除去を待たずに再起動します。

  • security: 劣化したセキュリティー状態でIncusOSを実行できるようにするオプショナルな構造体。警告:これは何をしているかとその結果生じるセキュリティーの問題を正確に把握しているのでなければ、行うべきではありません。

  • target: オプショナルでインストールのターゲットデバイスを決定するのに使うセレクター。指定されない場合、IncusOSはインストール時に未使用のドライブが1つあることを期待します。

applications.{json,yml,yaml}

このファイルはIncusOSが稼働した後にどのアプリケーションをインストールするかを指定します。

この構造体はapi/seed/applications.goで定義されています:

  • applications: インストールするアプリケーションの配列を保持します。現時点でサポートされているアプリケーションはincusmigration-manageroperations-centerのみです。

incus.{json,yml,yaml}

このファイルはIncusのプリシード情報を指定します。

この構造体はapi/seed/incus.goで定義され、IncusのInitPreseed APIを参照しています。

  • apply_defaults: trueの場合、Incusのインストール時にだどうなデフォルト値のセットを自動で適用します。

  • preseed: インストール時にIncusに渡される追加のプリシード情報。

network.{json,yml,yaml}

このファイルはIncusOSが起動する際に適用すべきネットワーク設定を指定します。 未指定の場合、IncusOSは各ネットワークインターフェースに自動的なDHCPSLAACを試みます。

使用される構造体はネットワークAPIの構造体です。

migration-manager.{json,yml,yaml}

このファイルはマイグレーションマネージャーのプリシード情報を指定します。

この構造体はapi/seed/migration_manager.goで定義され、マイグレーションマネージャーのsystem APIを参照しています。

operations-center.{json,yml,yaml}

このファイルはオペレーションセンターのプリシード情報を指定します。

この構造体はapi/seed/operations_center.goで定義され、オペレーションセンターのsystem APIを参照しています。

provider.{json,yml,yaml}

このファイルはプロバイダーを設定するためのプリシード情報を指定します。これはIncusOSの更新とアプリケーションを取得するのに使われます。

使用される構造体はprovider APIの構造体です。

update.{json,yml,yaml}

このファイルはシステムの更新設定を提供します。

使用される構造体はupdate APIの構造体です。