補足メディアを使用して、パートナーやお客様は独自のタスクまたはワークフローをインストールウィザードに追加できます。
これは、AutoYaST XMLファイルの一部となるXMLファイルを追加することで実行されます。ワークフローに含めるため、このファイルをproduct.xmlと呼ぶ必要があります。
これは、独自のRPMの追加、独自のスクリプトの実行、クラスタファイルシステムの設定、独自のダイアログやスクリプトの作成など、さまざまなタイプの追加に使用できます。
product.xml #
product.xmlファイルは、通常のAutoYaST XMLファイルのように見えますが、いくつかの制限があります。
この制限が存在するのは、以前にインストールの第1ステージが実行されているため、第2ステージに関連するXMLの部分のみが実行されるためです。
2つのXMLファイル(autoyast.xmlとproduct.xml)は、メディアが読み込まれた後でマージされ、追加のワークフローのため、ただちに「新しい」AutoYaST XMLファイルが生成されます。
次の領域またはセクションがマージされます。
<general> <ask-list> 1 ... <software> 2 <post-packages> ... <scripts> <chroot-scripts> 3 <post-scripts> 4 <init-scripts> 5 ...
C.2項 「独自のAutoYaST Askダイアログ」を参照してください。 | |
C.3項 「追加のパッケージをインストールする」を参照してください。 | |
パッケージのインストール後、最初のブート前 | |
インストール済みシステムの最初のブート中、サービスは実行されていません。 | |
インストール済みシステムの最初のブート中、すべてのサービスが稼働しています。 |
他のすべてのセクションが置き換えられます。
カスタマイズオプションに関する詳細については、『AutoYaSTガイド』、「設定およびインストールのオプション」の章のセクション「独自のユーザスクリプト」 (https://documentation.suse.com/sles-15)を参照してください。
AutoYaSTの「Ask」機能の詳細については、『AutoYaSTガイド』、「設定およびインストールのオプション」の章のセクション、「インストール時のユーザへの値の確認」 (https://documentation.suse.com/sles-15)を参照してください。
補足メディアの場合、ダイアログをcontステージ(<stage>cont</stage>)内でのみ使用できます。つまり、ダイアログは最初の再起動後に実行されます。
ダイアログを含むファイルは、ベースAutoYaST XMLファイルとマージされます。
ベストプラクティスとして、ダイアログにダイアログ番号と要素番号がある必要があり、10の手順があることが最適です。これは、後で追加を含めるのに役立ち、決定に応じてダイアログまたは要素をジャンプするためのターゲットとして使用することができます。また、これはベースダイアログでも使用され、適切なダイアログ番号と要素番号を指定すると、ベースダイアログの間にダイアログを配置できます。
ファイルに質問に対する回答を保存して、後でスクリプトのいずれかで使用することができます。インストールウィザードはこのようなファイルを/tmpディレクトリからメディアデータもコピーされるディレクトリにコピーするため、これにはプレフィックス/tmp/ayを使用する「必要がある」ことに注意してください。これが実行されるのは、次の補足メディアが同じダイアログまたは同じ回答ファイルを持つ可能性があり、ここに保存される値が上書きされるためです。
いくつかのオプションを使用した例を示します。
<?xml version="1.0"?>
<!DOCTYPE profile>
<profile xmlns="http://www.suse.com/1.0/yast2ns"
xmlns:config="http://www.suse.com/1.0/configns">
<general>
<ask-list config:type="list">
<ask>
<stage>cont</stage>
<dialog config:type="integer">20</dialog>
<element config:type="integer">10</element>
<question>What is your name?</question>
<default>Enter your name here</default>
<help>Please enter your full name within the field</help>
<file>/tmp/ay_q_my_name</file>
<script>
<filename>my_name.sh</filename>
<rerun_on_error config:type="boolean">true</rerun_on_error>
<environment config:type="boolean">true</environment>
<source><![CDATA[
function check_name() {
local name=$1
LC_ALL=POSIX
[ -z "$name" ] && echo "You need to provide a name." && return 1
return 0
}
check_name "$VAL"
]]>
</source>
<debug config:type="boolean">false</debug>
<feedback config:type="boolean">true</feedback>
</script>
</ask>
</ask-list>
</general>
</profile>
product.xmlファイル内にRPMパッケージをインストールすることもできます。これを行うため、第2ステージのインストールに<post-packages>要素を使用できます。
詳細については、『AutoYaSTガイド』、「設定およびインストールのオプション」の章のセクション、「Installing Packages in Stage 2 (第2ステージでのパッケージのインストール)」 (https://documentation.suse.com/sles-15)を参照してください。次に一例を示します。
... <software> <post-packages config:type="list"> <package>yast2-cim</package> </post-packages> </software> ...
補足メディアディレクトリの最小例には、product.xmlと呼ばれるファイルのみが含まれます。