自動インストールプロファイル

自動インストールプロファイルによって、オペレーティングシステムをインストールする方法が決定されます。 たとえば、インストーラに渡す追加のカーネルパラメータを指定できます。

プロファイルの最も重要な部分は、「自動インストールファイル」です。 インストールを手動で実行する場合、パーティション設定、ネットワーク情報、ユーザの詳細などの情報をインストーラに提供する必要があります。 自動インストールファイルは、スクリプト形式でこの情報を提供する方法です。 このタイプのファイルは、「回答ファイル」と呼ばれることもあります。

SUSE Manager内では、インストールするクライアントのオペレーティングシステムに応じて、2つの異なる種類のプロファイルを使用できます。

  • SUSE Linux EnterpriseクライアントまたはopenSUSEクライアントの場合、AutoYaSTを使用します。

  • Red Hat Enterprise Linuxクライアントの場合、Kickstartを使用します。

異なるオペレーティングシステムでクライアントをインストールする場合、AutoYaSTプロファイルとKickstartプロファイルの両方を使用できます。

プロファイルに含まれる自動インストールファイルには、変数とコードスニペットを格納できます。 変数とコードスニペットについては、テンプレートの構文を参照してください。

1. プロファイルを宣言する

自動インストールファイルとディストリビューションの準備ができたら、プロファイルを作成して、SUSE Managerサーバで自動インストールを管理できます。プロファイルにより、選択したこのディストリビューションのインストール方法が決定されます。プロファイルを作成する1つの方法はAutoYaSTファイルまたはKickstartファイルをアップロードする方法です。または、Kickstartのみの場合、Web UIウィザードを使用できます。

プロシージャ: アップロードによる自動インストールプロファイルの作成
  1. SUSE ManagerのWeb UIで、システム  自動インストール  プロファイルに移動します。

  2. キックスタート/AutoYaSTファイルをアップロードをクリックします。

  3. ラベル]フィールドにプロファイルの名前を入力します。 スペースは使用しません。

  4. 自動インストールツリー]フィールドで、このプロファイルに使用する自動インストールのディストリビューションを選択します。

  5. 仮想化タイプ]フィールドで、このプロファイルに使用する仮想化の種類を選択します。または、このプロファイルを使用して新しい仮想マシンを作成しない場合には[なし]を選択します。

  6. 自動インストールファイルの内容を[ファイルの内容]フィールドにコピーするか、または[アップロードするファイル]フィールドを使用してファイルを直接アップロードします。

    ここに記載する詳細については、AutoYaSTプロファイルまたはKickstartプロファイルを参照してください。

  7. 作成をクリックしてプロファイルを作成します。

プロシージャ: ウィザードでKickstartプロファイルを作成する
  1. SUSE ManagerのWeb UIで、システム  自動インストール  プロファイルに移動します。

  2. キックスタートプロファイルを作成をクリックします。

  3. ラベル]フィールドにプロファイルの名前を入力します。 スペースは使用しません。

  4. ベースチャンネル]フィールドで、このプロファイルに使用するベースチャンネルを選択します。このフィールドは利用できるディストリビューションから入力されます。 必要なベースチャンネルが利用できない場合、ディストリビューションを正しく作成したことを確認してください。

  5. 仮想化タイプ]フィールドで、このプロファイルに使用する仮想化の種類を選択します。または、仮想化しない場合には[なし]を選択します。

  6. 次へをクリックします。

  7. 配信ファイルの場所]で、SUSE Managerサーバにインストールするインストールメディアへのパスを入力します。

  8. 次へをクリックします。

  9. クライアントのrootユーザのパスワードを入力します。

  10. 完了をクリックします。

  11. 新しいプロファイルの詳細を確認し、必要に応じてカスタマイズします。

自動インストールプロファイルを作成している場合、[このベースチャンネルに最新のツリーを常に使用します]にチェックを付けることができます。 この設定では、指定ベースチャンネルに関連付けられた最新ディストリビューションをSUSE Managerで自動選択できます。 新しいディストリビューションを後で追加する場合、SUSE Managerは、最後に作成または変更されたディストリビューションを使用します。

