カスタマイズしたSUSE Linux Enterprise Serverの事前インストールを多数の同じコンピュータにロールアウトすると、各コンピュータに個別にインストールする手間を省けます。また、エンドユーザには標準化されたインストールを提供できます。YaST Firstbootを使用して、カスタマイズした事前インストールのイメージを作成し、エンドユーザが介入する最後のパーソナライズ手順のワークフローを決定します(完全に自動化したインストールができるAutoYaSTとは対照的。詳細については、第21章 自動インストールを参照)。
カスタムインストールを作成し、それを展開して各自の要件に合わせた環境設定を行わせるには、次のような作業を行います。
クライアントコンピュータに複製する必要のあるディスクを持つマスタコンピュータを準備します。詳細については、20.1項 「マスタマシンの準備」を参照してください。
ワークフローをカスタマイズします。詳細については、20.2項 「firstbootインストールのカスタマイズ」を参照してください。
マスタコンピュータのディスクを複製し、そのイメージをクライアントのディスクに展開します。詳細については、20.3項 「マスタインストールの複製」を参照してください。
エンドユーザに、各自の要件に合わせてSUSE Linux Enterprise Serverのインスタンスをパーソナライズしてもらいます。詳細については、20.4項 「インストールの個人設定」を参照してください。
firstbootワークフロー用のマスタマシンを準備するには、以下の手順に従ってください。
インストールメディアをマスタコンピュータに挿入します。
コンピュータを起動します。
標準のインストールと必要なすべての設定作業を行い、そのコンピュータのブートが完了するまで待ちます。yast2-firstboot パッケージもインストールします。
エンドユーザ用のYaST環境設定ワークフローを定義したり、このワークフローに独自のYaSTモジュールを追加したりする場合は、20.2項 「firstbootインストールのカスタマイズ」に進んでください。それ以外の場合は、ステップ 5に進んでください。
rootとしてfirstbootを有効にします。
firstbootの実行をトリガする空のファイル/var/lib/YaST2/reconfig_systemを作成します。firstbootの環境設定が正しく完了すると、このファイルは削除されます。このファイルを作成するには、次のコマンドを使用します。
touch /var/lib/YaST2/reconfig_system
20.3項 「マスタインストールの複製」に進みます。
firstbootインストールのワークフローのカスタマイズには、さまざまなコンポーネントが含まれる場合があります。それらのカスタマイズは省略することもできます。何も変更を行わなかった場合、firstbootはデフォルトの設定を使ってインストールを行います。次のオプションを指定できます。
ユーザへのメッセージのカスタマイズ(20.2.1項 「YaSTメッセージのカスタマイズ」参照)
ライセンスおよびライセンス動作のカスタマイズ(20.2.2項 「ライセンス動作のカスタマイズ」参照)
表示するリリースノートのカスタマイズ(20.2.3項 「リリースノートのカスタマイズ」参照)
インストールに含まれるコンポーネントの順序と数のカスタマイズ(20.2.4項 「ワークフローのカスタマイズ」参照)
追加オプションスクリプトの設定(20.2.5項 「追加スクリプトの設定」参照)
これらのコンポーネントをカスタマイズするには、次の環境設定ファイルを変更します。
/etc/sysconfig/firstboot
firstbootのさまざまな側面(リリースノート、スクリプト、ライセンス動作など)を設定します。
/etc/YaST2/firstboot.xml
コンポーネントを有効/無効にしたり、カスタムコンポーネントを追加して、インストールワークフローの環境設定を行います。
このようなカスタマイズしたインストールワークフローの翻訳を提供します(20.2.6項 「インストールワークフローの翻訳の提供」参照)。
/etc/YaST2/firstboot.xmlは、yast2-firstbootパッケージによってインストールされた制御ファイルのデフォルトのパスです。制御ファイルの別の配置場所を定義する必要がある場合は、/etc/sysconfig/firstbootを編集して、FIRSTBOOT_CONTROL_FILE変数を目的の場所に変更します。
カスタマイズの対象がワークフローコンポーネントだけでない場合は、control.xmlのマニュアルをhttp://doc.opensuse.org/projects/YaST/SLES11/tdg/inst_in_general_chap.html#product_controlで参照してください。
デフォルトでは、SUSE Linux Enterprise Serverのインストールにはさまざまなデフォルトメッセージが含まれています。これらのメッセージは、インストールの進み具合に応じて適宜表示されます。たとえば、歓迎のメッセージ、ライセンスメッセージ、およびインストールの完了を知らせるメッセージなどが含まれます。これらのメッセージを独自のメッセージに変更したり、翻訳したメッセージを入れることができます。独自の歓迎メッセージを入れるには、以下の手順に従ってください。
rootとしてログインします。
環境設定ファイル/etc/sysconfig/firstbootを開いて、次の変更を行います。
FIRSTBOOT_WELCOME_DIRに、歓迎メッセージとローカライズ版を含むファイルを保存するディレクトリパスを設定します。次に例を示します。
FIRSTBOOT_WELCOME_DIR="/usr/share/firstboot/"
歓迎メッセージのファイル名がwelcome.txtおよびwelcome_locale.txt (localeは「cs」や「de」などのISO 639言語コードに一致する)以外の場合、ファイル名のパターンをFIRSTBOOT_WELCOME_PATTERNSで指定してください。たとえば、次のようにします。
FIRSTBOOT_WELCOME_PATTERNS="mywelcome.txt"
このパラメータを設定しない場合、デフォルトのwelcome.txtが使用されます。
歓迎メッセージファイルとそのローカライズ版を作成し、それを環境設定ファイル/etc/sysconfig/firstbootに指定されているディレクトリに保管します。
ライセンスメッセージやインストール完了メッセージも、同じような方法でカスタマイズすることができます。これらの変数は、それぞれFIRSTBOOT_LICENSE_DIR(ライセンス)およびFIRSTBOOT_FINISH_FILE(完了)になります。
インストールの直後にYaSTを起動できる必要がある場合は、SHOW_Y2CC_CHECKBOXを「yes」「」に変更します。
ユーザが使用許諾契約に同意しない場合のインストールシステムの動作をカスタマイズできます。このシナリオに対するシステムの動作には、次の3つがあります。
firstbootインストールを中止し、システムをシャットダウンします。デフォルトの設定です。
firstbootインストールを続行します。
firstbootインストールを中止しますが、システムのブートを試行します。
動作を決めたら、LICENSE_REFUSAL_ACTIONに適切な値を設定します。
firstbootで展開するSUSE Linux Enterprise Serverのインスタンスを変更したかどうかによって、新しいオペレーティングシステムの重要な情報をエンドユーザに知らせることが必要な場合があります。標準インストールでは、リリースノートを使用して、ユーザに重要な情報を知らせます(リリースノートは、インストールの最終段階の1つで表示されます)。firstbootのインストール完了時に、独自のリリースノートを表示するには、以下の手順に従ってください。
独自のリリースノートファイルを作成します。/usr/share/doc/release-notesにあるサンプルファイルのようなRTF形式を使用して、結果をRELEASE-NOTES.en.rtfファイルに保存してください。
オプションのローカライズ版をオリジナル版の次に保存し、ファイル名のenの部分を該当するISO 639言語コードに置き換えます。たとえば、日本語版の場合はjaになります。
/etc/sysconfig/firstbootにあるfirstboot環境設定ファイルを開いて、FIRSTBOOT_RELEASE_NOTES_PATHにリリースノートを保存したディレクトリを指定します。
デフォルトでは、標準のfirstbootワークフローには、次のコンポーネントが含まれています。
言語の選択
ようこそ
使用許諾契約
ホスト名
Network
日付と時刻
Desktop
rootのパスワード
ユーザ認証方法
ユーザ管理
ハードウェア設定
セットアップの完了
このfirstbootインストールワークフローの標準レイアウトは、必須ではありません。特定のコンポーネントを有効/無効にしたり、独自のモジュールをワークフローに統合できます。firstbootワークフローを変更するには、firstboot環境設定ファイル/etc/YaST2/firstboot.xmlを編集します。このXMLファイルは、YaSTがインストールワークフローを制御するために使用する標準のcontrol.xmlファイルのサブセットになります。
提案に関する概要は、例20.1「提案画面の設定」を参照してください。firstbootインストールワークフローの変更の概要が示されています。この例では、firstboot環境設定ファイルの基本的な構文(および主要要素の設定方法)が説明されています。
…
<proposals config:type="list">1
<proposal>2
<name>firstboot_hardware</name>3
<mode>installation</mode>4
<stage>firstboot</stage>5
<label>Hardware Configuration</label>6
<proposal_modules config:type="list">7
<proposal_module>printer</proposal_module>8
</proposal_modules>
</proposal>
<proposal>
…
</proposal>
</proposals>
firstbootワークフローの一部となるすべての提案用のコンテナです。 | |
個人提案用のコンテナです。 | |
提案の内部名です。 | |
この提案のモードです。ここは変更しないでください。firstbootインストールを行う場合、 | |
この提案を行う、インストールプロセスのステージです。ここは変更しないでください。firstbootインストールを行う場合、 | |
提案に表示するラベルです。 | |
提案画面の一部となるすべてのモジュール用コンテナです。 | |
提案画面の一部となる、1つまたは複数のモジュールです。 |
firstboot環境設定ファイルの次のセクションは、ワークフロー定義から成り立っています。ここには、firstbootインストールワークフローの一部とするすべてのモジュールを記載する必要があります。
<workflows config:type="list">
<workflow>
<defaults>
<enable_back>yes</enable_back>
<enable_next>yes</enable_next>
<archs>all</archs>
</defaults>
<stage>firstboot</stage>
<label>Configuration</label>
<mode>installation</mode>
… <!–– list of modules ––>
</modules>
</workflow>
</workflows>
…
workflowセクションの全体的な構造は、proposalセクションと似ています。コンテナには、ワークフロー要素が保持されます。すべてのワークフロー要素にはステージ、ラベル、およびモード情報が含まれます(例20.1「提案画面の設定」に示されている提案と同様)。一番大きな違いは、defaultsセクションです。このセクションには、ワークフローコンポーネントの基本的なデザイン情報が含まれています。
enable_back
すべてのダイアログに、ボタンを入れます。
enable_next
すべてのダイアログに、ボタンを入れます。
archs
このワークフローを使用するハードウェアアーキテクチャを指定します。
<modules config:type="list">1
<module>2
<label>Language</label>3
<enabled config:type="boolean">false</enabled>4
<name>firstboot_language</name>5
</module>
<modules>
ワークフローの全コンポーネントのコンテナです。 | |
モジュール定義です。 | |
モジュールと一緒に表示するラベルです。 | |
ワークフローでこのコンポーネントを有効/無効にするためのスイッチです。 | |
モジュール名です。モジュールは、 |
firstbootインストール時の提案画面数または表示順序を変更するには、以下の手順に従ってください。
/etc/YaST2/firstboot.xmlにあるfirstboot環境設定ファイルを開きます。
提案画面を追加、削除したり、既存の画面の順序を変更します。
提案全体を削除するには、proposalセクションからproposals要素とそのサブ要素を削除して、ワークフローから対応するmodule要素とサブ要素を削除します。
新しく提案を追加するには、新たにproposal要素を作成し、必要なサブ要素を指定します。提案がYaSTモジュールとして/usr/share/YaST2/clientsに存在するようにしてください。
提案の順序を変更するには、ワークフロー内で該当する提案を含むmodule要素を移動します。特定の順序で提案やワークフローコンポーネントを実施しなければならないような、他のインストールステップとの依存関係がある場合もあることに注意してください。
変更内容を反映し、環境設定ファイルを閉じます。
デフォルト設定がニーズに合わない場合は、環境設定ステップのワークフローを随時変更することができます。ワークフロー内の特定のモジュールを有効または無効にします(あるいは、独自のカスタムモジュールを追加します)。
firstbootワークフローのモジュールのステータスを切り替えるには、以下の手順に従ってください。
/etc/YaST2/firstboot.xml環境設定ファイルを開きます。
モジュールを無効にする場合は、enabled要素の値を、trueからfalseに変更します。有効にする場合は、falseからtrueに変更します。
<module>
<label>Time and Date</label>
<enabled config:type="boolean">true</enabled>
<name>firstboot_timezone</name>
</module>
変更内容を反映し、環境設定ファイルを閉じます。
独自のカスタムモジュールをワークフローに追加するには、以下の手順に従ってください。
独自のYaSTモジュールを作成し、ファイル名module_name.ycpで/usr/share/YaST2/clientsに保存します。
/etc/YaST2/firstboot.xml環境設定ファイルを開きます。
新しいモジュールを実行するワークフロー内のポイントを決定します。そのためには、ワークフロー内の他のステップとの依存関係を検討し、必要に応じてそれを解消する必要があります。
modulesコンテナ内に新たなmodule要素を作成し、適切なサブ要素を追加します。
<modules config:type="list">
…
<module>
<label>my_module</label>
<enabled config:type="boolean">true</enabled>
<name>filename_my_module</name>
</module>
</modules>
モジュールに表示するラベルをlabel要素に入力します。
ワークフロー内にモジュールを入れるために、enabledにtrueが設定されていることを確認します。
name要素に、モジュールのファイル名を入力します。このときに、フルパスと拡張子.ycpは省略してください。
設定内容を反映し、環境設定ファイルを閉じます。
ターゲットハードウェアが複数のネットワークインタフェースをもつ可能性がある場合は、 アプリケーションのイメージにnetwork-autoconfigパッケージを追加します。network-autoconfigによって、firstbootの実行時に、1つのEthernetインタフェースがDHCPで正常に設定されるまで、すべての使用可能なEthernetインタフェースがサイクルされます。
firstbootワークフローの完了後に、firstbootが追加スクリプトを実行するように設定できます。firstbootシーケンスに他のスクリプトを追加するには、以下の手順に従ってください。
/etc/sysconfig/firstboot環境設定ファイルを開いて、SCRIPT_DIRに指定されているパスが正しいことを確認します。デフォルトは/usr/share/firstboot/scriptsです。
シェルスクリプトを作成し、指定したディレクトリに保存します。次に、そのファイルに適切なファイルパーミッションを設定します。
エンドユーザによっては、カスタマイズしたワークフローの翻訳を提供することが望ましい場合があります。それらの翻訳が必要になるのは、/etc/YaST2/firstboot.xmlファイルの変更によってワークフローをカスタマイズした場合です(20.2.4項 「ワークフローのカスタマイズ」参照).。これは、20.2.1項 「YaSTメッセージのカスタマイズ」ですでに説明されているカスタマイズされたYaSTメッセージのローカライゼーションとは異なります。
/etc/YaST2/firstboot.xmlを変更し、文字列変更を導入した場合は、新しい翻訳テンプレートファイル(.potファイル)を生成し、gettextツールチェーンで翻訳して、翻訳したファイルをYaST localeディレクトリ(/usr/share/YaST2/locale)にコンパイル済みの.moファイルとしてインストールします。次の手順に従います。
次のtextdomain設定を変更します。
<textdomain>firstboot</textdomain>
たとえば、
<textdomain>firstboot-oem</textdomain>
xgettextを使用して、翻訳可能な文字列を翻訳テンプレートファイル(.potファイル)に抽出します(たとえば、firstboot-oem.potのようになります)。
xgettext -L Glade -o firstboot-oem.pot /etc/YaST2/firstboot.xml
翻訳処理を開始します。次に、翻訳済みファイル(LL_code.poファイル)を、他のプロジェクトの翻訳と同様にパッケージ化し、コンパイル済みのfirstboot-oem.moファイルをインストールします。
追加または変更したYaSTモジュールに翻訳が必要な場合は、そのモジュール内で翻訳を提供します。既存モジュールを変更した場合は、望ましくない副作用を避けるため、そのtextdomainステートメントも必ず変更してください。
YaST開発の詳細については、http://en.opensuse.org/openSUSE:YaST_developmentを参照してください。YaST firstbootの詳細については、http://doc.opensuse.org/projects/YaST/SLES11/tdg/bk09ch01s02.htmlを参照してください。
利用できる任意のイメージング機能を使って、マスタコンピュータのディスクを複製し、そのイメージをターゲットコンピュータに展開/配布します。イメージ処理の詳細については、http://doc.opensuse.org/projects/kiwi/doc/を参照してください。
複製されたディスクイメージがブートされると、firstbootが開始され、20.2.4項 「ワークフローのカスタマイズ」で設計したようにインストールが開始されます。firstbootワークフロー設定に含まれているコンポーネントだけが開始されます。他のインストールステップは、すべてスキップされます。エンドユーザは、言語、キーボード、ネットワーク、およびパスワードを各自の要件に応じて設定し、ワークステーションの個人設定を行います。 作業が完了すると、firstbootでインストールされたシステムは他のSUSE Linux Enterprise Serverインスタンスと同様に動作します。