C 補足メディア #
補足メディアを使用して、パートナーやお客様は独自のタスクまたはワークフローをインストールウィザードに追加できます。
これは、AutoYaST XMLファイルの一部となるXMLファイルを追加することで実行されます。ワークフローに含めるため、このファイルをproduct.xml
と呼ぶ必要があります。
これは、さまざまなタイプの追加に使用できます。たとえば、独自のRPMの追加、独自のスクリプトの実行、クラスタファイルシステムの設定、独自のダイアログおよびスクリプトの作成です。
C.1 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 Guide, Chapter 「Configuration and Installation Options」, Section 「Custom User Scripts」 (https://documentation.suse.com/sles-15)を参照してください。
C.2 独自のAutoYaST Askダイアログ #
AutoYaSTの「Ask」機能の詳細については、 AutoYaST Guide, Chapter 「Configuration and Installation Options」, Section 「Ask the User for Values During Installation」 (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>
C.3 追加のパッケージをインストールする #
product.xml
ファイル内にRPMパッケージをインストールすることもできます。これを行うため、第2ステージのインストールに<post-packages>
要素を使用できます。
詳細については、『 AutoYaST Guide, Chapter 「Configuration and Installation Options」, Section 「Installing Packages in Stage 2」 』(https://documentation.suse.com/sles-15)を参照してください。次に一例を示します。
... <software> <post-packages config:type="list"> <package>yast2-cim</package> </post-packages> </software> ...
C.4 補足メディアのディレクトリ例 #
補足メディアディレクトリの最小例には、product.xml
と呼ばれるファイルのみが含まれます。