仮想化の種類を変更すると、通常、プロファイルのブートローダおよびパーティションオプションを変更する必要があります。 この操作を実行すると、カスタマイズが上書きされます。 新しい設定または変更した設定を保存前に確認します。そのためには、[パーティション設定]タブに移動します。

ディストリビューションとプロファイルのカーネルオプションは統合されます。

自動インストールプロファイルの詳細および設定を変更できます。そのためには、システム  自動インストール  プロファイルに移動し、編集するプロファイルの名前をクリックします。 または、システム  システム一覧に移動し、プロビジョニングするクライアントを選択し、プロビジョニング  自動インストールサブタブに移動します。

2. AutoYaSTプロファイル

AutoYaSTプロファイルは、プロファイルを識別するラベル、自動インストールのディストリビューションをポイントする自動インストールツリー、さまざまなオプション、最も重要なAutoYaSTインストールファイルで構成されます。

AutoYaSTインストールファイルは、AutoYaSTインストーラに指示を与えるXMLファイルです。AutoYaSTでは、「制御ファイル」と呼ばれます。 AutoYaSTインストールファイルの構文の詳細については、https://doc.opensuse.org/projects/autoyast/#cha-configuration-installation-optionsを参照してください。

SUSEには、独自のカスタムファイルの雛形として使用できるAutoYaSTインストールファイルのテンプレートが用意されています。 このテンプレートは、https://github.com/SUSE/manager-build-profilesAutoYastディレクトリにあります。 各プロファイルを使用するにはその前に、一部の変数を設定する必要があります。 スクリプトに含まれているREADMEファイルを確認して、必要な変数を判別してください。 AutoYaSTスクリプトで変数を使用する方法の詳細については、変数を参照してください。

SUSE ManagerでインストールするためのAutoYaSTインストールファイルで、最も重要なセクションを次に示します。

  • <add-on>を使用すると、子チャンネルをインストールに追加できます。例については、https://doc.opensuse.org/projects/autoyast/#Software-Selections-additionalを参照してください。

  • <general>$SNIPPET('spacewalk/sles_no_signature_checks')</general>は、署名のチェックを無効にします。

  • <software>によって、Unified Installerに製品を指定できます。

  • <init-scripts config:type="list">$SNIPPET('spacewalk/minion_script ')</init-scripts>は、クライアントをSaltクライアントとしてSUSE Managerに登録できるようにします。

AutoYaSTの詳細については、https://doc.opensuse.org/projects/autoyast/を参照してください。

AutoYaSTに代わるSaltベースの最近のプロファイルには、Yomiがあります。Yomiについては、Yomiを使用してインストールするを参照してください。

3. キックスタートプロファイル

Kickstartプロファイルには、多数の設定オプションがあります。 プロファイルを作成するには、プロファイルをアップロードするか、専用のウィザードを使用します。

Kickstartプロファイルでは、ファイル保持一覧を使用できます。 Kickstartで再インストールするクライアントにあるカスタム設定ファイルが多数ある場合、リストにしてこれらのファイルを保存し、そのリストをKickstartプロファイルに関連付けることができます。

プロシージャ: ファイル保持一覧の作成
  1. SUSE ManagerのWeb UIで、システム  自動インストール  ファイル保持に移動し、ファイル保持一覧の作成をクリックします。

  2. 適切なラベルを入力し、保存するすべてのファイルおよびディレクトリへの絶対パスをリストします。

  3. 一覧の作成をクリックします。

  4. Kickstartプロファイルにファイル保持一覧を含めます。

  5. システム  自動インストール  プロファイルに移動して編集するプロファイルを選択し、システムの詳細  ファイル保持サブタブに移動して、含めるファイル保持一覧を選択します。

ファイル保持一覧の合計サイズは1 MBに制限されています。 /dev/hda1/dev/sda1などの特殊なデバイスは保持できません。 ファイル名とディレクトリ名のみ使用できます。正規表現のワイルドカードは使用できません。

