20 カスタマイズした事前インストールの配布 #
カスタマイズしたSUSE Linux Enterprise Serverの事前インストールを多数の同じコンピュータにロールアウトすると、各コンピュータに個別にインストールする手間を省けます。また、エンドユーザには標準化されたインストールを提供できます。
YaST firstbootを使用して、カスタマイズした事前インストールイメージを作成し、エンドユーザが介入する最後のパーソナライズ手順のワークフローを決定します(完全に自動化したインストールができるAutoYaSTとは対照的)。
カスタムインストールを作成し、それを展開して各自の要件に合わせた環境設定を行わせるには、次のような作業を行います。
クライアントコンピュータに複製する必要のあるディスクを持つマスタコンピュータを準備します。詳細については、20.1項 「マスタマシンの準備」を参照してください。
ワークフローをカスタマイズします。詳細については、20.2項 「firstbootインストールのカスタマイズ」を参照してください。
マスタコンピュータのディスクを複製し、そのイメージをクライアントのディスクに展開します。詳細については、20.3項 「マスタインストールの複製」を参照してください。
エンドユーザに、各自の要件に合わせてSUSE Linux Enterprise Serverのインスタンスをパーソナライズしてもらいます。詳細については、20.4項 「インストールの個人設定」を参照してください。
20.1 マスタマシンの準備 #
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項 「マスタインストールの複製」に進みます。
20.2 firstbootインストールのカスタマイズ #
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
のマニュアルをhttps://doc.opensuse.org/projects/YaST/SLES11/tdg/inst_in_general_chap.html#product_controlで参照してください。
20.2.1 YaSTメッセージのカスタマイズ #
デフォルトでは、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」に変更します。
20.2.2 ライセンス動作のカスタマイズ #
ユーザが使用許諾契約に同意しない場合のインストールシステムの動作をカスタマイズできます。このシナリオに対するシステムの動作には、次の3つがあります。
- halt
firstbootインストールを中止し、システムをシャットダウンします。デフォルトの設定です。
- continue
firstbootインストールを続行します。
- abort
firstbootインストールを中止しますが、システムのブートを試行します。
選択し、LICENSE_REFUSAL_ACTION
を適切な値に設定します。
20.2.3 リリースノートのカスタマイズ #
firstbootで展開するSUSE Linux Enterprise Serverのインスタンスを変更したかどうかによって、新しいオペレーティングシステムの重要な情報をエンドユーザに知らせることが必要な場合があります。標準インストールでは、リリースノートを使用して、ユーザに重要な情報を知らせます(リリースノートは、インストールの最終段階の1つで表示されます)。firstbootのインストール完了時に、独自のリリースノートを表示するには、以下の手順に従ってください。
独自のリリースノートファイルを作成します。
/usr/share/doc/release-notes
にあるサンプルファイルのようなRTF形式を使用して、結果をRELEASE-NOTES.en.rtf
(英語)として保存します。オプションのローカライズ版をオリジナル版の次に保存し、ファイル名の
en
の部分を該当するISO 639言語コードに置き換えます。たとえば、ドイツ語版の場合はde
になります。/etc/sysconfig/firstboot
からfirstboot環境設定ファイルを開き、FIRSTBOOT_RELEASE_NOTES_PATH
をリリースノートファイルが保存されている実際のディレクトリに設定します。
20.2.4 ワークフローのカスタマイズ #
/etc/YaST2/firstboot.xml
に含まれるサンプルは、標準的なワークフローを定義したもので、次のような有効化されているコンポーネントが含まれています。
言語の選択
ようこそ
使用許諾契約
日付と時刻
ユーザ
rootのパスワード
セットアップの完了
このワークフローは、あくまでテンプレートです。firstboot設定ファイルである/etc/YaST2/firstboot.xml
を手動で編集することで、適切な内容に調整できます。このXMLファイルは、YaSTがインストールワークフローを制御するために使用する標準のcontrol.xml
ファイルのサブセットになります。ワークフローセクションの設定方法の詳細については、例20.2「Workflow (ワークフロー)セクションの設定」を参照してください。
提案の概要は、例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ワークフローの一部となるすべての提案用のコンテナです。 | |
個人提案用のコンテナです。 | |
提案の内部名です。 | |
この提案のモードです。ここは変更しないでください。インストールを行う場合、 | |
この提案を行う、インストールプロセスのステージです。ここは変更しないでください。インストールを行う場合、 | |
提案に表示するラベルです。 | |
提案画面の一部となるすべてのモジュール用コンテナです。 | |
提案画面の一部となる、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> …
workflows
セクションの全体的な構造は、proposals
セクションと似ています。コンテナには、ワークフロー要素が保持されます。すべてのワークフロー要素にはステージ、ラベル、およびモード情報が含まれます(例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環境設定ファイルを開きます。提案画面を追加、削除したり、既存の画面の順序を変更します。
提案全体を削除するには、
proposals
セクションからproposal
要素とそのサブ要素をすべて削除して、ワークフローから対応する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.rb
を/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
要素に、モジュールのファイル名を入力します。このときに、フルパスと拡張子.rb
は省略してください。
設定内容を反映し、環境設定ファイルを閉じます。
ターゲットハードウェアが複数のネットワークインタフェースを持つ可能性がある場合は、アプリケーションのイメージにnetwork-autoconfig
パッケージを追加します。network-autoconfig
を使用した場合、いずれかのEthernetインタフェースがDHCP経由で正常に設定されるまで、すべての利用可能なEthernetインタフェースの設定を繰り返します。
20.2.5 追加スクリプトの設定 #
firstbootワークフローの完了後に、firstbootが追加スクリプトを実行するように設定できます。firstbootシーケンスに他のスクリプトを追加するには、以下の手順に従ってください。
/etc/sysconfig/firstboot
環境設定ファイルを開き、SCRIPT_DIR
に指定されたパスが正しいことを確認します。デフォルトの設定は/usr/share/firstboot/scripts
です。シェルスクリプトを作成し、指定したディレクトリに保存します。次に、そのファイルに適切なファイルパーミッションを設定します。
20.2.6 インストールワークフローの翻訳の提供 #
エンドユーザによっては、カスタマイズしたワークフローの翻訳を提供することが望ましい場合があります。それらの翻訳が必要になるのは/etc/YaST2/firstboot.xml
ファイルの変更によってワークフローをカスタマイズした場合です(20.2.4項 「ワークフローのカスタマイズ」参照)。
/etc/YaST2/firstboot.xml
を変更し、文字列の変更を導入した場合は、新しい翻訳テンプレートファイル(.pot
ファイル)を生成し、gettext
ツールチェーンを使用して翻訳し、最後に翻訳したファイルをYaSTロケールディレクトリ(/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開発の詳細については、https://en.opensuse.org/openSUSE:YaST_developmentを参照してください。YaST firstbootの詳細については、https://doc.opensuse.org/projects/YaST/SLES11/tdg/bk09ch01s02.htmlを参照してください。
20.3 マスタインストールの複製 #
利用できる任意のイメージング機能を使って、マスタコンピュータのディスクを複製し、そのイメージをターゲットコンピュータに展開/配布します。イメージングの詳細については、https://doc.suse.com/kiwi/を参照してください。
20.4 インストールの個人設定 #
複製されたディスクイメージがブートされると、firstbootが開始され、20.2.4項 「ワークフローのカスタマイズ」で設計したようにインストールが開始されます。firstbootワークフロー設定に含まれているコンポーネントだけが開始されます。他のインストールステップは、すべてスキップされます。エンドユーザは、言語、キーボード、ネットワーク、およびパスワードを各自の要件に応じて設定し、ワークステーションの個人設定を行います。作業が完了すると、firstbootでインストールされたシステムは他のSUSE Linux Enterprise Serverインスタンスと同様に動作します。