openSUSE Leap では、どのバージョンであっても、カーネルのコマンドラインに autoyast=<プロファイルの_URI> を指定することで、自動インストールを開始することができます。たとえば autoyast=http://MYSERVER/MYCONFIG.xml のように指定すると、 myserver という Web サーバから AutoYaST の制御ファイルを取得して、自動インストールを開始する意味になります。詳しくは 9.3項 「自動インストール処理の開始」 をお読みください。
プロファイルとは AutoYaST 設定ファイルや制御ファイルとも呼ばれ、このファイルの中にはシステムの設定に関する詳細や、インストールすべきパッケージの一覧などが書かれています。それ以外にも、パーティションの設定やネットワークの設定、ソフトウエアのインストール元などが含まれています。ほとんど全ての設定は、動作中のシステムで YaST を利用することで作成することができます。プロファイルは ASCII XML 形式で書かれています。
最も簡単な方法は、既にインストール済みの openSUSE Leap のシステムを雛形として使用する方法です。既にインストールの完了しているシステムで › › を選択し、メニューから › を選びます。あとはプロファイル内に含めたいシステムコンポーネントを選択します。このほか、コマンドラインから sudo yast clone_system を実行することでも、完全なシステム設定を含むプロファイルを作成することができます。
いずれの方法であっても、ファイルは /root/autoinst.xml 内に保存されます。コマンドラインから作成した場合は、プロファイルを作成したシステムと全く同一の環境になるようにプロファイルが作られます。しかしながら、通常はいくつかの箇所に対して調整を行う必要があるはずです。調整作業はテキストエディタや XML エディタで実施してください。
作成した AutoYaST プロファイルをチェックするための最も効率的な方法は、 jing もしくは xmllint を使用する方法です。
詳しくは 3.3項 「手作業による制御ファイルの作成および編集」 をお読みください。
AutoYaST プロファイル内に何もセクションを定義していない場合、一般的な YaST の提案内容がそのまま適用されますが、少なくともインストール後にログインができなければならないはずですので、 root のパスワードのみ指定した下記のプロファイルが最小となります。
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE profile>
<profile xmlns="http://www.suse.com/1.0/yast2ns" xmlns:config="http://www.suse.com/1.0/configns">
<users config:type="list">
<user>
<encrypted config:type="boolean">false</encrypted>
<user_password>linux</user_password>
<username>root</username>
</user>
</users>
</profile>プロファイル内に下記の sound セクションを設定してください:
<sound> <autoinstall config:type="boolean">true</autoinstall> <configure_detected config:type="boolean">true</configure_detected> </sound>
DVD のルートディレクトリにプロファイルを配置し、 file:///プロファイル名.xml としてアクセスしてください。
たとえば a.xml と base.xml という、 2 つのプロファイルを合成する場合は、下記のようなコマンドを実行します:
> /usr/bin/xsltproc --novalid --param replace "'false'" \
--param dontmerge1 "'package'" --param with "'a.xml'" --output out.xml \
/usr/share/autoinstall/xslt/merge.xslt base.xml上記を実行するには、両方のプロファイルがアルファベット順に並んでいる必要があります (たとえば <software> セクションが <add-on> セクションの後ろに存在していなければなりません) 。 YaST でプロファイルを作成していれば、プロファイルはアルファベット順に並べられます。
なお、 dontmerge1 パラメータは任意で指定するもので、プロファイル内に dont_merge を使用している場合にどのようにすべきなのかを例示しているものです。詳しくは 6.4項 「ルールとクラスの合成」 をお読みください。
zypper は AutoYaST の準備スクリプト (init-script) からのみ呼び出すことができます。これは、インストール後スクリプトの段階では、 YaST がまだ RPM データベースに対する排他ロックを取得したままの状態であるためです。
準備スクリプト以外 (たとえばインストール後スクリプト) でどうしても使用したい場合は、下記のようにして自己責任でロックを外してください:
<post-scripts config:type="list">
<script>
<filename>yast_clone.sh</filename>
<interpreter>shell</interpreter>
<location/>
<feedback config:type="boolean">false</feedback>
<source><![CDATA[#!/bin/sh
mv /var/run/zypp.pid /var/run/zypp.sav
zypper in foo
mv /var/run/zypp.sav /var/run/zypp.pid
]]></source>
</script>
</post-scripts>実際のところ、順序は重要ではありません。プロファイル内におけるセクションの順序は、 AutoYaST の処理手順には何も影響しません。しかしながら、異なるプロファイル同士を 合成 したい場合は、セクションはアルファベット順に並べる必要があります。
linuxrc で File not signed と表示されてしまいインストールが進まない。どのように対応すれば自動化できるか?linuxrc はドライバ更新などのファイルに対して、署名されているかどうかのチェックを行います。未署名のファイルを受け付けるには、 linuxrc のパラメータリスト内に insecure=1 を設定してください (自動インストールなので autoyast=... パラメータも必要です) 。
linuxrc に対して ifcfg のパラメータを設定する必要があります。これはネットワークの設定を行う際には必須のパラメータで、指定を行わないと、プロファイルをリモートからダウンロードできなくなってしまいます。詳しくは C.3項 「高度なネットワーク設定」 をお読みください。
対応していますが、他の方式よりは複雑な構成になります。環境 (DHCP, TFTP など) は注意して構築しなければなりません。また、 AutoYaST のプロファイルは下記のようになります:
<?xml version="1.0"?>
<!DOCTYPE profile>
<profile xmlns="http://www.suse.com/1.0/yast2ns" xmlns:config="http://www.suse.com/1.0/configns">
<partitioning config:type="list">
<drive>
<device>/dev/nfs</device>
<initialize config:type="boolean">false</initialize>
<type config:type="symbol">CT_NFS</type>
<partitions config:type="list">
<partition>
<filesystem config:type="symbol">nfs</filesystem>
<fstopt>nolock</fstopt>
<device>10.10.1.53:/tmp/m4</device>
<mount>/</mount>
</partition>
</partitions>
<use>all</use>
</drive>
</partitioning>
</profile>AutoYaST のメーリングリスト (英語のみ) で質問を受け付けております。詳しくは https://lists.opensuse.org/opensuse-autoinstall/ をお読みください。