Kickstartの詳細については、Red Hatのドキュメントを参照してください。

4. テンプレートの構文

インストールファイルの一部は、インストール中に置き換えられます。 変数は単一の値に置き換えられ、コードスニペットはテキストのセクション全体に置き換えられます。 エスケープされた記号やセクションは置き換えられません。

CobblerはCheetahと呼ばれるテンプレートエンジンを使用して、このような置き換えを実行できます。このメカニズムにより、システムごとにプロファイルを手動で作成する必要なく、多数のシステムを再インストールできます。

自動インストールの変数やコードスニペットは、SUSE Manager Web UI内で作成できます。 プロファイル内の[自動インストールファイル]タブでは、置き換えの結果を確認できます。

  • 変数については、変数を参照してください。

  • コードスニペットについては、コードスニペットを参照してください。

  • エスケープ記号またはテキストブロックについては、エスケープを参照してください。

4.1. 変数

自動インストールの変数は、KickstartプロファイルおよびAutoYaSTプロファイルに値を代入するために使用できます。 変数を定義するには、プロファイルから[変数]サブタブに移動し、テキストボックスでname=valueペアを作成します。

たとえば、クライアントのIPアドレスを格納する変数と、ゲートウェイのアドレスを格納する変数を作成できます。 次に、作成した変数は、同じプロファイルからインストールされるすべてのクライアントに対して定義できます。 このためには、[変数]テキストボックスに次の行を追加します。

ipaddr=192.168.0.28
gateway=192.168.0.1

変数を使用するには、プロファイルで値の前に$記号を付けて値を代入します。 たとえば、Kickstartファイルの[ネットワーク]部分は次のようになることがあります。

network --bootproto=static --device=eth0 --onboot=on --ip=$ipaddr \
  --gateway=$gateway

$ipaddr192.168.0.28に解決され、$gateway192.168.0.1に解決されます。

インストールファイルでは、変数は階層的に使用します。 システム変数はプロファイル変数より優先され、プロファイル変数はディストリビューション変数より優先されます。

4.2. コードスニペット

SUSE Managerには、多数の定義済みコードスニペットが付属しています。システム  自動インストール  自動インストールスニペットに移動し、既存のスニペットの一覧を表示します。

自動インストールファイルの$SNIPPET()マクロに挿入してスニペットを使用します。 たとえば、Kickstartでは次のようになります。

$SNIPPET('spacewalk/rhel_register_script')

または、AutoYaSTでは次のようになります。

<init-scripts config:type="list">
  $SNIPPET('spacewalk/sles_register_script')
</init-scripts>

このマクロはCobblerによって解析され、スニペットの内容に置き換えられます。独自のコードスニペットを保存して、後で自動インストールファイルで使用することもできます。スニペットの作成をクリックして、新しいコードスニペットを作成します。

この例では、一般的なハードドライブのパーティション設定のKickstartスニペットが設定されます。

clearpart --all
part /boot --fstype ext3 --size=150 --asprimary
part / --fstype ext3 --size=40000 --asprimary
part swap --recommended

part pv.00 --size=1 --grow

volgroup vg00 pv.00
logvol /var --name=var vgname=vg00 --fstype ext3 --size=5000

たとえば、次のようにスニペットを使用します。

$SNIPPET('my_partition')

4.3. エスケープ

自動インストールファイルには、$(example)のようなシェルスクリプト変数が含まれています。コンテンツはバックスラッシュ(円記号)でエスケープする必要があります\$(example)$記号をエスケープすると、テンプレートエンジンは記号を内部変数として評価しなくなります。

コードフラグメントやスクリプトなどのテキストブロックは、\#rawディレクティブおよび\#end rawディレクティブで囲むことによってエスケープできます。 次に例を示します。

#raw
#!/bin/bash
for i in {0..2}; do
 echo "$i - Hello World!"
done
#end raw

#記号の後にスペースがある行はコメントとして扱われるため、評価されません。 次に例を示します。

# start some section (this is a comment)
echo "Hello, world"
# end some section (this is a comment)