本章ではサービスや登録、ユーザやグループの管理、アップグレードやパーティション設定、各種設定の管理や SSH 鍵の管理、ファイアウオールの設定やその他のインストールオプションについて説明しています。
本章では、一般的な用途で使用する制御ファイル内の主要なパーツについて説明しています。その他の利用可能なオプションについて知るには、設定管理システム (CMS) をお使いください。
なお、オプションによっては追加のパッケージをインストールしなければならないものもあります。お使いのシステムをインストールする際、最小限のパッケージ選択を行っていると、必要なパッケージがインストールされていない場合がありますので、この場合は個別にパッケージを選択してインストールしてください。
YaST では、 AutoYaST のインストール後フェーズの開始前に、インストールの第 2 フェーズで必要なパッケージをインストールします。しかしながら、システム側で必要な YaST モジュールがインストールされていないと、主要な設定ステップが飛ばされてしまいます。たとえば yast2-security
パッケージがインストールされていない場合、セキュリティ関連の設定は行われません。
general
セクションには、インストールの処理手順全体に影響する全ての設定が書かれています。このセクションの全体像は下記のとおりです:
<?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>1 ... </ask-list> <cio_ignore> ... </cio_ignore> <mode>2 ... </mode> <proposals>3 ... </proposals> <self_update>4 ... </self_update> <self_update_url> ... </self_update_url> <semi-automatic config:type="list">5 ... </semi-automatic> <signature-handling>6 ... </signature-handling> <storage>7 ... </storage> <wait>8 ... </wait> </general> <profile>
モードセクションでは、ユーザに対する問い合わせや再起動に関する AutoYaST の動作を設定します。 mode
セクション内では下記の要素を設定することができます:
activate_systemd_default_target
この項目を false
に設定すると、既定の systemd
のターゲットが systemctl isolate
で有効化されなくなります。この値の指定は任意で、既定値は true
です。
<general> <mode> <activate_systemd_default_target config:type="boolean"> true </activate_systemd_default_target> </mode> ... </general>
confirm
既定では、インストール処理は false
にすると、設定内容は自動的に受け入れられ、インストールが始まることになります。そのため、完全な無人インストールを行いたい場合にのみ、 false
を指定してください。この値の指定は任意で、既定値は true
です。
<general> <mode> <confirm config:type="boolean">true</confirm> </mode> ... </general>
confirm_base_product_license
この値を true
に設定すると、基本製品の EULA が表示されるようになります。ユーザ側では、表示されたライセンスを受け入れる必要があります。受け入れない場合、インストールはキャンセルされます。この値の設定は任意で、既定値は false
です。 この設定は基本製品のライセンスにのみ適用されます。追加のライセンスについては、 add-on
セクション内の confirm_license
フラグをお使いください (詳しくは 4.9.3項 「追加のパッケージやカスタマイズしたパッケージ、もしくは独自の製品のインストール」 をお読みください) 。
<general> <mode> <confirm_base_product_license config:type="boolean"> false </confirm_base_product_license> </mode> ... </general>
final_halt
この値を true
に設定すると、必要なパッケージのインストールと 第 2 ステージでの 設定が終わったあとに、マシンがシャットダウンするようになります。 final_halt
を設定した場合は、 final_reboot
オプションを true
に設定する必要はありません。
<general> <mode> <final_halt config:type="boolean">false</final_halt> </mode> ... </general>
final_reboot
この値を true
に設定すると、必要なパッケージのインストールと 第 2 ステージでの 設定が終わったあとに、マシンが再起動するようになります。 final_reboot
を設定した場合は、 final_halt
オプションを true
に設定する必要はありません。
<general> <mode> <final_reboot config:type="boolean">true</final_reboot> </mode> ... </general>
final_restart_services
この項目を false
に設定すると、インストールの最後 (全てのパッケージをインストールし、 第 2 ステージの末尾での 設定が終わったあと) にサービス類が再起動 されなく なります。この値の設定は任意で、既定値は true
です。
<general> <mode> <final_restart_services config:type="boolean"> true </final_restart_services> </mode> ... </general>
forceboot
openSUSE のリリースによっては、第 1 ステージ終了後の再起動を避けるため、 Kexec を利用して居るバージョンがあります。これにより、インストール済みのシステムを即時に起動できるようになっています。この場合、この値を true
に設定することで、 Kexec ではなく再起動を行うようにすることができます。この値の設定は任意で、既定値は製品によって異なります。
<general> <mode> <forceboot config:type="boolean">false</forceboot> </mode> ... </general>
nVidia 社, ATI 社のグラフィックカード向けのプロプライエタリドライバなどを使用している場合、 Kexec では正しく動作させることができず、必ず再起動が必要となります。そのため、 openSUSE Leap 製品の既定では、必ず再起動を行うようになっています。
halt
第 1 ステージの終了後にマシンをシャットダウンします。この段階では、全てのパッケージとブートローダのインストールが完了し、 chroot スクリプトの指定があれば、実行後の状態になります。これを指定すると、再起動を行って第 2 ステージを開始する代わりに、マシンの電源が落とされます。その後マシンの電源を投入すると、マシンは第 2 ステージの自動インストールが始まるようになります。 この値の設定は任意で、既定値は false
です。
<general> <mode> <halt config:type="boolean">false</halt> </mode> ... </general>
max_systemd_wait
systemd
が既定のターゲットの準備を整える際、 AutoYaST が最大で待機する時間を秒単位で指定します。この値の設定は任意で、通常は設定不要です。既定値は 30
(秒) です。
<general> <mode> <max_systemd_wait config:type="integer">30</max_systemd_wait> </mode> ... </general>
ntp_sync_time_before_installation
インストールを開始する前に時刻同期を行うための、 NTP サーバを指定します。時刻同期は、このオプションを設定した場合にのみ行われます。なお、 NTP サーバとの通信にはネットワークの接続と、 NTP サーバへの経路情報の設定が必要となります。この値の設定は任意で、既定では時刻同期を行いません。
<general> <mode> <ntp_sync_time_before_installation> &ntpname; </ntp_sync_time_before_installation> </mode> ... </general>
second_stage
通常の openSUSE Leap のインストールは、単一のステージ内で行われますが、自動インストールの場合は、 2 つのステージに分割して実行されます。自動インストールでは基本的なシステムのインストールを行ったあと、システムの設定を行うために第 2 ステージを起動します。このオプションを false
に設定すると、第 2 ステージを無効化することができます。この値の設定は任意で、既定値は true
です。
<general> <mode> <second_stage config:type="boolean">true</second_stage> </mode> ... </general>
AutoYaST では、インストールに関する設定の概要を表示する proposal
タグを使用することで、インストール設定の画面に表示される設定 (「提案」) を制御することができます。表示することのできる提案項目の一覧については、インストールメディア内の /control.xml
ファイルをご覧ください。この設定は任意で、既定では全ての設定オプションを表示します。
<proposals config:type="list"> <proposal>partitions_proposal</proposal> <proposal>timezone_proposal</proposal> <proposal>software_proposal</proposal> </proposals>
インストールの際、 YaST は自分自身を更新して、リリース後に発見されたインストーラ自身のバグを解決することができます。この機能に関する詳細について、詳しくは 配置ガイド をお読みください。
YaST の自己更新機能を制御するには、下記のタグを設定してください:
self_update
このオプションを true
もしくは false
に設定することで、 YaST の自己更新機能を有効化もしくは無効化することができます。この値の設定は任意で、既定値は true
です。
<general> <self_update config:type="boolean">true</self_update> ... </general>
カーネルのコマンドラインに対して、 self_update=1
の起動パラメータを設定しても、同じ動作になります。
self_update_url
YaST の自己更新機能を提供する更新リポジトリの場所を指定します。詳しくは 3.2.2項 「独自の自己更新リポジトリ」 をお読みください。
self_update_url
パラメータでは、インストーラの自己更新を提供する URL のみを指定します。ソフトウエアの更新リポジトリなど、その他のリポジトリを指定してはなりません。
<general> <self_update_url> http://example.com/updates/$arch </self_update_url> ... </general>
URL には $arch
という変数を含めることができます。これはシステムのアーキテクチャに置き換えられる箇所を示すもので、たとえば x86_64
, s390x
などに置き換えられます。
それ以外の方法としては、カーネルのコマンドラインに対して、 self_update=1
と self_update=URL
の起動パラメータを設定しても、同じ動作になります。
AutoYaST では、インストール時にいくつかの YaST モジュールを起動する機能を提供しています。これにより、いくつかの項目については手動で設定し、それ以外の全てを自動的に設定することができます。この半自動化セクションでは、下記のような YaST モジュールを起動することができます:
ネットワーク設定モジュール ( networking
)
パーティション設定モジュール ( partitioning
)
登録モジュール ( scc
)
下記の例は、インストール時に対応する 3 種類全てのモジュールを起動する場合の例です:
<general> <semi-automatic config:type="list"> <semi-automatic_entry>networking</semi-automatic_entry> <semi-automatic_entry>scc</semi-automatic_entry> <semi-automatic_entry>partitioning</semi-automatic_entry> </semi-automatic> </general>
既定では、 AutoYaST は既知の GPG 鍵で署名されたソースからの署名付きパッケージのみをインストールします。本セクションでは、この既定値を変更することができます。
未署名のパッケージやチェックサムの確認が失敗したパッケージ、もしくは信頼していないソースからのパッケージを受け入れてしまうと、セキュリティ上のリスクとなります。このようなパッケージを受け入れてしまうと、パッケージが改ざんされていることを検出できなくなるほか、お使いのマシンに悪意のあるソフトウエアをインストールする可能性が生じてしまいます。ここで説明している既定値の上書きは、リポジトリとその中にあるパッケージの両方が信頼できるものである場合にのみ、設定してください。 SUSE では、これらの正当性チェックを無効化した状態でソフトウエアをインストールし使用した場合、一切の保証を行いません。
下記に示す全オプションの既定値は false です。オプションが false に設定されていた場合、それに対応するパッケージやリポジトリのチェックが失敗すると、特にメッセージを表示することなくインストールを行わなくなります。
accept_unsigned_file
true
に設定した場合、 AutoYaST はコンテンツファイルなどが未署名であっても、受け入れるようになります。
<general> <signature-handling> <accept_unsigned_file config:type="boolean"> false </accept_unsigned_file> </signature-handling> ... <general>
accept_file_without_checksum
true
に設定した場合、 AutoYaST はコンテンツファイルなどのチェックサムが存在しない場合であっても、受け入れるようになります。
<general> <signature-handling> <accept_file_without_checksum config:type="boolean"> false </accept_file_without_checksum> </signature-handling> ... <general>
accept_verification_failed
true
に設定すると、 AutoYaST は署名の検証が失敗した場合でも、署名付きのファイルであればそれらを受け付けるようになります。
<general> <signature-handling> <accept_verification_failed config:type="boolean"> false </accept_verification_failed> </signature-handling> ... <general>
accept_unknown_gpg_key
true
に設定した場合、 AutoYaST はインストール元に新しい GPG 鍵が存在し、その鍵でコンテンツファイルに署名されている場合、それを受け付けるようになります。
<general> <signature-handling> <accept_unknown_gpg_key config:type="boolean"> false </accept_unknown_gpg_key> </signature-handling> ... <general>
accept_non_trusted_gpg_key
true
に設定した場合、既知ではあるもののまだ信頼していない鍵を受け付けるようになります。
<general> <signature-handling> <accept_non_trusted_gpg_key config:type="boolean"> false </accept_non_trusted_gpg_key> </signature-handling> ... <general>
import_gpg_key
true
に設定した場合、 AutoYaST はインストール元にある新しい GPG 鍵を受け付け、データベース内に取り込むようになります。
<general> <signature-handling> <import_gpg_key config:type="boolean"> false </import_gpg_key> </signature-handling> ... <general>
インストールの第 2 ステージでは、ネットワークの設定などのさまざまなモジュールを動作させて、システムの設定を行います。 wait
セクションでは、特定のモジュールの動作前後で実行すべきスクリプトを指定することができます。また、各モジュールの前後でシステムを待機させる時間幅 ( 「スリープ」 ) を設定することもできます。
pre-modules
設定モジュールが起動する前に実行すべきスクリプトと、その待機時間をそれぞれ設定することができます。下記のコードでは、ネットワーク設定モジュールを起動する前に、 10 秒間の待機と echo コマンドの実行を指定しています。
<general> <wait> <pre-modules config:type="list"> <module> <name>networking</name> <sleep> <time config:type="integer">10</time> <feedback config:type="boolean">true</feedback> </sleep> <script> <source>echo foo</source> <debug config:type="boolean">false</debug> </script> </module> </pre-modules> ... </wait> <general>
post-modules
設定モジュールが起動した後に実行すべきスクリプトと、その待機時間をそれぞれ設定することができます。下記のコードでは、ネットワーク設定モジュールを起動した後に、 10 秒間の待機と echo コマンドの実行を指定しています。
<general> <wait> <post-modules config:type="list"> <module> <name>networking</name> <sleep> <time config:type="integer">10</time> <feedback config:type="boolean">true</feedback> </sleep> <script> <source>echo foo</source> <debug config:type="boolean">false</debug> </script> </module> </post-modules> ... </wait> <general>
general
セクションの例 #Edit source本章で説明してきた項目の設定例を示します。
下記の例では、 general セクション内で最もよく使用されるオプションを示しています。なお、 pre および post の各モジュールセクションには、ダミーのスクリプトを埋め込んでいます。
<?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> <mode> <halt config:type="boolean">false</halt> <forceboot config:type="boolean">false</forceboot> <final_reboot config:type="boolean">false</final_reboot> <final_halt config:type="boolean">false</final_halt> <confirm_base_product_license config:type="boolean"> false </confirm_base_product_license> <confirm config:type="boolean">true</confirm> <second_stage config:type="boolean">true</second_stage> </mode> <proposals config:type="list"> <proposal>partitions_proposal</proposal> </proposals> <self_update config:type="boolean">true</self_update> <self_update_url>http://example.com/updates/$arch</self_update_url> <signature-handling> <accept_unsigned_file config:type="boolean"> true </accept_unsigned_file> <accept_file_without_checksum config:type="boolean"> true </accept_file_without_checksum> <accept_verification_failed config:type="boolean"> true </accept_verification_failed> <accept_unknown_gpg_key config:type="boolean"> true </accept_unknown_gpg_key> <import_gpg_key config:type="boolean">true</import_gpg_key> <accept_non_trusted_gpg_key config:type="boolean"> true </accept_non_trusted_gpg_key> </signature-handling> <wait> <pre-modules config:type="list"> <module> <name>networking</name> <sleep> <time config:type="integer">10</time> <feedback config:type="boolean">true</feedback> </sleep> <script> <source>>![CDATA[ echo "Sleeping 10 seconds" ]]></source> <debug config:type="boolean">false</debug> </script> </module> </pre-modules> <post-modules config:type="list"> <module> <name>networking</name> <sleep> <time config:type="integer">10</time> <feedback config:type="boolean">true</feedback> </sleep> <script> <source>>![CDATA[ echo "Sleeping 10 seconds" ]]></source> <debug config:type="boolean">false</debug> </script> </module> </post-modules> </wait> </general> </profile>
report
リソースでは、インストール時に表示される可能性のある、 3 種類のポップアップを管理します:
メッセージポップアップ (通常は致命的なものではなく、情報提供のみを目的としたもの)
警告ポップアップ (何らかの問題が発生していることを示すもの)
エラーポップアップ (何らかのエラーが発生していることを示すもの)
<report> <errors> <show config:type="boolean">true</show> <timeout config:type="integer">0</timeout> <log config:type="boolean">true</log> </errors> <warnings> <show config:type="boolean">true</show> <timeout config:type="integer">10</timeout> <log config:type="boolean">true</log> </warnings> <messages> <show config:type="boolean">true</show> <timeout config:type="integer">10</timeout> <log config:type="boolean">true</log> </messages> <yesno_messages> <show config:type="boolean">true</show> <timeout config:type="integer">10</timeout> <log config:type="boolean">true</log> </yesno_messages> </report>
ご利用の方の知識レベルに応じて、これらのメッセージを非表示にしたり記録したり、もしくは (時間制限付きで) 表示したりすることができます。なお、全ての messages
に対してタイムアウトを設定し、表示しておくことをお勧めします。警告は、その内容によっては読み飛ばすことができるものもありますが、通常は無視すべきものではありません。
自動インストールモードでの既定値では、全てのエラーを時間制限無しで表示し、それ以外の警告やその他のメッセージは 10 秒の時間制限を設定して全て表示します。
report
リソースでは、インストール時に表示される全てのメッセージを制御することはできません。パッケージのインストールやパーティション設定などで致命的な問題が発生した場合、 report
セクションの設定に関わらずメッセージが表示されることがあります。通常、これらのメッセージは または で回答する必要があるものです。
本章は yast2-bootloader
で GRUB 2 を利用する場合の説明となります。なお、古いバージョンの GRUB を同梱している古い製品バージョンの場合は、そのバージョン内の /usr/share/doc/packages/autoyast2/
ディレクトリ内にある文書をお読みください。
既定では、 AutoYaST は起動メディアからインストールした場合と同じブートローダの選択になります。たとえば EFI で起動している場合は GRUB 2 for EFI がインストールされます。そのため、特別な要件がない限り、本章は省略してかまいません。また、 EFI システムの起動には特別なパーティション設定が必要となるため、 4.5.1項 「自動パーティション設定」 で説明している自動パーティション設定の使用もお勧めします。
なお、既定値を修正する場合は、 <bootloader>
セクションを設定してください。たとえば下記のようになります:
<bootloader> <loader_type> <!-- ブートローダの種類 (grub2 または grub2-efi) --> </loader_type> <global> <!-- GRUB 2 のインストール設定と汎用ブートコードに関する設定 --> </global> <device_map config:type="list"> <!-- デバイスの順序に関する設定 --> </device_map> </bootloader>
なお、全ての項目を指定する必要はありません。変更したい箇所のタグだけを設定してください。 AutoYaST では、プロファイル内で設定のない箇所については既定値を適用します。
ここでは使用したいブートローダの種類 (UEFI もしくは BIOS) を指定します。なお、アーキテクチャによっては、 BIOS と UEFI の両方には対応しておらず、いずれか片方しか対応していないものもあります。インストーラ側で自動的に判断させたい場合は、最も安全な選択肢 ( default
) を指定してください。
<loader_type>種類</loader_type>
種類 には下記のいずれかを指定します:
default
: インストーラ側で適切なブートローダを自動的に判断します。何も指定しない場合の既定値です。
grub2
: 古い BIOS 型のブートローダを使用します。
grub2-efi
: EFI ブートローダを使用します。
none
: インストーラ側では起動処理に関する設定を行わないようにします。
この項目は任意指定ではありますが、重要な項目です。ここでは GRUB 2 のインストール先と起動処理の動作について設定を行います。こちらも同様に、何も設定しない場合は yast2-bootloader
が自動的に設定を作成します。通常、 AutoYaST の制御ファイルには本章のみを含めるものとし、その他の箇所は yast2-bootloader
側でインストール時に自動設定させるようにします。また、特別な要件がない限り、 XML ファイル内にはブートローダの設定そのものを省略しておくことをお勧めします。
この項目は任意指定ではありますが、重要な項目です。ここでは GRUB 2 のインストール先と起動処理の動作について設定を行います。こちらも同様に、何も設定しない場合は yast2-bootloader
が自動的に設定を作成します。通常、 AutoYaST の制御ファイルには本章のみを含めるものとし、その他の箇所は yast2-bootloader
側でインストール時に自動設定させるようにします。また、特別な要件がない限り、 XML ファイル内にはブートローダの設定そのものを省略しておくことをお勧めします。
ハイバネーションに関して特別な要件がある場合は、 append
設定内に resume
もしくは noresume
を設定してください。
インストーラ側の判断に関わらずハイバネーションを無効化したい場合は、 append
セクション内のカーネルパラメータに noresume
を設定してください。
その逆に、使用すべきハイバネーションデバイスを指定したい場合は、 resume
の値としてデバイスパスを設定してください。なお、デバイス名が変化してしまうことでデバイスの選択を誤ってしまう問題に対応するため、スワップデバイスをラベルで指定しておくことをお勧めします:
<append>quiet resume=/dev/disk/by-label/my_swap</append>
resume
や noresume
のどちらも指定しない場合や、 resume
で指定したデバイスが存在しない場合は、インストーラ側で resume
に指定すべき値を自動的に判断します。なお、環境によっては、インストーラ側の判断でハイバネーション関連のパラメータそのものを削除する場合もあります。
<global> <activate>true</activate> <timeout config:type="integer">10</timeout> <terminal>gfxterm</terminal> <gfxmode>1280x1024x24</gfxmode> </global>
起動用のパーティションに対して起動 (boot) フラグを設定します。起動パーティションとは /boot
ディレクトリにマウントされるパーティションで、それが無い場合は /
ディレクトリにマウントされるパーティションになります。なお、起動パーティションが論理パーティションであった場合は、拡張パーティションに対して起動フラグが設定されます。
<activate>true</activate>
通常モードと復元モードで使用されるカーネルパラメータで、起動時にパラメータの末尾に追加するものを指定します。
<append>nomodeset vga=0x317</append>
GRUB 2 を /boot
ディレクトリのパーティション内に書き込みます。 /boot
ディレクトリのパーティションがない場合、 GRUB 2 は /
ディレクトリのパーティションに書き込みます。
<boot_boot>false</boot_boot>
指定した独自のデバイスに GRUB 2 を書き込みます。
<boot_custom>/dev/sda3</boot_custom>
GRUB 2 を拡張パーティションに書き込みます。これは /boot
パーティションが論理パーティション内に存在する場合に重要です。注意: なお、起動パーティションが論理パーティションである場合は、 generic_mbr
ではなく boot_mbr
(つまり、 GRUB 2 を MBR に書き込む) を使用すべきです。
<boot_extended>false</boot_extended>
GRUB 2 を最初のディスクの MBR に書き込みます (ディスクの順序については device.map
で設定します) 。
<boot_mbr>false</boot_mbr>
GRUB 2 を /
パーティションに書き込みます。
<boot_root>false</boot_root>
CPU の脆弱性に対する緩和策となるカーネルの起動パラメータを選択します。これにより、セキュリティと性能のどちらを重視するのかを設定することにもなります。
設定できる値は下記のいずれかです:
お使いの CPU モデルに応じた緩和策を全て有効化しますが、 CPU を跨いだスレッド 攻撃については保護を行いません。この設定では、ご利用の負荷状況に応じて、 性能面に幾分かの影響が発生します。
利用可能な全ての緩和策を全て適用します。お使いの CPU モデルに応じた全ての 緩和策を適用し、かつ同時マルチスレッディング Simultaneous Multithreading (SMT) も無効化し、 CPU スレッドを跨いだサイドチャネル攻撃を無効化します。 ご利用の負荷状況にもよりますが、さらに性能面への影響が高くなります。
全ての緩和策を無効化します。お使いの CPU モデルに応じて、 CPU に対するサイド チャネル攻撃が成立することになります。この設定では、性能面への影響はありません。
緩和策のレベルを指定しません。カーネルのコマンドラインオプションを利用して、 手作業で緩和策を個別に指定することができるようになります。
<cpu_mitigations>auto</cpu_mitigations>
AutoYaST で特に何も設定しない場合は、カーネルのコマンドラインで対応する設定を変更することができます。既定では、インストールメディア内の /control.xml
に書かれた製品固有の設定を使用します。
MBR に対して汎用のブートコードを書き込みます (なお、 boot_mbr
が true
の場合は無視されます) 。
<generic_mbr config:type="boolean">false</generic_mbr>
GRUB 2 のグラフィカル画面の解像度を指定します (なお、 <terminal> で gfxterm
を指定する必要があります) 。
設定可能な値は auto
, 水平解像度x垂直解像度
, 水平解像度x垂直解像度x色深
のいずれかになります。特定のシステムにおいて GRUB 2 で利用可能な解像度の一覧を取得したい場合は、システムの起動時に GRUB 2 のコマンドラインで vbeinfo
コマンドを実行してください。
<gfxmode>1280x1024x24</gfxmode>
true
に設定すると、インストール済みの他のオペレーティングシステムを自動検出して、対応する起動項目を生成するようになります。
<os_prober>false</os_prober>
この項目を指定すると、ブートローダをパスワードで保護するようになります。ここで指定したパスワードを入力しない限り、システムは起動できなくなります。
なお、副要素として value
, encrypted
, unrestricted
を指定することができます。
value
内にはパスワードそのものを指定します。パスワードは暗号化せずそのまま記述することもできます (この場合、 YaST が自動的に暗号化して設定します) し、 grub-mkpasswd-pbkdf2
であらかじめ暗号化したものを設定することもできます。あらかじめ暗号化したものを設定する場合は、 encrypted
に true
を指定してください。
unrestricted
に false
を指定すると、value
で指定したパスワードを入力しない限り、起動も項目の編集 (項目を選んで E を押す) もできなくなりますが、 true
を指定すると、起動はパスワード入力無しで行うことができるものの、 GRUB 2 の項目編集についてはパスワード入力が必要となるようになります。何も指定しない場合、 true
が設定されたものとみなされます。
<password><value>my_strong_password</value><encrypted>false</encrypted><unrestricted>false</unrestricted></password>
古い形式であり、現在は使用されていません。 btrfs のスナップショット機能は、自動的に有効化されます。
GRUB 2 の端末モードを serial
に設定した場合に、実行すべきコマンドを指定します。
<serial>serial --speed=115200 --unit=0 --word=8 --parity=no --stop=1</serials>
false
に設定すると、 UEFI Secure Boot が無効化されます。 grub2-efi
ブートローダを使用した場合にのみ意味があります。
<secure_boot>false</secure_boot>
GRUB 2 で使用すべき端末モードを指定します。設定可能な値は console
, gfxterm
, serial
のいずれかとなります。 serial
を指定した場合は、 <serial> でコマンドを指定する必要があります。
<terminal>serial</terminal>
既定の項目を自動起動するまでの待機時間を秒単位で指定します。
<timeout config:type="integer">10</timeout>
true
を指定すると、 Trusted GRUB を使用するようになります。 Trusted GRUB は Trusted Platform Module (TPM) に対応しています。 grub2
ブートローダを使用した場合にのみ動作します。
<trusted_boot">true</trusted_boot>
true
を指定すると、ファームウエアの NVRAM 内に起動項目を追加するようになります。特殊な設定を行いたい場合や、ファームウエア側での問題を回避する必要がある場合を除いて、 true
を指定しておくことをお勧めします。
<update_nvram>true</update_nvram>
起動時のカーネルパラメータに追加する vga=値
の値部分を指定します。
<vgamode>0x317</vgamode>
Xen ゲスト向けの起動項目の末尾に追加すべきカーネルパラメータを指定します。
<xen_append>nomodeset vga=0x317</xen_append>
VM ホストサーバ 内での Xen カーネルに対して、末尾に追加すべきカーネルパラメータを指定します。
<xen_kernel_append>dom0_mem=768M</xen_kernel_append>
GRUB 2 では、 BIOS ドライブと Linux デバイスの間での差異をなくすため、デバイスの ID 文字列 (UUID) やファイルシステムラベルでデバイスマップを指定することができます。通常は GRUB 2 ユーティリティがインストール時に自動作成しますので、ディスクが 1 台だけのシステムでは問題になりませんが、複数台のディスクが存在する場合など、自動的なデバイスマップでは問題がある場合、ここで独自のマッピングを設定することができます。
<device_map config:type="list"> <device_map_entry> <firmware>hd0</firmware> <!-- マップ内でのデバイス順序 --> <linux>/dev/disk/by-id/ata-ST3500418AS_6VM23FX0</linux> <!-- デバイス (ディスク) 名 --> </device_map_entry> </device_map>
本章は yast2-bootloader
で systemd-boot を利用する場合の説明となります。
AutoYaST ブートローダ設定は下記のような構造になっています:
<bootloader> <loader_type> systemd-boot </loader_type> <global> <!-- systemd-boot のインストール設定と汎用ブートコードに関する設定 --> </global> </bootloader>
ここでは使用したいブートローダの種類 (systemd-boot) を指定します。
<loader_type>systemd-boot</loader_type>
この項目は任意指定ではありますが、重要な項目です。ここでは systemd-boot のインストール先と起動処理の動作方法について設定を行います。なお、何も設定しない場合は yast2-bootloader
が自動的に設定を作成します。特別な要件がない限り、 XML ファイル内にはブートローダの設定を省略しておくことをお勧めします。
<global> <timeout config:type="integer">10</timeout> <secure_boot>false</secure_boot> </global>
false
に設定すると、 UEFI Secure Boot が無効化されます。
<secure_boot>false</secure_boot>
既定の項目を自動起動するまでの待機時間を秒単位で指定します。
<timeout config:type="integer">10</timeout>
パーティション設定に対して、 AutoYaST では 3 つの種類に分類して扱っています:
自動パーティション設定。ユーザ側にはパーティション設定に対する問い合わせを行わず、 AutoYaST 側で設定を全て賄うことを指します。
ガイド付きのパーティション設定。ユーザ側で LVM を使用するかどうかなどの基本設定を行うものの、詳しいパーティション設定やボリュームグループの設定など、詳細箇所については行わないものを指します。
熟練者向けのパーティション設定。ユーザ側で詳細な配置の設定を行うことを指します。ただし、全ての設定までを指定する必要はなく、必要に応じて環境に合わせた既定値を提案するものとします。
これらの分類は、通常のインストーラでも選択することができます。
を使用すれば詳細なパーティション設定画面を飛ばして YaST 側に設定を任せることができますし、 を使用すれば、詳細な配置を設定することができます。AutoYaST では、ユーザに対して一切問い合わせを行わずに賢くパーティション設定を行うことができます。インストールする製品にも依存しますが、 AutoYaST では通常、ルートファイルシステムに対して btrfs を、個別の /home
パーティションに対して XFS をそれぞれ作成し、スワップパーティションを加えた 3 つのパーティションを作成します。これに加えて、アーキテクチャによっては起動に必要なパーティション (BIOS GRUB パーティションなど) を追加で作成することもあります。
しかしながら、これらの既定値はディスク領域などの状況によっても変化します。たとえばディスク容量が少ない場合、個別の /home
パーティションが作成されなかったりします。
これらの既定値を調整したい場合は、 4.5.2項 「ガイド付きのパーティション設定」 で説明している設定項目を調整してください。
AutoYaST には、一切ユーザに対して問い合わせを行うことなくパーティション設定を行う機能がありますが、いくつかの一般的なパラメータのみを指定しておいて、残りを AutoYaST に任せたほうが都合の良い場合があります。たとえば詳細なパラメータを指定せずに LVM を使用したい場合や、ファイルシステムの暗号化を行いたいような場合がそれにあたります。これは通常のインストール処理でも同様で、ガイド付きの設定を利用することで、基本的なパラメータのみを指定したパーティション設定を行うことができます。
例4.3「LVM ベースのガイド付きパーティション設定」 で示している storage
セクションでは、 LVM を利用するとともに、必要かどうかにかかわらず全ての Windows パーティションを削除するような設定を示しています。
<general> <storage> <proposal> <lvm config:type="boolean">true</lvm> <windows_delete_mode config:type="symbol">all</windows_delete_mode> </proposal> </storage> </general>
LVM ベースの提案を作成するかどうかを指定します。既定値は false
です。
<lvm config:type="boolean">true</lvm>
提案にあたって、インストーラが既存の LVM ボリュームを再利用するかどうかを指定します。既定値は true
です。
<lvm_vg_reuse config:type="boolean">false</lvm_vg_reuse>
true
に設定した場合、 AutoYaST はインストールに必要な領域を確保するため、 Windows のパーティションのサイズ変更を行うようになります。
<resize_windows config:type="boolean">false</resize_windows>
none
を指定すると、 Windows パーティションを削除しないようになります。
ondemand
を指定すると、必要に応じて Windows パーティションを削除するようになります。
all
を指定すると、全ての Windows パーティションを削除するようになります。
<windows_delete_mode config:type="symbol">ondemand</windows_delete_mode>
none
を指定すると、 Linux パーティションを削除しないようになります。
ondemand
を指定すると、必要に応じて Linux パーティションを削除するようになります。
all
を指定すると、全ての Linux パーティションを削除するようになります。
<linux_delete_mode config:type="symbol">ondemand</linux_delete_mode>
none
を指定すると、その他のパーティションを削除しないようになります。
ondemand
を指定すると、必要に応じてその他のパーティションを削除するようになります。
all
を指定すると、全てのその他のパーティションを削除するようになります。
<other_delete_mode config:type="symbol">ondemand</other_delete_mode>
指定したパスワードで暗号化を行うようにします。既定では暗号化を行いません。
<encryption_password>some-secret</encryption_password>
ガイド付きパーティション設定よりも詳しく設定を行いたい場合は、 AutoYaST のプロファイル内に partitioning
セクションを挿入して指定を行います。ただし、 AutoYaST では全ての詳細までを指定する必要はありません。不完全な指定を行っていても、適切な既定値を割り当てて設定するようになっています。
partitioning
セクション内には drive
要素の羅列を設定します。それぞれの drive
要素には、ディスクや LVM のボリュームグループ、 RAID やマルチデバイス型の btrfs ファイルシステムなどの配置要素を設定します。
例4.4「/
, /home
, swap
の各パーティションを作成する場合の例」 の例では、 AutoYaST に対して、ディスク全体を使用して /
, /home
, swap
の各パーティションを作成する設定例を示しています。なお、パーティション内で使用すべきファイルシステムの情報などの指定が省略されていることに注意してください。このような指定を行った場合は、 AutoYaST 側で自動的に判断して設定を行います。
/
, /home
, swap
の各パーティションを作成する場合の例 #<partitioning config:type="list"> <drive> <use>all</use> <partitions config:type="list"> <partition> <mount>/</mount> <size>20GiB</size> </partition> <partition> <mount>/home</mount> <size>max</size> </partition> <partition> <mount>swap</mount> <size>1GiB</size> </partition> </partitions> </drive>
AutoYaST では、プロファイル内に指定されたパーティション設定で問題なく起動できるかどうかを自動的に判断します。もしも起動できないものと判断された場合は、必要なパーティションを自動的に追加します。そのため、起動用のパーティションが必要かどうかがわからないような状況でも、 AutoYaST に設定を任せておけば正しい選択を行ってくれることになります。
下記のような XML 構造内に、必要な要素を追加していきます:
<profile> <partitioning config:type="list"> <drive> ... </drive> </partitioning> </profile>
任意指定です。ここでは設定対象のデバイスを指定しますが、何も指定しない場合は AutoYaST が自動的にデバイスを判断します。判断を調整する方法については、 ヒント: ドライブを読み飛ばす設定について をお読みください。
値に ask
を指定すると、 AutoYaST はインストール時に使用するデバイスをユーザに対して尋ねるようになります。
また、デバイス名を ID で指定することで、システム構成の変更に影響を受けないようにすることもできます。たとえば /dev/disk/by-id/ata-WDC_WD3200AAKS-75L9A0_WD-WMAV27368122
のように by-id で指定したり、 /dev/disk/by-path/pci-0001:00:03.0-scsi-0:0:0:0
のように by-path で指定したりすることができます。
<device>/dev/sda</device>
ボリュームグループやソフトウエア RAID 、 bcache
デバイスの場合は、インストール後のシステムで使用するデバイス名は別のものになります (既存のデバイスとの衝突を避けるためのものです) 。
マルチパスデバイスの扱いについて、詳しくは 4.5.7項 「マルチパスサポート」 をお読みください。
任意指定です。既定値は false
で、 true
に設定すると、 AutoYaST がパーティションの計算を行う前に、パーティションテーブルを消去するようになります。
<initialize config:type="boolean">true</initialize>
任意指定です。ここには <partition> 項目を入れます (詳しくは 4.5.3.2項 「パーティションの設定」 をお読みください) 。
<partitions config:type="list"> <partition>...</partition> ... </partitions>
何もパーティションを指定しない場合、 AutoYaST は適切なパーティション設定を自動で作成します (詳しくは 4.5.3.5項 「不完全な設定の補完」 をお読みください) 。
任意指定で、 LVM でのみ意味のある項目です。 LVM ボリュームグループの場合、 4M が既定値となります。
<pesize>8M</pesize>
設定しておくことをお勧めします。 AutoYaST がハードディスクに対してパーティション設定を行うにあたって、その大まかな方針を指定します。下記のいずれかを指定します:
all
: 新しいパーティションを作成する際、ディスク全体を使用するようにします。
linux
: 既存の Linux パーティションのみを使用します。
free
: デバイス内の未使用領域のみを使用し、それ以外のパーティションについては何も変更しないようにします。
1,2,3: 使用すべきパーティションの番号をカンマ区切りで指定します。
任意指定です。 drive
の種類を指定します。通常の物理ハードディスクの場合、既定値は CT_DISK
になります。下記のいずれかを指定してください:
CT_DISK
: 物理的なハードディスク (既定値)
CT_LVM
: LVM ボリュームグループ
CT_MD
: ソフトウエア RAID デバイス
CT_DMMULTIPATH
: マルチパスデバイス (廃止予定, CT_DISK と同じ意味になります)
CT_BCACHE
: ソフトウエア bcache
デバイス
CT_BTRFS
: マルチデバイス型の btrfs ファイルシステム
CT_NFS
: NFS
CT_TMPFS
: tmpfs
ファイルシステム
<type config:type="symbol">CT_LVM</type>
任意指定です。既定では YaST 側で自動的に判断します。異なる種類のパーティションテーブルが既に存在している場合、そのままにしておくべきパーティションや再利用可能なパーティションが含まれている場合を除き、指定した種類のパーティションテーブルを再作成します。何もパーティションを作成せずにディスクを使用したい場合は、この要素を none
にしてください。
msdos
gpt
none
<disklabel>gpt</disklabel>
任意指定です。既定値は false
です。
type=CT_LVM のドライブでのみ意味のある項目です。論理ボリュームグループを再利用している場合、この値を true
に設定すると、そのグループ内に存在する全ての既存論理ボリュームは、それらが <partitioning> で指定されている場合を除き、何も変更が加えられないようになります。そのため、そのままにしておくべき論理ボリュームについては、何も指定しなくて良いことになります。
<keep_unknown_lv config:type="boolean">false</keep_unknown_lv>
任意指定です。既定値は true
です。
/
にマウントされている btrfs ファイルシステムに対して、スナップショットを有効化します (その他のファイルシステムや、 /
にマウントされていない btrfs ファイルシステムには適用されません) 。
<enable_snapshots config:type="boolean">false</enable_snapshots>
任意指定です。既定値は false
です。
btrfs サブボリュームに対するクォータサポートを有効化します。この要素を true
に設定すると、ファイルシステムに対するクォータサポートを有効化します。なお、制限の設定は各サブボリューム側で行ってください。詳しくは 4.5.3.3項 「btrfs サブボリューム」 をお読みください。
<quotas config:type="boolean">true</quotas>
use
プロパティに設定した値に従って、既存のデータとパーティションの取り扱いが決まります。このプロパティに all
を指定すると、ディスク全体が消去されます。いずれかのパーティション内に重要なデータが含まれる場合は、あらかじめバックアップを採取するものとし、 confirm
を指定して確認を行うようにしてください。確認を行うように設定しないと、何もメッセージが表示されないままパーティションが削除されてしまいます。
AutoYaST の制御ファイル内で <device> 項目を指定せず、 AutoYaST の自動デバイス判断に任せたい場合、その判断基準を設定することができます。通常は適切なデバイスのうち最初のデバイスを使用するようになっていますが、下記のように設定することで、条件に合致するデバイスを除外できるようになります:
<partitioning config:type="list"> <drive> <initialize config:type="boolean">true</initialize> <skip_list config:type="list"> <listentry> <!-- usb-storage ドライバを使用しているデバイスを読み飛ばす --> <skip_key>driver</skip_key> <skip_value>usb-storage</skip_value> </listentry> <listentry> <!-- 1GB より小さいデバイスを読み飛ばす --> <skip_key>size_k</skip_key> <skip_value>1048576</skip_value> <skip_if_less_than config:type="boolean">true</skip_if_less_than> </listentry> <listentry> <!-- 100GB より大きいデバイスを読み飛ばす --> <skip_key>size_k</skip_key> <skip_value>104857600</skip_value> <skip_if_more_than config:type="boolean">true</skip_if_more_than> </listentry> </skip_list> </drive> </partitioning>
<skip_key> で設定できる値の一覧について、詳しくはインストール済みのシステムで yast2 ayast_probe
を実行してください。
下記のような XML 構造内に、必要な要素を追加していきます:
<drive> <partitions config:type="list"> <partition> ... </partition> </partitions> </drive>
対象のパーティションや論理ボリュームを作成しなければならない場合、もしくは既に存在しているような場合に指定します。 false
に設定した場合、 AutoYaST に対して使用すべきデバイスを指示するため、 partition_nr
, lv_name
, label
, uuid
のいずれかを指定する必要があります。
<create config:type="boolean">false</create>
任意指定です。パーティションの暗号化方式を指定します。下記のいずれかを指定してください:
luks1
: 通常の LUKS1 形式での暗号化を行います。
luks2
: 通常の LUKS2 形式での暗号化を行います。
pervasive_luks2
: 普及型のボリュームの暗号化を行います。
protected_swap
: 暫定的な保護鍵を利用して暗号化します。
secure_swap
: 暫定的な機密鍵を利用して暗号化します。
random_swap
: 暫定的な乱数鍵を利用して暗号化します。
<crypt_method config:type="symbol">luks1</crypt_method>
暗号化方式の選択機能は openSUSE Leap 15.2 もしくはそれ以降のバージョンで使用することができます。以前のバージョンと同じ動作にしたい場合は、 luks1
を指定してください。
暗号化パスワードの指定方法については、 crypt_key
要素の説明をお読みください。
通常の LUKS 暗号化を使用する場合、 LUKS 内で指定する暗号化の種類に応じて crypt_pbkdf
, crypt_cipher
, crypt_key_size
等の設定を行って細かい調整を行うことができます。なお、使用する暗号化方式とその設定内容によっては、インストール処理を完了するのに必要なメモリ量を劇的に変化させる場合があることに注意してください。特に LUKS2 で細かいパラメータを指定せずに使用する場合、デバイスの暗号化を実施するのに数ギガバイト程度のメモリが必要となります。
パーティションを暗号化するよう指定します (既定値は false
です)。ただし、この要素は廃止予定になっています。代わりに crypt_method
を使用してください。
<crypt_fs config:type="boolean">true</crypt_fs>
crypt_method
でパスワードを設定する必要のある方式 (luks1
, luks2
, pervasive_luks2
のいずれか) を選択した場合に必要となります。
<crypt_key>xxxxxxxx</crypt_key>
LUKS で使用する暗号化方式を指定します。この値は crypt_method
の値が luks1
または luks2
である場合にのみ意味を持ちます。設定可能な値とその書式は、 cryptsetup
コマンドの --cipher
パラメータの値と同じです。利用可能な暗号化方式を確認したい場合は、 /proc/crypto
ファイルをご覧ください。
<crypt_cipher>aes-xts-plain64</crypt_cipher>
LUKS で暗号化を行う際の鍵サイズをビット単位で指定します。この値は crypt_method
の値が luks1
または luks2
である場合にのみ意味を持ちます。また、値は 8 の倍数でなければならないほか、使用する暗号方式によって異なる上限値があります。
<crypt_key_size config:type="integer">256</crypt_key_size>
LUKS2 暗号化で使用されるパスワードベースの鍵導出関数を指定します。この値は crypt_method
の値が luks1
または luks2
である場合にのみ意味を持ちます。設定可能な値は pbkdf2
, argon2i
, argon2id
のいずれかで、何も指定しない場合は cryptsetup
コマンドの既定の関数が使用されます。なお、 argon2 の 2 種類の形式はいずれも、暗号化処理時に大きなサイズのメモリを占有するように意図して設計されているため、これらの関数を直接指定した場合や、何も指定しなかった場合 (argon2 が使用される可能性があります) は、暗号化処理を行わない場合に比べてインストール処理時のメモリ要件が厳しくなることに注意してください。
<crypt_pbkdf config:type="symbol">argon2id</crypt_pbkdf>
暗号化デバイスに設定する LUKS ラベルを指定します。この値は crypt_method
の値が luks2
である場合にのみ意味を持ちます。
<crypt_label>crypt_home</crypt_label>
少なくとも 1 つのルートパーティション (/) とスワップパーティションを設定する必要があります。
<mount>/</mount><mount>swap</mount>
対象のパーティションに対して設定するマウントオプションを指定します。詳しくは man mount
をお読みください。
<fstopt>ro,noatime,user,data=ordered,acl,user_xattr</fstopt>
パーティションのラベルを指定します。デバイスをフォーマットする場合 (特に mountby
パラメータを label
にする場合) に有用であるほか、既に存在するデバイスを識別するような場合にも使用します (上述の create
もお読みください) 。指定例について、詳しくは man e2label
をお読みください。
<label>mydata</label>
パーティションの UUID を指定します。既に存在するデバイスを識別する場合にのみ使用します (上述の create
もお読みください) 。なお、新しく作成するデバイスの場合は UUID を事前に決めることができませんので、指定することもできません (詳しくは man uuidgen
をお読みください)。
<uuid>1b4e28ba-2fa1-11d2-883f-b9a761bde3fb</uuid>
4G, 4500M などのように、パーティションのサイズを指定します。 /boot パーティションとスワップパーティションに対しては、 auto
を指定することもできます。この場合、 AutoYaST 側で適切なサイズを設定します。また、いずれか 1 つのパーティションに対して max
を指定すると、残りの領域全てを使用することができるようになります。
サイズは割合で設定することもできます。たとえば 10% と指定すると、ハードディスク全体もしくはボリュームグループの 10% 分を使用することができます。必要に応じて auto
, max
, size
, 割合を組み合わせて使用することもできます。
<size>10G</size>
openSUSE Leap 15 以降では、全ての値 (auto
と max
を含む) をパーティションのサイズ変更時にも使用できるようになっています。
AutoYaST 側でパーティションのフォーマットを行うかどうかを指定します。 create
を true
に設定した場合は、この値についても true
を設定しておいたほうが良いでしょう。
<format config:type="boolean">false</format>
任意指定です。ルートパーティション ( /
) の場合、既定値は btrfs
に、データパーティションの場合、既定値は xfs
になります。指定可能な値は下記のとおりです:
btrfs
ext2
ext3
ext4
fat
xfs
swap
<filesystem config:type="symbol">ext3</filesystem>
任意指定です。 mkfs
に渡すオプション文字列を指定します。なお、この文字列はどうしても必要な場合にのみ設定してください (詳しくは、作成するファイルシステムの mkfs マニュアルページをお読みください) 。
<mkfs_options>-I 128</mkfs_options>
このパーティションのパーティション番号を指定します。 create=false
もしくは LVM を使用しようとしている場合、 partition_nr
でパーティションの番号を指定することができます。
<partition_nr config:type="integer">2</partition_nr>
partition_id
ではパーティションの ID を設定します。 Linux パーティションでは 131 、スワップパーティションでは 130 が自動的に設定されますが、それ以外の ID を設定したい場合は、これで設定を行ってください。既定値は Linux パーティションの場合は 131
, スワップパーティションの場合は 130
です。
<partition_id config:type="integer">131</partition_id>
FAT16 (MS-DOS): 6 |
NTFS (MS-DOS): 7 |
FAT32 (MS-DOS): 12 |
拡張 FAT16 (MS-DOS): 15 |
DIAG, Diagnostics and firmware (MS-DOS, GPT): 18 |
PPC PReP ブートパーティション (MS-DOS, GPT): 65 |
スワップ (MS-DOS, GPT, DASD, implicit): 130 |
Linux (MS-DOS, GPT, DASD): 131 |
Intel Rapid Start Technology (MS-DOS, GPT): 132 |
LVM (MS-DOS, GPT, DASD): 142 |
EFI システムパーティション (MS-DOS, GPT): 239 |
MD RAID (MS-DOS, GPT, DASD): 253 |
BIOS ブート (GPT): 257 |
Windows 基本データ (GPT): 258 |
EFI (GPT): 259 |
Microsoft 予約 (GPT): 261 |
任意指定です。指定可能な値は primary
です。パーティションテーブルに msdos
形式を使用している場合、この要素でパーティションの種類を primary
(プライマリ) に設定することができます。 gpt
パーティションテーブルを使用している場合、このような区別はありませんので、値を設定しても無視されます。
<partition_type>primary</partition_type>
パーティション番号の代わりに、 device
(デバイス), label
(ラベル), uuid
(UUID), path
(udev パス), id
(udev ID) などでパーティションをマウントするよう設定することができます。
上述の label
と uuid
の説明をお読みください。既定値は YaST 側で規定されていますが、通常は id
です。
<mountby config:type="symbol">label</mountby>
btrfs のファイルシステムで作成するサブボリュームの一覧を指定します。これは btrfs を使用する場合にのみ意味のある項目です。詳しくは 4.5.3.3項 「btrfs サブボリューム」 をお読みください。
パーティションの設定内に subvolumes
セクションが存在しない場合、 AutoYaST は指定したマウントポイント内に、既定のサブボリュームセットを作成します。
<subvolumes config:type="list"> <path>tmp</path> <path>opt</path> <path>srv</path> <path>var</path> ... </subvolumes>
btrfs のサブボリュームを作成すべきかどうかを指定します。既定値は true
ですが、 false
に設定した場合、サブボリュームは作成されなくなります。
btrfs のサブボリュームに設定するプレフィクス (前置) 名を指定します。何もプレフィクスを指定したくない場合は、空の値を設定してください:
<subvolumes_prefix><![CDATA[]]></subvolumes_prefix>
既定では @
が設定されています。
このパーティションがボリュームグループ内の論理ボリュームである場合、ここで論理ボリュームの名前を指定します (drive
設定内の type
パラメータもお読みください) 。
<lv_name>opt_lv</lv_name>
LVM のストライピングを設定するための整数です。どれだけの数のデバイスにデータを分散させるのかを指定します。
<stripes config:type="integer">2</stripes>
各ブロックのサイズを KB 単位で指定します。
<stripesize config:type="integer">4</stripesize>
このパーティションが LVM のボリュームグループの一部として使用されている物理パーティションである場合は、ここでボリュームグループの名前を指定する必要があります。
<lvm_group>system</lvm_group>
LVM 論理ボリュームが LVM の thin プール内に存在すべきである場合は、 pool
の値を true
にしなければなりません。
<pool config:type="boolean">true</pool>
この thin 論理ボリュームに対して、データストアとして使用する LVM thin プールの名前を指定します。ここに何らかの値を設定すると、このボリュームは thin 論理ボリュームとして使用されるようになります。
<used_pool>my_thin_pool</used_pool>
この物理ボリュームが RAID アレイの一部である場合は、ここで RAID アレイの名前を指定します。
<raid_name>/dev/md/0</raid_name>
RAID のオプションを指定します。なお、 partition
内に RAID のオプションを設定するのは非推奨になっています。詳しくは 4.5.6項 「ソフトウエア RAID」 をお読みください。
このデバイスを bcache
のバッキングデバイス として使用する場合は、ここで bcache
のデバイス名を指定します。詳しくは 4.5.8項 「bcache
の設定」 をお読みください。
<bcache_backing_for>/dev/bcache0</bcache_backing_for>
このデバイスを bcache
のキャッシュデバイス として使用する場合は、ここで bcache
のデバイス名を指定します。詳しくは 4.5.8項 「bcache
の設定」 をお読みください。
<bcache_caching_for config:type="list"><listentry>/dev/bcache0</listentry></bcache_caching_for>
openSUSE Leap 15 およびそれ以降では、サイズ変更は物理ディスクパーティションと LVM ボリュームの両方に対して動作するようになっています。
<resize config:type="boolean">false</resize>
4.5.3.2項 「パーティションの設定」 で説明しているとおり、それぞれの btrfs ファイルシステムに対して、必要なサブボリュームを定義することができます。最もシンプルな形態では、下記のようになります:
<subvolumes config:type="list"> <path>usr/local</path> <path>tmp</path> <path>opt</path> <path>srv</path> <path>var</path> </subvolumes>
なお、各サブボリュームに対する追加設定を行うこともできます。たとえばクオータの設定やコピーオンライト機構の有効化などがそれにあたります。具体的には、下記の例のような形式で設定してください:
<subvolumes config:type="list"> <listentry>usr/local</listentry> <listentry> <path>tmp</path> <referenced_limit>1 GiB</referenced_limit> </listentry> <listentry>opt</listentry> <listentry>srv</listentry> <listentry> <path>var/lib/pgsql</path> <copy_on_write config:type="boolean">false</copy_on_write> </listentry> </subvolumes>
path
サブボリュームのマウントポイントを指定します。
<path>tmp</tmp>
必須です。 path
要素が指定されていない場合、 AutoYaST はそのサブボリュームを無視するようになります。
copy-on-write
このサブボリュームに対して、コピーオンライト機構を有効化するかどうかを指定します。
<copy-on-write config:type="boolean">false</copy-on-write>
任意指定です。既定値は false
です。
referenced_limit
サブボリュームに対するクォータを指定します。
<referenced_limit>1 GiB</referenced_limit>
任意指定です。既定値は unlimited
(無制限) です。 btrfs では、 2 種類の制限 (referenced
(参照サイズ) および exclusive
(排他サイズ)) を設定することができますが、この要素では前者を指定します。
ディストリビューション側で既定のサブボリュームが設定されている場合 (たとえば openSUSE Leap では @
) 、この既定のサブボリュームの名前がこの一覧の中に自動的に追加されます。このような動作を無効化したい場合は、 4.5.3.1項 「ドライブの設定」 で説明しているとおりに subvolumes_prefix
を設定してください。
<subvolumes_prefix><![CDATA[]]></subvolumes_prefix>
AutoYaST では、 4.5.3.1項 「ドライブの設定」 で説明している disklabel
の値を none
に設定することで、パーティションを作成せずにディスク全体を使用することができます。このような場合、 drive
内の最初の partition
内の設定が、ディスク全体に対して適用されるようになります。
下記の例では、 2 番目のディスク ( /dev/sdb
) 全体を /home
のファイルシステムとして使用しています。
<partitioning config:type="list"> <drive> <device>/dev/sda</device> <partitions config:type="list"> <partition> <create config:type="boolean">true</create> <format config:type="boolean">true</format> <mount>/</mount> <size>max</size> </partition> </partitions> </drive> <drive> <device>/dev/sdb</device> <disklabel>none</disklabel> <partitions config:type="list"> <partition> <format config:type="boolean">true</format> <mount>/home</mount> </partition> </partitions> </drive>
これに加えて、ディスク全体を LVM 物理ボリュームやソフトウエア RAID のメンバーとして使用することもできます。 LVM やソフトウエア RAID に関する詳細は、 4.5.5項 「論理ボリュームマネージャ (Logical Volume Manager (LVM))」 および 4.5.6項 「ソフトウエア RAID」 をお読みください。
後方互換性を確保する目的で、 <partition_nr>
の要素を 0
に設定しても、同じ結果になるようになっています。ただし <partition_nr>
要素は、 openSUSE Leap 15 およびそれ以降で廃止予定とされていることに注意してください。
の方式を使用している場合、 AutoYaST は不完全なプロファイルからでも適切なパーティションプランを作成することができます。下記のプロファイルでは、パーティション配置に関するいくつかの詳細のみを指定し、それ以外を AutoYaST 側に任せる設定を示しています。
下記はドライブが 1 台だけ搭載されたシステムでの例で、事前には何もパーティションを作成していないため、指定されたパーティションプランに従って自動的にパーティションを作成するように指定しています。なお、何もドライブを指定しない場合、ドライブは自動的に検出されます。
<partitioning config:type="list"> <drive> <device>/dev/sda</device> <use>all</use> </drive> </partitioning>
さらに詳しい例では、既存のパーティションが存在する場合や複数のドライブが存在する場合の処理方法について示しています。
<partitioning config:type="list"> <drive> <device>/dev/sda</device> <use>all</use> <partitions config:type="list"> <partition> <mount>/</mount> <size>10G</size> </partition> <partition> <mount>swap</mount> <size>1G</size> </partition> </partitions> </drive> <drive> <device>/dev/sdb</device> <use>free</use> <partitions config:type="list"> <partition> <filesystem config:type="symbol">ext4</filesystem> <mount>/data1</mount> <size>15G</size> </partition> <partition> <filesystem config:type="symbol">xfs</filesystem> <mount>/data2</mount> <size>auto</size> </partition> </partitions> </drive> </partitioning>
通常は AutoYaST が 1 つずつパーティションを削除していくことから、この設定を行う必要はありません。ですが、 AutoYaST に対してパーティションを個別に削除するのではなく、敢えて新しいパーティションテーブルを作成させたい場合、下記のような設定が必要になります。
具体的には、 drive
セクション内に下記を追加してください:
<initialize config:type="boolean">true</initialize>
このような設定を行うことで、 AutoYaST は既存のパーティションの分析やパーティションプランの作成を行う前に、パーティションテーブルの消去を行うようになります。この設定を行うと、ご存じのとおり既存のパーティション内にある全てのデータは消去され、保持できなくなります。
既定では、マウントすべきファイルシステムは /etc/fstab
内にデバイス名で指定されます。この指定方法は UUID やボリュームラベルに変更することもできます。ただし、全てのファイルシステムが UUID やボリュームラベルでのマウントに対応しているわけではないことに注意してください。パーティションのマウント方法を指定するには、 symbol
型で指定する mountby
プロパティを設定してください。設定可能な値は下記のとおりです:
device
(既定値)
label
UUID
ラベルを利用して新しいパーティションをマウントする場合、 label
プロパティで指定した名前をボリュームラベルとして使用します。
また、 /etc/fstab
の 4 番目の列に指定することのできる、マウントオプションを追加することもできます。複数のオプションはカンマで区切ります。指定可能な値は下記のとおりです:
ro
)ファイルシステムに対して書き込みを行うことができなくなります。既定値は false
です。
noatime
)ファイルが読み込まれた際、アクセス日時を更新しないようにします。既定値は false
です。
user
)一般ユーザからファイルシステムをマウントできるようにします。既定値は false
です。
ordered
, journal
, writeback
)journal
データを書き込む際、実際のファイルシステムに書き込む前にジャーナルに書き込むようにします。
ordered
メタデータをジャーナルに書き込む前に、全てのデータを直接実際のファイルシステムに書き込みます。
writeback
データの書き込み順序を維持しません。
acl
)ファイルシステムに対してアクセス制御リストを有効化します。
user_xattr
)ファイルシステムに対して拡張ユーザ属性を使用できるようにします。
<partitions config:type="list"> <partition> <filesystem config:type="symbol">ext4</filesystem> <format config:type="boolean">true</format> <fstopt>ro,noatime,user,data=ordered,acl,user_xattr</fstopt> <mount>/local</mount> <mountby config:type="symbol">uuid</mountby> <partition_id config:type="integer">131</partition_id> <size>10G</size> </partition> </partitions>
ファイルシステムの種類が異なると、使用できるオプションもこことなります。オプションを設定する倍は、あらかじめ対応するドキュメンテーションをお読みください。
状況によっては、特定のパーティションのみをフォーマットして、それ以外のパーティションを何もせずにそのままにしておきたいような場合があります。たとえば異なる Linux インストールを共存させたいような場合や、他のオペレーティングシステムをインストールしたままにしておきたいような場合、これらのパーティションは消去せずに維持したままにすることができます。もちろんパーティション内のデータについても維持することができます。
このような構成を作成する場合、インストール先のシステムとそのハードディスクに対して、さまざまな考慮を行う必要があります。構成内容にもよりますが、インストール先のハードディスクのパーティションテーブルとパーティションの ID 、サイズと番号をそれぞれ知っておく必要があります。これらのデータをもとにして、 AutoYaST に対して特定のパーティションの維持を設定し、必要であれば新しいパーティションの作成を行うことになります。
下記の例では、パーティション 1,2,5 をそれぞれ維持し、パーティション 6 を削除して新しい 2 つのパーティションを作成しています。また、パーティション 2 以外を全てフォーマットして使用しています。
<partitioning config:type="list"> <drive> <device>/dev/sdc</device> <partitions config:type="list"> <partition> <create config:type="boolean">false</create> <format config:type="boolean">true</format> <mount>/</mount> <partition_nr config:type="integer">1</partition_nr> </partition> <partition> <create config:type="boolean">false</create> <format config:type="boolean">false</format> <partition_nr config:type="integer">2</partition_nr> <mount>/space</mount> </partition> <partition> <create config:type="boolean">false</create> <format config:type="boolean">true</format> <filesystem config:type="symbol">swap</filesystem> <partition_nr config:type="integer">5</partition_nr> <mount>swap</mount> </partition> <partition> <format config:type="boolean">true</format> <mount>/space2</mount> <size>5G</size> </partition> <partition> <format config:type="boolean">true</format> <mount>/space3</mount> <size>max</size> </partition> </partitions> <use>6</use> </drive> </partitioning>
上記の例では、既存のパーティションテーブルのほか、維持すべきパーティションの番号についても明示的に指定しています。ただし、さまざまな種類のハードディスクや設定が混在しているような環境の場合、これらを明示的に指定することができない場合もあります。下記のシナリオでは、非 Linux OS のシステムと Linux インストール用の専用領域を確保する構成を示しています。
このシナリオでは、 図4.1「パーティションの維持」 の図に示しているとおり、 AutoYaST では新しいパーティションを作成しないように設定します。その代わり、システム内に存在する特定の種類のパーティションを検出し、制御ファイルに書かれたパーティション設定プランに従ってそれらを使用するように構成しています。この場合、パーティションの番号は全く指定しておらず、マウントポイントとパーティションの種類のみを指定しています (たとえばファイルシステムのオプションや暗号化、ファイルシステムの種類などの追加データを設定することもできます) 。
<partitioning config:type="list"> <drive> <partitions config:type="list"> <partition> <create config:type="boolean">false</create> <format config:type="boolean">true</format> <mount>/</mount> <partition_id config:type="integer">131</partition_id> </partition> <partition> <create config:type="boolean">false</create> <format config:type="boolean">true</format> <filesystem config:type="symbol">swap</filesystem> <partition_id config:type="integer">130</partition_id> <mount>swap</mount> </partition> </partitions> </drive> </partitioning>
AutoYaST がストレージデバイスを検出する時点では、プロファイル内のパーティション設定セクションは解釈されていません。そのため、デバイスの暗号化を解除するために、どの鍵を使用すべきなのかを判別できません。たとえば、複数の暗号鍵を使用して暗号化を行っている場合がそれに該当します。このような問題を解決するため、 AutoYaST では設定されている全ての鍵を利用して、デバイスの暗号化解除を試みるようになっています。
LVM を設定するには、上述の通常のパーティション作成を設定して、物理ボリュームを作成しておく必要があります。
下記の例は、 partitioning
リソースで LVM 向けのパーティションを準備する場合の例です。この例では /dev/sda1
を作成したあとフォーマットを行わず、 LVM
の種類を設定し、ボリュームグループ system
に追加を行います。なお、パーティションのサイズはドライブ内の全空き領域分になります。
<partitioning config:type="list"> <drive> <device>/dev/sda</device> <partitions config:type="list"> <partition> <create config:type="boolean">true</create> <lvm_group>system</lvm_group> <partition_type>primary</partition_type> <partition_id config:type="integer">142</partition_id> <partition_nr config:type="integer">1</partition_nr> <size>max</size> </partition> </partitions> <use>all</use> </drive> </partitioning>
<partitioning config:type="list"> <drive> <device>/dev/sda</device> <partitions config:type="list"> <partition> <lvm_group>system</lvm_group> <partition_type>primary</partition_type> <size>max</size> </partition> </partitions> <use>all</use> </drive> <drive> <device>/dev/system</device> <type config:type="symbol">CT_LVM</type> <partitions config:type="list"> <partition> <filesystem config:type="symbol">ext4</filesystem> <lv_name>user_lv</lv_name> <mount>/usr</mount> <size>15G</size> </partition> <partition> <filesystem config:type="symbol">ext4</filesystem> <lv_name>opt_lv</lv_name> <mount>/opt</mount> <size>10G</size> </partition> <partition> <filesystem config:type="symbol">ext4</filesystem> <lv_name>var_lv</lv_name> <mount>/var</mount> <size>1G</size> </partition> </partitions> <pesize>4M</pesize> <use>all</use> </drive> </partitioning>
論理ボリュームに対しても size
に max
を指定することができます。もちろん、いずれか 1 つ (!) の論理ボリュームにしか指定できません。また、 1 つのボリュームグループ内で 2 つの論理ボリュームを max
に設定することもできません。
ソフトウエア RAID デバイスに対するサポートは、 openSUSE Leap 15.2 で大幅に改善されています。
必要であれば、後方互換性維持の目的で残されているソフトウエア RAID の古い設定方法を利用することもできます。詳しくは 4.5.6.1項 「古い書式の使用」 をお読みください。
AutoYaST を使用することで、ソフトウエア RAID デバイスを作成したり構成したりすることができます。対応する RAID レベルは下記のとおりです:
このレベルではディスク性能の強化が行われますが、冗長性は提供 されません 。いずれか 1 台のディスクがクラッシュすると、データの復元は不可能になります。
このレベルでは最大限の冗長性を提供します。 2 台以上のディスクを使用することができます。このレベルでは、全てのディスクに対して同じデータが書き込まれます。いずれか 1 台のディスクが正しく動作している限り、データが失われることはありません。この RAID レベルを使用する場合、使用するパーティションはほぼ同じサイズである必要があります。
このレベルでは多数のディスクの管理と冗長性の両方を提供します。このレベルを使用するには、 3 台以上のディスクが必要です。いずれか 1 台のディスクが壊れても、データが失われることはありませんが、 2 台のディスクが同時に壊れてしまうと、データの復元は不可能になります。
このモードでは、複数のコントローラを介して同じ物理デバイスにアクセスを行います。これはコントローラカードの障害に対して冗長性を提供するものです。このモードを使用するには、少なくとも 2 枚のカードが必要になります。
LVM と同様に、 AutoYaST プロファイル内でのソフトウエア RAID 定義は、 2 つの部品から構成されています:
どのディスクやパーティションを RAID のメンバーとして使用するのかの設定。 RAID メンバーとしての設定は、各デバイス要素内で raid_name
を設定して行います。
drive
セクションによる RAID そのものの定義。
下記の例は、 1 台目のディスクに存在するパーティションと、 2 台目のディスクに存在するパーティションを RAID のメンバーとして、 RAID10 を構成する場合の例です:
<partitioning config:type="list"> <drive> <device>/dev/sda</device> <partitions config:type="list"> <partition> <mount>/</mount> <size>20G</size> </partition> <partition> <raid_name>/dev/md/0</raid_name> <size>max</size> </partition> </partitions> <use>all</use> </drive> <drive> <device>/dev/sdb</device> <disklabel>none</disklabel> <partitions config:type="list"> <partition> <raid_name>/dev/md/0</raid_name> </partition> </partitions> <use>all</use> </drive> <drive> <device>/dev/md/0</device> <partitions config:type="list"> <partition> <mount>/home</mount> <size>40G</size> </partition> <partition> <mount>/srv</mount> <size>10G</size> </partition> </partitions> <raid_options> <chunk_size>4</chunk_size> <parity_algorithm>near_2</parity_algorithm> <raid_type>raid10</raid_type> </raid_options> <use>all</use> </drive> </partitioning>
ソフトウエア RAID 内にパーティションを作成したくない場合は、通常のディスクと同様に disklabel
を none
に設定してください。下記の例では、単純化のために RAID の drive
セクションのみを示しています:
<drive> <device>/dev/md/0</device> <disklabel>none</disklabel> <partitions config:type="list"> <partition> <mount>/home</mount> <size>40G</size> </partition> </partitions> <raid_options> <chunk_size>4</chunk_size> <parity_algorithm>near_2</parity_algorithm> <raid_type>raid10</raid_type> </raid_options> <use>all</use> </drive>
インストーラの自己更新機能が有効化されている場合、 openSUSE Leap 15 でソフトウエア RAID のパーティションを作成することができます。ただし、それ以前のバージョンではこのような仕組みには対応していないため、ソフトウエア RAID の定義が少し異なることになります。
本章では、後方互換性のために提供されている古い形式の設定について説明しています。
古い形式で RAID を設定する場合、下記の点に注意してください:
RAID デバイスは必ず /dev/md
になります。
partition_nr
プロパティは、 MD デバイスの番号を判断するために使用します。たとえば partition_nr
に 0 を設定すると、 /dev/md/0
が設定されます。複数の partition
セクションを設定すると、複数のソフトウエア RAID ( /dev/md/0
, /dev/md/1
,...) を作成する意味になります。
RAID 関連の全てのオプションは、 raid_options
内に含める必要があります。
<partitioning config:type="list"> <drive> <device>/dev/sda</device> <partitions config:type="list"> <partition> <partition_id config:type="integer">253</partition_id> <format config:type="boolean">false</format> <raid_name>/dev/md0</raid_name> <raid_type>raid1</raid_type> <size>4G</size> </partition> <!-- /dev/sda に配置する通常のパーティション設定 (例: /, swap) をここに記述します --> </partitions> <use>all</use> </drive> <drive> <device>/dev/sdb</device> <partitions config:type="list"> <partition> <format config:type="boolean">false</format> <partition_id config:type="integer">253</partition_id> <raid_name>/dev/md0</raid_name> <size>4gb</size> </partition> </partitions> <use>all</use> </drive> <drive> <device>/dev/md</device> <partitions config:type="list"> <partition> <filesystem config:type="symbol">ext4</filesystem> <format config:type="boolean">true</format> <mount>/space</mount> <partition_id config:type="integer">131</partition_id> <partition_nr config:type="integer">0</partition_nr> <raid_options> <chunk_size>4</chunk_size> <parity_algorithm>near_2</parity_algorithm> <raid_type>raid10</raid_type> </raid_options> </partition> </partitions> <use>all</use> </drive> </partitioning>
下記のような XML 構造内に、必要な要素を追加していきます:
<partition> <raid_options> ... </raid_options> </partition>
単位付きの表記 (例: 32M) のほか、単純に数値のみを指定することもできます。数値のみを指定した場合は、キロバイト単位で指定したものと見なされます。なお、 RAID1 の場合は chunk_size
を指定してはいけません。また、 RAID レベルを指定していない場合、 raid1
が既定値であることにも注意してください。
<chunk_size>4</chunk_size>
設定可能な値は下記のとおりです:
left_asymmetric
, left_symmetric
, right_asymmetric
, right_symmetric
, first
, last
, first_6
, left_asymmetric_6
, left_symmetric_6
, right_asymmetric_6
, right_symmetric_6
, near_2
, offset_2
, far_2
, near_3
, offset_3
, far_3
.
以前のバージョンの AutoYaST との間での互換性維持のため、下記のような別名も指定することができます:
parity_first
, parity_last
, parity_first_6
, n2
, o2
, f2
, n3
, o3
, f3
.
設定可能な値は RAID のレベル (例: raid5
) と RAID 内のデバイス数によって異なります。なお、 RAID0 と RAID1 はパリティによる冗長化を提供しないため、これらのデバイスに対してはオプションを指定してはなりません。
<parity_algorithm>left_asymmetric</parity_algorithm>
値には raid0
, raid1
, raid5
, raid6
, raid10
のいずれかを指定します。
<raid_type>raid1</raid_type>
既定値は raid1
です。
この一覧には、物理デバイスの設定順序を指定します:
<device_order config:type="list"><device>/dev/sdb2</device><device>/dev/sda1</device>...</device_order>
この設定は任意設定で、既定ではアルファベット順です。
AutoYaST ではマルチパスデバイスを処理することができます。マルチパスデバイスを使用するには、まず 例4.16「マルチパスデバイスの使用」 で説明しているように、マルチパスサポートの有効化を行う必要があります。それ以外にも、カーネルのコマンドラインに LIBSTORAGE_MULTIPATH_AUTOSTART=ON
を追加してもかまいません。
<general> <storage> <start_multipath config:type="boolean">true</start_multipath> </storage> </general> <partitioning> <drive> <partitions config:type="list"> <partition> <size>20G</size> <mount>/</mount> <filesystem config:type="symbol">ext4</filesystem> </partition> <partition> <size>auto</size> <mount>swap</mount> </partition> </partitions> <type config:type="symbol">CT_DISK</type> <use>all</use> </drive> </partitioning>
デバイスを指定したい場合は、マルチパスデバイスを表す World Wide Identifier (WWID) かデバイス名 (例: /dev/dm-0
) 、もしくは /dev/disk
以下のデバイスパスを指定してください。
たとえば 例4.17「マルチパスデバイスの列挙」 のような multipath
コマンドの出力があった場合、 /dev/mapper/14945540000000000f86756dce9286158be4c6e3567e75ba5
のほか、 /dev/dm-3
や /dev/disk
以下のデバイスパス (例: 例4.18「WWID を使用してマルチパスデバイスを指定する場合の例」) を指定することができるほか、いずれかのデバイスパス (例: /dev/sda
or /dev/sdb
) を指定してもかまいません。
# multipath -l 14945540000000000f86756dce9286158be4c6e3567e75ba5 dm-3 ATA,VIRTUAL-DISK size=40G features='0' hwhandler='0' wp=rw |-+- policy='service-time 0' prio=1 status=active | `- 2:0:0:0 sda 8:0 active ready running `-+- policy='service-time 0' prio=1 status=enabled `- 3:0:0:0 sdb 8:16 active ready running
<drive> <partitions config:type="list"> <device>/dev/mapper/14945540000000000f86756dce9286158be4c6e3567e75ba5</device> <partition> <size>20G</size> <mount>/</mount> <filesystem config:type="symbol">ext4</filesystem> </partition> </partitions> <type config:type="symbol">CT_DISK</type> <use>all</use> </drive>
bcache
の設定 #Edit sourcebcache
は複数の高速なドライブを利用して、 1 つまたは複数の低速なドライブを高速化するための仕組みです。たとえば特定の高速なドライブをキャッシュとして使用し、巨大で遅いドライブの性能を改善したりすることができます。
openSUSE Leap での bcache に関する詳細は、 https://www.suse.com/c/combine-the-performance-of-solid-state-drive-with-the-capacity-of-a-hard-drive-with-bcache-and-yast/ (英語) に書かれているブログの記事をお読みください。
bcache
のデバイスを設定するには、 AutoYaST 側で下記のようなプロファイル設定が必要となります:
(遅いほうの) ブロックデバイスを バッキングデバイス として設定するには、 bcache_backing_for
要素を使用します。
(早いほうの) ブロックデバイスを キャッシュデバイス して設定するには、 bcache_caching_for
要素を使用します。複数のドライブの速度を上げるために、 1 台のデバイスを使用するような設定も行うことができます。
bcache
デバイスの配置方法を指定するには、 drive
セクション内に type
要素が CT_BCACHE
であるものを設定します。 bcache
デバイス内には、パーティションを含めることもできます。
bcache
の定義 #<partitioning config:type="list"> <drive> <device>/dev/sda</device> <type config:type="symbol">CT_DISK</type> <use>all</use> <enable_snapshots config:type="boolean">true</enable_snapshots> <partitions config:type="list"> <partition> <filesystem config:type="symbol">btrfs</filesystem> <mount>/</mount> <create config:type="boolean">true</create> <size>max</size> </partition> <partition> <filesystem config:type="symbol">swap</filesystem> <mount>swap</mount> <create config:type="boolean">true</create> <size>2GiB</size> </partition> </partitions> </drive> <drive> <type config:type="symbol">CT_DISK</type> <device>/dev/sdb</device> <disklabel>msdos</disklabel> <use>all</use> <partitions config:type="list"> <partition> <!-- It can serve as caching device for several bcaches --> <bcache_caching_for config:type="list"> <listentry>/dev/bcache0</listentry> </bcache_caching_for> <size>max</size> </partition> </partitions> </drive> <drive> <type config:type="symbol">CT_DISK</type> <device>/dev/sdc</device> <use>all</use> <disklabel>msdos</disklabel> <partitions config:type="list"> <partition> <!-- It can serve as backing device for one bcache --> <bcache_backing_for>/dev/bcache0</bcache_backing_for> </partition> </partitions> </drive> <drive> <type config:type="symbol">CT_BCACHE</type> <device>/dev/bcache0</device> <bcache_options> <cache_mode>writethrough</cache_mode> </bcache_options> <use>all</use> <partitions config:type="list"> <partition> <mount>/data</mount> <size>20GiB</size> </partition> <partition> <mount>swap</mount> <filesystem config:type="symbol">swap</filesystem> <size>1GiB</size> </partition> </partitions> </drive> </partitioning>
現時点では、 bcache_options
で使用することのできるオプションは cache_mode
だけとなります。
bcache
のキャッシュモードを設定します。設定可能な値は下記のとおりです:
writethrough
writeback
writearound
none
<cache_mode>writethrough</cache_mode>
btrfs では複数のデバイスにまたがった単一ボリュームを作成することができます。この仕組みにより、 Linux カーネル内蔵の mdraid
サブシステムのようなソフトウエア RAID に似た実装を使用することができるようになります。 マルチデバイス型の btrfs には、他の RAID 実装では提供されていないいくつかの利点があります。たとえば一方の RAID レベルから他方の RAID レベルに動的に移行できる機能や、ファイル単位での RAID レベルの設定などがあります。ただし、 openSUSE Leap 15 . 7 では、これら全ての機能をサポートしているわけではないことに注意してください。
AutoYaST では CT_BTRFS
を指定することで、マルチデバイス型の btrfs を設定することができます。また、 device
属性では任意の名前を設定して、マルチデバイス型の btrfs を識別することができます。
RAID として使用する場合は、まず必要な全てのブロックデバイス (パーティション、 LVM 論理ボリュームなど) を作成しておいて、それらを btrfs ファイルシステムに割り当てておく必要があります。
下記の例では、シンプルなマルチデバイス型 btrfs 設定を示しています:
<partitioning config:type="list"> <drive> <device>/dev/sda</device> <disklabel>none</disklabel> <partitions> <partition> <btrfs_name>root_fs</btrfs_name> </partition> </partitions> <use>all</use> </drive> <drive> <device>/dev/sdb</device> <disklabel>gpt</disklabel> <partitions> <partition> <partition_nr>1</partition_nr> <size>4gb</size> <filesystem>ext4</filesystem> <btrfs_name>root_fs</btrfs_name> </partition> </partitions> <use>all</use> </drive> <drive> <device>root_fs</device> <type config:type="symbol">CT_BTRFS</type> <partitions> <partition config:type="list> <mount>/</mount> </partition> </partitions> <btrfs_options> <raid_leve>raid1</raid_level> <metadata_raid_leve>raid1</metadata_raid_level> </btrfs_options> </drive> </partitioning>
サポート対象となるデータおよびメタデータの RAID レベルは、 default
, single
, dup
, raid0
, raid1
, raid10
のいずれかです。既定ではファイルシステムのメタデータは 2 つのデバイスに複製され、データは全てのデバイスに複製されます。デバイスが 1 つしか存在しない場合、メタデータは 1 つのデバイス内で複製されます。
マルチデバイス型の btrfs ファイルシステムを設定する際には、下記の点に注意してください:
マルチデバイス型の btrfs ファイルシステム内に組み込まれるよう、必要なデバイスに対しては btrfs_name
属性を設定する必要があります。
btrfs 関連のオプションを設定する場合は、 CT_BTRFS
ドライブの btrfs_options
リソース内に記述します。
AutoYaST では、 openSUSE Leap を Network File System (NFS) の共有内にインストールすることもできます。これを実現するには、まず CT_NFS
の種類でドライブを作成し、デバイス名として NFS の共有名を ( サーバ:パス ) の形式で指定します。マウントポイントに関する情報は、最初のパーティションセクション内に記述します。なお、 NFS ドライブの場合、最初のパーティションしか使用されないことに注意してください。
システムをインストールした後の NFS クライアントやサーバの設定方法については、 4.20項 「NFS クライアントおよびサーバ」 をお読みください。
<partitioning config:type="list"> <drive> <device>192.168.1.1:/exports/root_fs</device> <type config:type="symbol">CT_NFS</type> <use>all</use> <partitions config:type="list"> <partition> <mount>/</mount> <fstopt>nolock</fstopt> </partition> </partitions> </drive> </partitioning>
tmpfs
の設定 #Edit sourceAutoYaST では type
要素に CT_TMPFS
を指定することで、 tmpfs
仮想ファイルシステムを設定することができます。この場合、 1 つの partition
セクションが 1 つの tmpfs
ファイルシステムを表すように設定します。
tmpfs
の設定例 #<partitioning config:type="list"> <drive> <type config:type="symbol">CT_TMPFS</type> <partitions config:type="list"> <partition> <mount>/srv</mount> <fstopt>size=512M</fstopt> </partition> <partition> <mount>/temp</mount> </partition> </partitions> <drive> <partitioning>
tmpfs
は ext4 や btrfs などの通常のファイルシステムとは異なり、 mount
要素 (必須) と fstopt
要素のみを指定します。 fstopt
要素はサイズや制限、モードなどのファイルシステムの属性を設定します。設定可能な値について、詳しくは tmpfs
のマニュアルページをお読みください。
iscsi-client
リソースを使用することで、インストール先のマシンを iSCSI クライアントとして設定することができます。
<iscsi-client> <initiatorname>iqn.2013-02.de.suse:01:e229358d2dea</initiatorname> <targets config:type="list"> <listentry> <authmethod>None</authmethod> <portal>192.168.1.1:3260</portal> <startup>onboot</startup> <target>iqn.2001-05.com.doe:test</target> <iface>default</iface> </listentry> </targets> <version>1.0</version> </iscsi-client>
InitiatorName
は /etc/iscsi/initiatorname.iscsi
からの値を指定します。 iBFT を使用している場合、この値は BIOS から設定されるため、 BIOS セットアップで変更する必要があります。
YaST モジュールのバージョンを指定します。既定値: 1.0
ターゲットの一覧を指定します。各項目には下記の値を設定することができます:
認証方式: None/CHAP
ポータルアドレス
値: manual/onboot
ターゲット名
インターフェイス名
fcoe_cfg
リソースを使用することで、 Fibre Channel over Ethernet (FCoE) の設定を行うことができます。
<fcoe-client> <fcoe_cfg> <DEBUG>no</DEBUG> <USE_SYSLOG>yes</USE_SYSLOG> </fcoe_cfg> <interfaces config:type="list"> <listentry> <dev_name>eth3</dev_name> <mac_addr>01:000:000:000:42:42</mac_addr> <device>Gigabit 1313</device> <vlan_interface>200</vlan_interface> <fcoe_vlan>eth3.200</fcoe_vlan> <fcoe_enable>yes</fcoe_enable> <dcb_required>yes</dcb_required> <auto_vlan>no</auto_vlan> <dcb_capable>no</dcb_capable> <cfg_device>eth3.200</cfg_device> </listentry> </interfaces> <service_start> <fcoe config:type="boolean">true</fcoe> <lldpad config:type="boolean">true</lldpad> </service_start> </fcoe-client>
値: yes
もしくは no
DEBUG
は、 fcoe サービススクリプトや fcoemon から出力することのできるデバッグメッセージを、有効化するかどうかを指定します。
USE_SYSLOG
を yes に設定すると、メッセージを syslog に送信するようになります。
VLAN や FCoE の設定状態を含む、ネットワークカードの一覧を指定します。
値: yes
もしくは no
fcoe
と lldpad
の各サービスを、システムの起動時に開始するかどうかを指定します。
fcoe
サービスを開始すると、 FCoE インターフェイスを制御し、 lldpad
デーモンとの通信を確立する Fibre Channel over Ethernet サービスデーモン fcoemon
を起動します。
lldpad
サービスは Link Layer Discovery Protocol agent daemon (lldpad
) と呼ばれるサービスを提供するもので、このサービスは fcoemon
に対して DCB (Data Center Bridging) 機能とインターフェイスの設定を通知します。
言語やタイムゾーン、キーボードの設定などを行います。
<language> <language>en_GB</language> <languages>de_DE,en_US</languages> </language>
第一言語
第二言語 (複数可、カンマ区切り)
利用可能な言語の一覧については、 /usr/share/YaST2/data/languages
ファイルをご覧ください。
第一言語に指定した値が正しくない場合、第一言語は既定値である en_US
に設定されます。
<timezone> <hwclock>UTC</hwclock> <timezone>Europe/Berlin</timezone> </timezone>
ハードウエアの時計がローカルの時刻 (localtime) を示しているのか、 UTC を示しているのかを指定します。
値: localtime
もしくは UTC
タイムゾーンを指定します。
設定可能なタイムゾーンの一覧については、 /usr/share/YaST2/data/timezone_raw.ycp
ファイルをご覧ください。
<keyboard> <keymap>german</keymap> </keyboard>
キーボードレイアウト
キーマップコードの値、もしくはキーマップの別名値を指定します。設定可能なキーボードレイアウトの一覧については、 /usr/share/YaST2/lib/y2keyboard/keyboards.rb
ファイルをご覧ください (例: english-us, us, english-uk, japanese
) 。
パターンやパッケージは下記のようにして設定します:
<software> <patterns config:type="list"> <pattern>directory_server</pattern> </patterns> <packages config:type="list"> <package>apache</package> <package>postfix</package> </packages> <do_online_update config:type="boolean">true</do_online_update> </software>
値にはパッケージ名もしくはパターン名を指定します。バージョンが変わることによってパッケージ名が変更されることもありますが、その場合はプロファイル内に設定した名前を変更する必要があります。
また、正規表現を利用してパッケージ名やパターン名を選択することもできます。この場合、 AutoYaST は指定した条件に合致する全てのパッケージをインストールしようとします。なお、正規表現はスラッシュで括らなければならないことに注意してください。たとえば 例4.29「正規表現を利用したパッケージ選択」 の例では、 nginx
で始まる名前の全てのパッケージ (nginx
や nginx-macros
など) を選択することになります。
<software> <packages config:type="list"> <package>/nginx.*/</package> </packages> </software>
インストールにかかる時間を削減するため、イメージを利用してインストールすることができます。
<!-- 注意! software セクション内には記述しません! --> <deploy_image> <image_installation config:type="boolean">false</image_installation> </deploy_image>
DVD-ROM 内に用意されているパッケージに加えて、必要であればカスタマイズしたカーネルなど、外部のパッケージをインストールすることもできます。なお、カスタマイズしたカーネルを使用する場合は、 SUSE パッケージとの互換性があるものでなければならないほか、同じ場所にインストールしなければならないことにも注意してください。
従来のバージョンとは異なり、独自のパッケージや外部のパッケージをインストールするにあたって、特別なリソースを設定する必要はありません。その代わり、インストール元のリポジトリに必要なパッケージを追加したあと、パッケージデータベースを再作成する必要があります。
このような作業に対応するため、リポジトリ内に存在するパッケージを調べてパッケージデータベースを作成するためのスクリプトが用意されています。これは /usr/bin/create_package_descr
というコマンドになります。このコマンドは openSUSE Build Service 内の inst-source-utils
パッケージ内に含まれています。なお、データベースを作成する際、全ての言語は英語にリセットされます。
DVD 内のファイルを /usr/local/DVDs/LATEST
に展開します。
>
cp /tmp/inst-source-utils-2016.7.26-1.2.noarch.rpm /usr/local/DVDs/LATEST/suse/noarch>
cd /usr/local/DVDs/LATEST/suse>
create_package_descr -d /usr/local/CDs/LATEST/suse
上記の例では、 /usr/local/CDs/LATEST/suse
以下にアーキテクチャ (例: x86_64
) に依存するパッケージと依存しないパッケージ (noarch
) の両方が存在するものとします。他のアーキテクチャの場合は少し異なるかもしれません。
この方式を使用することで、あらかじめ決められた最新のパッケージを提供する最新のリポジトリを提供できるようになります。また、この方式を使用することで、独自の CD-ROM を簡単に作成することもできます。
たとえば SDK (SUSE Software Development Kit) のような独自モジュールを追加したい場合は、インストール元となるディレクトリのルートディレクトリに対して、 add_on_products.xml
ファイルを追加します。
下記の例では、基本製品のリポジトリ内に SDK モジュールを追加する方法を示しています。 SDK のリポジトリそのものは /sdk
内にあるものとします。
add_on_products.xml
#このファイルは、基本製品内に SDK モジュールを追加するためのファイルです。
<?xml version="1.0"?> <add_on_products xmlns="http://www.suse.com/1.0/yast2ns" xmlns:config="http://www.suse.com/1.0/configns"> <product_items config:type="list"> <product_item> <name>SUSE Linux Enterprise Software Development Kit</name> <url>relurl:////sdk?alias=SLE_SDK</url> <path>/</path> <-- Users are asked whether to add such a product --> <ask_user config:type="boolean">false</ask_user> <-- Defines the default state of pre-selected state in case of ask_user used. --> <selected config:type="boolean">true</selected> </product_item> </product_items> </add_on_products>
上記のような特別な例のほかにも、その他のモジュールや拡張、アドオン製品などをそれぞれ別々のディレクトリに配置して、 AutoYaST のインストール時に追加するようなことも実現することができます。
製品やモジュールの情報を持たないリポジトリであっても、インストール時に追加を行うことができます。これらは その他のアドオン
と呼ばれます。
<add-on> <add_on_products config:type="list"> <listentry> <media_url>cd:///sdk</media_url> <product>sle-sdk</product> <alias>SLE SDK</alias> <product_dir>/</product_dir> <priority config:type="integer">20</priority> <ask_on_error config:type="boolean">false</ask_on_error> <confirm_license config:type="boolean">false</confirm_license> <name>SUSE Linux Enterprise Software Development Kit</name> </listentry> </add_on_products> <add_on_others config:type="list"> <listentry> <media_url>https://download.opensuse.org/repositories/YaST:/Head/openSUSE_Leap_15.2/</media_url> <alias>yast2_head</alias> <priority config:type="integer">30</priority> <name>Latest YaST2 packages from OBS</name> </listentry> </add_on_others> </add-on>
add_on_others
と add_on_products
のセクションでは、それぞれ同じ値に対応しています:
製品の URL を指定します。 cd:///
, http://
, ftp://
などのプレフィクスを使用することができます。この項目は必須です。
SUSE Linux Enterprise のパッケージ DVD などのように複数の製品が含まれるメディアを使用する場合は、 URL パスが複数製品のメディアのルートディレクトリを指し示すように設定し、 product_dir
でそれぞれの製品を指定する必要があります (詳しくは下記をお読みください) 。
アドオンが製品である場合、内部向けの製品名を指定します。 zypper products
を実行すると、インストール済みの製品名を表示することができます。
リポジトリの別名を指定します。ユーザ側で任意の名前を設定することができます。
製品のサブディレクトリを指定します。この属性は、 SUSE Linux Enterprise のパッケージ DVD など、複数の製品が含まれるメディアである場合にのみ使用します。
リポジトリに対して設定する libzypp の優先順位を指定します。 1 が最も高い優先順位を表し、数値が大きくなればなるほど、優先順位が低くなります。既定値は 99 です。
AutoYaST に対して、指定した場所にアドオン製品やモジュール、拡張のリポジトリが存在しない場合、タイムアウトエラーを報告するのではなく、ユーザに対して尋ねるように設定するかどうかを指定します。ユーザに対して尋ねたい場合は、 ask_on_error を true
に設定します (既定値は false
です) 。
ユーザに対してライセンスへの同意を求めるかどうかを指定します。既定値は false
です。
リポジトリ名を指定します。 zypper lr
コマンドを実行することで、追加されたリポジトリの名前を表示することができます。
AutoYaST で未署名のインストールソースを使用するには、 AutoYaST の制御ファイル内で下記のような内容を設定し、チェックを無効化してください。
ここでの署名チェックの無効化は、自動インストール処理内の第 1 ステージにのみ適用されます。第 2 ステージでのインストールは、 AutoYaST の設定ではなく、インストール済みのシステムでの設定に従って動作します。
下記のような XML 構造内に、必要な要素を追加していきます:
<general> <signature-handling> ... </signature-handling> </general>
下記に示す全てのオプションの既定値は false
です。また、オプションが false
に設定されていて、パッケージやリポジトリに対する対象のテストが失敗した場合、特に何もメッセージが表示されることなく無視され、パッケージがインストールされなくなります。なお、どの値を true
に設定したとしても、そこには潜在的なセキュリティリスクが存在することに注意してください。また、サードパーティ製のインストール元を利用してインストールを行う場合、これらの設定を行ってはなりません。
true
に設定した場合、 AutoYaST はコンテンツファイルなどが未署名であっても、受け入れるようになります。
<accept_unsigned_file config:type="boolean" >true</accept_unsigned_file>
true
に設定した場合、 AutoYaST はコンテンツファイルなどのチェックサムが存在しない場合であっても、受け入れるようになります。
<accept_file_without_checksum config:type="boolean" >true</accept_file_without_checksum>
true
に設定した場合、 AutoYaST は署名の検証が失敗した場合でもファイルを受け入れるようになります。
<accept_verification_failed config:type="boolean" >true</accept_verification_failed>
true
に設定した場合、 AutoYaST はインストール元に新しい GPG 鍵が存在し、その鍵でコンテンツファイルに署名されている場合、それを受け付けるようになります。
<accept_unknown_gpg_key config:type="boolean" >true</accept_unknown_gpg_key>
true
に設定した場合、既知ではあるもののまだ信頼していない鍵を受け付けるようになります。
<accept_non_trusted_gpg_key config:type="boolean" >true</accept_non_trusted_gpg_key>
true
に設定した場合、 AutoYaST はインストール元にある新しい GPG 鍵を受け付け、データベース内に取り込むようになります。
<import_gpg_key config:type="boolean" >true</import_gpg_key>
それぞれのアドオン製品や拡張ごとに、署名の処理方法を設定することもできます。下記に示す要素は、個別のアドオン製品やモジュール、拡張などの中の signature-handling
セクション内に設定しなければならないものです。いずれの設定も任意です。何も設定しない場合、 general
セクション内のグローバルな署名処理設定が適用されます。
true
に設定した場合、 AutoYaST は対象のアドオン製品に対して、コンテンツファイルなどが未署名であっても、受け入れるようにします。
<accept_unsigned_file config:type="boolean" >true</accept_unsigned_file>
true
に設定した場合、 AutoYaST は対象のアドオン製品に対して、コンテンツファイルなどのチェックサムが存在しない場合であっても、受け入れるようにします。
<accept_file_without_checksum config:type="boolean" >true</accept_file_without_checksum>
true
に設定した場合、 AutoYaST は対象のアドオン製品に対して、署名の検証が失敗した場合でもファイルを受け入れるようにします。
<accept_verification_failed config:type="boolean" >true</accept_verification_failed>
all
を true
に設定した場合、 AutoYaST は対象のアドオン製品に対して、インストール元にある新しい GPG 鍵を受け付け、データベース内に取り込むようにします。
<accept_unknown_gpg_key> <all config:type="boolean">true</all> </accept_unknown_gpg_key>
鍵を個別に指定することもできます:
<accept_unknown_gpg_key> <all config:type="boolean">false</all> <keys config:type="list"> <keyid>3B3011B76B9D6523</keyid> lt;/keys> </accept_unknown_gpg_key>
true
に設定した場合、既知ではあるもののまだ信頼していない鍵を受け付けるようにします。
<accept_non_trusted_gpg_key> <all config:type="boolean">true</all> </accept_non_trusted_gpg_key>
特定の鍵のみを信頼する場合は下記のように設定します:
<accept_non_trusted_gpg_key> <all config:type="boolean">false</all> <keys config:type="list"> <keyid>3B3011B76B9D6523</keyid> </keys> </accept_non_trusted_gpg_key>
all
を true
に設定した場合、 AutoYaST はインストール元にある全ての GPG 鍵を受け入れ、データベース内に取り込むようにします。
<import_gpg_key> <all config:type="boolean">true</all> </import_gpg_key>
鍵を個別に指定することもできます:
<import_gpg_key> <all config:type="boolean">false</all> <keys config:type="list"> <keyid>3B3011B76B9D6523</keyid> </keys> </import_gpg_key>
カーネルパッケージはパッケージの選択の中に含めることができません。必要なカーネルはインストール時に自動判断されるためです。パッケージの選択内にカーネルパッケージを入れてしまうと、ほとんどの場合、矛盾が発生してインストールが失敗することになります。
特定の種類のカーネルを強制したい場合は、 kernel
プロパティで設定を行ってください。下記は既定のカーネル (kernel-default) を強制する場合の例です。下記のように設定することで、環境によらずに指定したカーネルをインストールするようになります。
<software> <kernel>kernel-default</kernel> ... </software>
依存関係にあるパッケージや推奨パッケージなど、いくつかのパッケージが自動的に選択されてインストールされることがあります。
これらのパッケージを削除してしまうと、システムの一貫性を損なうことになるほか、同類のサービスを提供するような代替パッケージをインストールしない限り、基本的なパッケージについても、削除を行わないことをお勧めします。最も分かりやすい例がメール転送エージェント (MTA) です。既定では postfix
がインストールされますが、 sendmail
のような他の MTA をインストールすれば、 postfix を一覧から削除することができます (ただし、 sendmail は openSUSE Leap では提供されていません) 。下記の例では、このように postfix を sendmail に置き換える場合の例を示しています:
<software> <packages config:type="list"> <package>sendmail</package> </packages> <remove-packages config:type="list"> <package>postfix</package> </remove-packages> </software>
パターン (詳しくは 4.9.1項 「パターンやパッケージの選択」 をお読みください) の一部として設定されているパッケージについては、削除を行うことができません。このようなパッケージを削除しようとすると、下記のようなエラーメッセージを表示してインストールが失敗してしまいます:
パッケージ解決器の実行に失敗しました。 AutoYaST プロファイルのソフトウエアのセクションを確認してください。
AutoYaST では、 推奨される パッケージやパターンをインストールするかどうかを制御することができます。制御には 3 種類の選択肢が用意されています:
推奨される全てのパッケージやパターンをインストールする
必要なパッケージやパターンのみをインストールする
推奨されるパッケージについてはインストールを行うが、推奨されるパターンについては無視する
設定ファイル内の install_recommended
フラグを true
に設定することで、全ての推奨パッケージと推奨パターンをインストールするようになります。
最小限のインストールに留め、 必要な パッケージとパターンのみをインストールするようにしたい場合は、このフラグを false
にしてください。
推奨されるパッケージのみをインストールし、推奨されるパターンについては無視しておきたい場合は、設定ファイル内でフラグを指定しないでください。ただし、この設定は新規インストールの場合にのみ適用されるものであり、アップグレードの場合には無視されることに注意してください。
install_recommended
フラグの効果についてこのフラグはインストール処理時のパッケージ解決器にのみ効果があるフラグであり、 /etc/zypp/zypp.conf
ファイルの修正は行わないことに注意してください。そのため、この AutoYaST 設定はインストール後に影響を与えることはありません。
<software> <install_recommended config:type="boolean">false </install_recommended> </software>
再起動後の第 2 ステージでパッケージをインストールしたい場合は、下記のようにして post-packages
要素を設定します:
<software> <post-packages config:type="list"> <package>yast2-cim</package> </post-packages> </software>
第 2 ステージでパターンをインストールすることもできます。下記のようにして post-patterns
要素を設定してください:
<software> <post-patterns config:type="list"> <pattern>apparmor</pattern> </post-patterns> </software>
インストールの末尾にオンライン更新を行うこともできます。オンライン更新を行いたい場合は、 do_online_update
を true
に設定してください。なおオンライン更新の処理は、たとえば suse-register/customer-center のセクションでオンライン更新用のリポジトリを設定していたり、 post-script 内でリポジトリを設定したりしている場合にのみ意味があります。第 1 ステージの add-on セクションで既にオンライン更新用のリポジトリを設定している場合は、 AutoYaST は当初の段階から最新のパッケージをインストールすることになります。なお、オンライン更新でカーネルを更新した場合、第 2 ステージの終了後に再起動処理が動作します。
<software> <do_online_update config:type="boolean">true</do_online_update> </software>
AutoYaST はシステムのアップグレードを行う際にも使用することができます。パッケージのアップグレードだけでなく、下記のような機能のセクションも提供されています:
scripts/pre-scripts
: 全ての処理が行われるよりも前に動作するユーザスクリプトの指定。
add-on
: 追加のアドオン製品の定義。
language
: 言語の設定。
timezone
: タイムゾーンの設定。
keyboard
: キーボードの設定。
software
: 追加のソフトウエアやパターンのインストール、インストール済みのパッケージの削除。
suse_register
: 登録処理の実行。
アップグレード処理を制御する目的で、下記のようなセクションを定義することができます:
<upgrade> <stop_on_solver_conflict config:type="boolean">true</stop_on_solver_conflict> </upgrade> <backup> <sysconfig config:type="boolean">true</sysconfig> <modified config:type="boolean">true</modified> <remove_old config:type="boolean">true</remove_old> </backup>
パッケージの依存関係に問題が発生した場合、インストールを停止するようにします。
変更されたファイルのバックアップを作成します。
/etc/sysconfig
ディレクトリのバックアップを作成します。
以前の更新で作成されたバックアップを削除します。
AutoYaST のアップグレードモードを開始するには、下記のようにして行います:
作成した AutoYaST のプロファイルを、 ファイルシステム内の /root/autoupg.xml
にコピーします。
インストールメディアからシステムを起動します。
アップグレード
を選択します。
コマンドラインには autoupgrade=1
を設定します。
Enter を押すとアップグレード処理が始まります。
インストールメディアからシステムを起動します。
アップグレード
を選択します。
コマンドラインには netsetup=dhcp autoupgrade=1 autoyast=http://192.169.3.1/autoyast.xml
を設定します。
上記の設定では、 DHCP を利用してネットワークを設定します。
Enter を押すとアップグレード処理が始まります。
services-manager
リソースを使用することで、既定の systemd ターゲットの指定のほか、個別のシステムサービスを開始したり停止したり、開始方法を指定したりすることができます。
default-target
プロパティでは、システム起動時の既定の systemd ターゲットを指定します。設定可能な値は graphical
(グラフィカルなログイン画面を表示する) もしくは multi-user
(コンソールログイン) のいずれかです。
特定のサービスに対してシステムの起動時に開始するように設定したい場合は、 enable
と disable
のリストを設定します。特定のサービスを開始したい場合は、 enable
のリスト内にその名前を設定します。逆にサービスをシステムの起動時に開始したくない場合は、 disable
のリスト内に名前を設定します。
サービスが enable
と disable
のどちらにも掲載されていない場合、既定の設定 (有効もしくは無効) が使用されます。
このほか、 cups
サポートなどのようにオンデマンドで有効化できる (ソケットで開始するサービス) ものもあります。このような機能を設定したい場合は、 enable
ではなく on_demand
のリスト内に名前を記載してください。
<services-manager> <default_target>multi-user</default_target> <services> <disable config:type="list"> <service>libvirtd</service> </disable> <enable config:type="list"> <service>sshd</service> </enable> <on_demand config:type="list"> <service>cups</service> </on_demand> </services> </services-manager>
ネットワークの設定は主に、ワークステーションをイーサネットベースの LAN に接続する際に使用します。ダイヤルアップ接続を設定することもできます。 AutoYaST では通常、 AutoYaST のプロファイルをネットワーク経由で取得することから、 AutoYaST を動作させるよりも前に設定する必要がある場合もあります。このような場合は、 linuxrc
で設定を行います。
linuxrc
プログラムについてlinuxrc
の仕組みと設定キーワードについてより詳しく知りたい場合は、 付録C 高度な linuxrc
オプション をお読みください。
既定の YaST の動作では、インストール時に使用したネットワーク設定をそのまま最終的な (インストール後の) 設定値として適用します。この設定値は、 AutoYaST プロファイル内に書かれたものと組み合わせた形になります。
AutoYaST での設定は、既に存在する設定ファイルよりも高い優先順位で適用されます。 YaST は ifcfg-*
ファイルに書き込みを行う際、既存の内容を削除せずに行います。そのため、 DNS やルーティングのセクションを設定しない場合、 YaST は既存の値をそのまま保持するようになります。それ以外の場合は、プロファイル内の設定が適用されます。
また、ネットワークの設定やサービスの有効化については、 profile
networking
のグローバルリソース内で設定します。
<networking> <dns> <dhcp_hostname config:type="boolean">true</dhcp_hostname> <hostname>linux-bqua</hostname> <nameservers config:type="list"> <nameserver>192.168.1.116</nameserver> <nameserver>192.168.1.117</nameserver> <nameserver>192.168.1.118</nameserver> </nameservers> <resolv_conf_policy>auto</resolv_conf_policy> <searchlist config:type="list"> <search>example.com</search> <search>example.net</search> </searchlist> </dns> <interfaces config:type="list"> <interface> <bootproto>dhcp</bootproto> <name>eth0</name> <startmode>auto</startmode> </interface> </interfaces> <ipv6 config:type="boolean">true</ipv6> <keep_install_network config:type="boolean">false</keep_install_network> <managed config:type="boolean">false</managed> <net-udev config:type="list"> <rule> <name>eth0</name> <rule>ATTR{address}</rule> <value>00:30:6E:08:EC:80</value> </rule> </net-udev> <s390-devices config:type="list"> <listentry> <chanids>0.0.0800:0.0.0801:0.0.0802</chanids> <type>qeth</type> </listentry> </s390-devices> <routing> <ipv4_forward config:type="boolean">false</ipv4_forward> <ipv6_forward config:type="boolean">false</ipv6_forward> <routes config:type="list"> <route> <destination>192.168.100.0/24</destination> <device>eth1</device> <extrapara>scope link src 192.168.100.100 table one</extrapara> <gateway>-</gateway> </route> <route> <destination>default</destination> <device>eth1</device> <gateway>192.168.100.1</gateway> </route> <route> <destination>default</destination> <device>lo</device> <gateway>192.168.5.1</gateway> </route> </routes> </routing> </networking>
上述の例のとおり、 <networking>
内にはいくつかのサブセクションが存在しています:
interfaces
内にはネットワークインターフェイスの設定を記述します。ここには IP アドレスのほか、起動方法などを指定することができます。
dns
内には DNS 関連の設定を記述します。ここにはホスト名のほか、ネームサーバの一覧などを指定します。
routing
内にはルーティング (経路制御) ルールを記述します。
s390-devices
内には z システム固有のデバイス設定を記述します。
net-udev
内には、デバイス名を固定させるための udev ルールを記述します。
これに加えて、ネットワーク設定の適用方法に関する要素がいくつか提供されています:
使用すべきネットワークバックエンドを指定します。設定可能な値は wicked
, network_manager
, none
のいずれかで、 none
を指定するとネットワークサービスを無効化します。
<backend>network_manager</backend>
4.12.1項 「設定の概要」 で説明しているとおり、既定では AutoYaST は動作中のシステムに設定されている項目とプロファイル内に設定されている項目を合成して設定を生成します。プロファイル側の設定のみを使用させたい場合は、この要素を false
にしてください。 true
が既定値です。
<keep_install_network config:type="boolean">false</keep_install_network>
Wicked ではなく NetworkManager を使用するかどうかを設定します。
廃止予定です。代わりに backend
を使用してください。
<managed config:type="boolean">true</managed>
AutoYaST に対して、設定の書き込み直後にネットワークの再起動を強制させるかどうかを指定します。
<start_immediately config:type="boolean">true</start_immediately>
インストール時に、プロファイル内で指定されたネットワーク設定を使用するかどうかを指定します。使用しない場合、 AutoYaST は linuxrc
で指定された設定に従って動作します。
<setup_before_proposal config:type="boolean">true</setup_before_proposal>
ネットワークを設定したあと、 AutoYaST は設定した IP アドレスが重複していないかどうかを確認します。重複が確認された場合、ここで指定された秒数だけ警告メッセージが表示されます。 0
を指定すると、インストールが停止します。
<strict_IP_check_timeout config:type="integer">5</strict_IP_check_timeout>
AutoYaST では、インストール時に仮想化パッケージ (Xen, QEMU, KVM) が選択されていると、ブリッジの設定を行います。この動作を変更したい場合は、この要素を false
にしてください。
<virt_bridge_proposal config:type="boolean">false</virt_bridge_proposal>
AutoYaST では IPv6 アドレスにも完全対応しています。 IPv6 アドレスのサポートを無効化したい場合は、 <ipv6 config:type="boolean">false</ipv6> を設定してください。
interfaces
セクションにはネットワークインターフェイス関連の設定を記述します。ここにはインターフェイスの起動方法や IP アドレス、サブネットマスクなどを記述します。それぞれ下記の要素は、 <interfaces>...</interfaces>
タグ内に記述しなければなりません。
bootproto
インターフェイスが使用する起動プロトコルを指定します。設定可能な値は下記のとおりです:
固定のアドレスを設定したい場合は、 static
を指定します。 ipaddr
要素を利用して IP アドレスを割り当てたい場合は、これを指定してください。
DHCP を利用して IP アドレスを割り当てたい場合は、 dhcp4
(IPv4), dhcp6
(IPv6), dhcp
(IPv4 もしくは IPv6) のいずれかを指定します。
IPv4 の設定を Zeroconf から取得し、 IPv6 の設定を DHCP から取得したい場合は、 dhcp+autoip
を指定します。
IPv4 の設定を Zeroconf から取得したい場合は、 autoip
を指定します。
iBFT プロトコルを利用して IP アドレスを取得したい場合は、 ibft
を指定します。
アドレスの設定を行いたくない場合は none
を指定します。ブリッジやボンディングに参加する場合の指定です。
必須です。
broadcast
ブロードキャスト IP アドレスを指定します。
起動プロトコルで static
を指定する必要があります。
device
デバイス名を指定します。
廃止予定です。代わりに name
を使用してください。
name
デバイス名 (例: eth0
) を指定します。
必須です。
lladdr
リンクレイヤアドレス (MAC アドレス) を指定します。
任意指定です。
ipaddr
インターフェイスに割り当てる IP アドレスを指定します。
起動プロトコルで static
を指定する必要があります。また、 192.168.1.1/24
のように、ネットワークプレフィクスを指定することもできます。
remote_ipaddr
Point-to-Point 接続で使用する対向の IP アドレスを指定します。
起動プロトコルで static
を指定する必要があります。
netmask
ネットマスクを指定します (例: 255.255.255.0
) 。
廃止予定です。代わりに prefixlen
を使用して指定するか、 ipaddr
要素でネットワークプレフィクスを指定してください。
network
ネットワーク IP アドレスを指定します。
廃止予定です。 ipaddr
と prefixlen
要素を使用してください。
prefixlen
ネットワークプレフィクスを指定します (例: 24
)。
起動プロトコルで static
を指定する必要があります。
startmode
インターフェイスの起動タイミングを指定します。設定可能な値は下記のとおりです:
USB 接続のネットワークカードなど、デバイスの接続時に起動を行いたい場合は、 hotplug
を指定します。
システムの起動時に起動を行いたい場合は auto
を指定します。 onboot
でも同じ意味になりますが、こちらは廃止予定となっています。
ifplugd
デーモンで管理したい場合は、 ifplugd
を指定します。
デバイスを手作業で起動したい場合は、 manual
を指定します。
/
が NFS ボリューム内に存在する場合など、ルートファイルシステムをマウントする際に特定のネットワークデバイスが必要な場合は、 nfsroot
を指定します。
デバイスを起動したくない場合は、 off
を指定します。
ifplugd_priority
ifplugd
での優先順位を指定します。この優先順位の高い順にデバイスの有効化を行います。
起動タイミングの指定で ifplugd
を指定する必要があります。
usercontrol
このパラメータは現在使用していません。
廃止予定です。
bonding_slaveX
ボンディングデバイスの名前を指定します。
ボンディングデバイスを設定する際には必ず指定します。なお、 X
の部分には 0 から始まる数値 (例: bonding_slave0
) を指定します。また、それぞれのポートには別々の番号を指定する必要があります。
bonding_module_opts
ボンディングデバイスに対するオプションを指定します。
bond
デバイスの場合にのみ指定することができます。
mtu
インターフェイスに対して設定する最大伝送単位 (MTU) を指定します。
任意指定です。
ethtool_options
デバイスの有効化時に使用する ethtool 向けのオプションを指定します。
任意指定です。
zone
インターフェイスの割当先となるファイアウオールのゾーン名を指定します。
任意指定です。
vlan_id
この VLAN の識別 ID を指定します。
vlan
デバイスの場合にのみ指定することができます。
etherdevice
VLAN の接続先デバイスを指定します。
vlan
デバイスの場合にのみ必ず指定します。
bridge
インターフェイスがブリッジである場合、 yes
を指定します。
廃止予定です。この設定は他の属性から自動的に判断するようになっています。
bridge_ports
ブリッジで使用するネットワークデバイスをスペース区切りで指定します (例: eth0 eth1
) 。
bridge
デバイスの場合にのみ必ず指定します。
bridge_stp
スパニングツリープロトコル (STP) を有効化するかどうかを指定します。 on
を指定すると有効に、 off
を指定すると無効になります。
bridge
デバイスの場合にのみ指定することができます。
bridge_forward_delay
ブリッジに対する転送遅延 (例: 15
) を指定します。
bridge
デバイスの場合にのみ指定することができます。設定可能な値は 4
から 30
までのいずれかです。
aliases
追加の IP アドレスを指定します。詳しくは 4.12.4項 「複数の IP アドレスの割り当て」 をお読みください。
<networking> <setup_before_proposal config:type="boolean">false</setup_before_proposal> <keep_install_network config:type="boolean">false</keep_install_network> <interfaces config:type="list"> <interface> <bonding_master>yes</bonding_master> <bonding_module_opts>mode=active-backup miimon=100</bonding_module_opts> <bonding_slave0>eth1</bonding_slave0> <bonding_slave1>eth2</bonding_slave1> <bootproto>static</bootproto> <name>bond0</name> <ipaddr>192.168.1.61</ipaddr> <prefixlen>24</prefixlen> <startmode>auto</startmode> </interface> <interface> <bootproto>none</bootproto> <name>eth1</name> <startmode>auto</startmode> </interface> <interface> <bootproto>none</bootproto> <name>eth2</name> <startmode>auto</startmode> </interface> </interfaces> <net-udev config:type="list"> <rule> <name>eth1</name> <rule>ATTR{address}</rule> <value>dc:e4:cc:27:94:c7</value> </rule> <rule> <name>eth2</name> <rule>ATTR{address}</rule> <value>dc:e4:cc:27:94:c8</value> </rule> </net-udev> </networking>
<interfaces config:type="list"> <interface> <name>br0</name> <bootproto>static</bootproto> <bridge>yes</bridge> <bridge_forwarddelay>0</bridge_forwarddelay> <bridge_ports>eth0 eth1</bridge_ports> <bridge_stp>off</bridge_stp> <ipaddr>192.168.1.100</ipaddr> <prefixlen>24</prefixlen> <startmode>auto</startmode> </interface> <interface> <name>eth0</name> <bootproto>none</bootproto> <startmode>hotplug</startmode> </interface> <interface> <name>eth1</name> <bootproto>none</bootproto> <startmode>hotplug</startmode> </interface> </interfaces>
AutoYaST では 1 つのインターフェイスに対して複数の IP アドレスを割り当てることができます。これらは aliases
要素内に複数の aliasX
項目を追加して、それぞれに 1 つずつのアドレスを指定する形態をとります。
各項目には下記の要素を指定することができます:
追加の IP アドレスを指定します。なお、 192.168.1.1/24
のように、ネットワークプレフィクスを含めて指定することもできます。
ネットワークプレフィクスを指定します (例: 24
)。
アドレスに対するネットマスクを指定します。
廃止予定です。代わりに PREFIXLEN
を使用して指定するか、 IPADDR
要素でネットワークプレフィクスを指定してください。
アドレスに対するラベルを指定します。
過去の経緯から、 aliases
要素内の IPADDR
, PREFIXLEN
, LABEL
, NETMASK
の各項目については、いずれも大文字と小文字を区別することに注意してください。
<interfaces config:type="list"> <interface> <name>br0</name> <bootproto>static</bootproto> <ipaddr>192.168.1.100</ipaddr> <prefixlen>24</prefixlen> <startmode>auto</startmode> <aliases> <alias0> <IPADDR>192.168.1.101</IPADDR> <PREFIXLEN>24</PREFIXLEN> <LABEL>http</LABEL> </alias0> <alias1> <IPADDR>192.168.2.100</IPADDR> <PREFIXLEN>24</PREFIXLEN> <LABEL>extra</LABEL> </alias1> </aliases> </interface> </interfaces>
net-udev
要素では、インターフェイス名を固定させるために使用する udev のルールを指定します。
ネットワークインターフェイス名 (例: eth3
) を設定します (必須)。
MAC アドレスベースのルールを作成するには ATTR{address}
を、バス ID ベースのルールを作成するには KERNELS
を指定します (必須)。
MAC アドレスベースのルールの場合は f0:de:f1:6b:da:69
のように、バス ID ベースのルールの場合は 0000:00:1c.1
もしくは 0.0.0700
のように指定します (必須)。
不完全な udev ルールセットを作成してしまった場合、既存のデバイス名と指定したルールのデバイス名が衝突する場合があります。たとえばネットワークインターフェイスの名前を eth0
に変更する場合、カーネル側で自動生成されたデバイス名と衝突することがあります。 AutoYaST ではこのような場合でも、デバイス名をできる限り適切に処理しようとし、必要に応じて衝突したデバイスの名前を修正します。
<net-udev config:type="list"> <rule> <name>eth1</name> <rule>ATTR{address}</rule> <value>52:54:00:68:54:fb</value> </rule> </net-udev>
dns
セクションでは、ホスト名やネームサーバなど、ネームサービスに関連する設定を行うことができます。
ドメイン名部分を除くホスト名を指定します。たとえば foo.bar ではなく、 foo だけを指定します。 Linux カーネルおよび YaST では、ホスト名として完全修飾ドメイン名 (FQDN) を使用することができますが、 YaST の dns セクションの正しい使用方法ではありません。ここでドメイン名を指定せずに、解決器が FQDN を判別すべきです (FQDN の解決方法について、詳しくは man 1 hostname
の "THE FQDN" セクションをお読みください) 。
ここでホスト名を指定しない場合で、 DHCP サーバからもホスト名を取得できない場合 (dhcp_hostname
についてもお読みください) は、 AutoYaST がランダムな名前を生成します。
ネームサーバの一覧を指定します。たとえば下記のように指定します:
<nameservers config:type="list"> <nameserver>192.168.1.116</nameserver> <nameserver>192.168.1.117</nameserver> </nameservers>
ホスト名の参照時に使用する検索リストを指定します。
<searchlist config:type="list"> <search>example.com</search> </searchlist>
任意指定です。
ホスト名を DHCP 経由で取得するかどうかを指定します。
<dhcp_hostname config:type="boolean">true</dhcp_hostname>
routing
テーブルには経路情報の一覧を設定することができるほか、 IPv4 や IPv6 での中継機能を有効化するかどうかを指定することができます。
任意指定: IPv4 での IP 中継機能を有効化するかどうかを指定します。
任意指定: IPv6 での IP 中継機能を有効化するかどうかを指定します。
任意指定: 経路の一覧を記述します。
経路情報の設定方法を下記の表に示します。
必須: 経路の宛先を指定します。 192.168.122.0/24
のように、プレフィクス付きのアドレスを指定することができます。
値として default
を指定すると、同一アドレスファミリ (IPv4 もしくは IPv6) 内でのデフォルトゲートウエイを指定することができます。
必須: その経路に行き着くためのインターフェイスを指定します。
任意指定: ゲートウエイの IP アドレスを指定します。
(廃止予定) 経路の宛先のネットマスクを指定します。
destination
でネットワークプレフィクスを指定するようにしてください。
任意指定: metric
, mtu
, table
のような追加のルーティングオプションを指定します。
<routing> <ipv4_forward config:type="boolean">true</ipv4_forward> <ipv6_forward config:type="boolean">true</ipv6_forward> <routes config:type="list"> <route> <destination>192.168.100.0/24</destination> <device>eth1</device> <extrapara>scope link src 192.168.100.100 table one</extrapara> </route> <route> <destination>default</destination> <device>eth1</device> <gateway>192.168.100.1</gateway> </route> <route> <destination>default</destination> <device>lo</device> <gateway>192.168.5.1</gateway> </route> </routes> </routing>
下記の要素は < s390-devices
>... </ s390-devices
> タグ内に記述しなければなりません。
qeth
, ctc
, iucv
のいずれかを指定します。
コロン (推奨) もしくはスペース区切りでのチャンネル ID
<chanids>0.0.0700:0.0.0701:0.0.0702</chanids>
<layer2 config:type="boolean">true</layer2>
ブール値。既定は false
任意指定: CTC / LCS プロトコル (文字列型で小さな値)
<protocol>1</protocol>
IUCV ルータ/ユーザ
上述のオプションに加えて、 AutoYaST では設定ファイルの他のセクション内に IBM Z 固有のオプションを設定することもできます。特に論理リンクアドレス (LLADDR (イーサネットの場合 MAC アドレス)) を設定することもできます。設定を行うには、デバイスの定義内に LLADDR
オプションを設定してください。
VLAN デバイスの場合、接続されている物理デバイスの LLADDR をそのまま継承します。 VLAN デバイスに対して別のアドレスを設定するには、物理デバイス側に LLADDR のオプションを設定してください。
インターネットプロキシ (キャッシュサーバ) に関する設定を行います。
HTTP, HTTPS, FTP に対するそれぞれのプロキシサーバを、 http_proxy
, https_proxy
, ftp_proxy
で設定します。また、プロキシを経由せずに直接アクセスすべきアドレスやホストについては、 no_proxy
内にスペース区切りで設定します。プロキシサーバに対して認証が必要な場合は、 proxy_user
(ユーザ名) および proxy_password
(パスワード) にそれぞれ設定します。
<proxy> <enabled config:type="boolean">true</enabled> <ftp_proxy>http://192.168.1.240:3128</ftp_proxy> <http_proxy>http://192.168.1.240:3128</http_proxy> <no_proxy>www.example.com .example.org localhost</no_proxy> <proxy_password>testpw</proxy_password> <proxy_user>testuser</proxy_user> </proxy>
プロキシ設定はインストール時のほか、提案を表示する前にネットワーク設定が必要となった場合や、 linuxrc
でプロキシ設定が指定されている場合にそれぞれ書き込みが行われます。
nis
リソースを使用することで、インストール先のマシンを NIS クライアントとして設定することができます。下記の例では、複数のドメインを利用した詳細な設定を行っています。
<nis> <nis_broadcast config:type="boolean">true</nis_broadcast> <nis_broken_server config:type="boolean">true</nis_broken_server> <nis_domain>test.com</nis_domain> <nis_local_only config:type="boolean">true</nis_local_only> <nis_options></nis_options> <nis_other_domains config:type="list"> <nis_other_domain> <nis_broadcast config:type="boolean">false</nis_broadcast> <nis_domain>domain.com</nis_domain> <nis_servers config:type="list"> <nis_server>10.10.0.1</nis_server> </nis_servers> </nis_other_domain> </nis_other_domains> <nis_servers config:type="list"> <nis_server>192.168.1.1</nis_server> </nis_servers> <start_autofs config:type="boolean">true</start_autofs> <start_nis config:type="boolean">true</start_nis> </nis>
インストール先のマシンを NIS サーバとして構成することもできます。 NIS マスターサーバ、 NIS ワーカーサーバ、 NIS マスター兼ワーカーサーバをそれぞれ設定することができます。
<nis_server> <domain>mydomain.de</domain> <maps_to_serve config:type="list"> <nis_map>auto.master</nis_map> <nis_map>ethers</nis_map> </maps_to_serve> <merge_passwd config:type="boolean">false</merge_passwd> <mingid config:type="integer">0</mingid> <minuid config:type="integer">0</minuid> <nopush config:type="boolean">false</nopush> <pwd_chfn config:type="boolean">false</pwd_chfn> <pwd_chsh config:type="boolean">false</pwd_chsh> <pwd_srcdir>/etc</pwd_srcdir> <securenets config:type="list"> <securenet> <netmask>255.0.0.0</netmask> <network>127.0.0.0</network> </securenet> </securenets> <server_type>master</server_type> <slaves config:type="list"/> <start_ypbind config:type="boolean">false</start_ypbind> <start_yppasswdd config:type="boolean">false</start_yppasswdd> <start_ypxfrd config:type="boolean">false</start_ypxfrd> </nis_server>
domain
NIS ドメイン名。
maps_to_serve
サーバ側で利用できるようにするマップのリストを指定します。
値: auto.master, ethers, group, hosts, netgrp, networks, passwd, protocols, rpc, services, shadow
merge_passwd
passwd ファイルと shadow ファイルの合成を行うかどうかを指定します (shadow ファイルが存在する場合にのみ行うことができます) 。
値: true (有効)/false (無効)
mingid
ユーザマップ内での最小 GID を指定します。
minuid
ユーザマップ内での最小 UID を指定します。
nopush
変更点をワーカーサーバにプッシュしないようにします (ワーカーサーバが存在しない場合に有用です) 。
値: true (有効)/false (無効)
pwd_chfn
YPPWD_CHFN - フルネームの変更を許可します
値: true (有効)/false (無効)
pwd_chsh
YPPWD_CHSH - ログインシェルの変更を許可します
値: true (有効)/false (無効)
pwd_srcdir
YPPWD_SRCDIR - passwd データのソースディレクトリ
既定値: /etc
securenets
NIS サーバに対して問い合わせることのできるホストの一覧
network のアドレスが、対向のアドレスと netmask の論理積のアドレスが一致した場合にのみ、アクセスが許可されます。
network 127.0.0.0 および netmask 255.0.0.0 の設定は、ローカルからの接続を許可するために必ず存在していなければなりません。
network 0.0.0.0, netmask 0.0.0.0 を指定すると、全てのホストからのアクセスを許可します。
server_type
NIS サーバをマスターサーバ/ワーカーサーバのどちらにするのか、もしくは NIS サーバを設定しないのかを選択します。
値: master, slave, none
slaves
NIS ワーカーサーバとして設定したいホスト名のリストを指定します。
start_ypbind
このホストを NIS クライアントとしても設定します (ただしクライアント側の設定をローカルで行う必要があります) 。
値: true (有効)/false (無効)
start_yppasswdd
パスワードデーモンも起動するようにします。
値: true (有効)/false (無効)
start_ypxfrd
マップ転送デーモンも起動するようにします。高速なマップ配布の仕組みにより、ワーカーに対するマップの転送も高速化されます。
値: true (有効)/false (無効)
host
リソースを使用することで、 /etc/hosts
内に 1 つもしくは複数の項目を追加することができます。既に存在する項目については、削除されることはありません。下記に詳細例を示します。
<host> <hosts config:type="list"> <hosts_entry> <host_address>133.3.0.1</host_address> <names config:type="list"> <name>booking</name> </names> </hosts_entry> <hosts_entry> <host_address>133.3.0.5</host_address> <names config:type="list"> <name>test-machine</name> </names> </hosts_entry> </hosts> </host>
samba-client
リソースを使用することで、ワークグループや NT ドメイン、もしくは Active Directory ドメインのメンバーとして構成することができます。
<samba-client> <disable_dhcp_hostname config:type="boolean">true</disable_dhcp_hostname> <global> <security>domain</security> <usershare_allow_guests>No</usershare_allow_guests> <usershare_max_shares>100</usershare_max_shares> <workgroup>WORKGROUP</workgroup> </global> <winbind config:type="boolean">false</winbind> </samba-client>
disable_dhcp_hostname
DHCP に対してホスト名の変更を許可しないようにします。
値: true (有効)/false (無効)
global/security
認証方式を設定します (NT ドメイン (domain) もしくは Active Directory サーバ (ADS)) 。
値: ADS/domain
global/usershare_allow_guests
ゲストアクセスの共有を許可するかどうかを指定します。
値: No (いいえ)/Yes (はい)
global/usershare_max_shares
smb.conf
での最大共有数を指定します。
0 を指定すると、共有を無効化する意味になります。
global/workgroup
ワークグループもしくはドメイン名を指定します。
winbind
winbind を使用するかどうかを指定します。
値: true (有効)/false (無効)
シンプルな Samba サーバの設定を行うことができます。
<samba-server> <accounts config:type="list"/> <backend/> <config config:type="list"> <listentry> <name>global</name> <parameters> <security>domain</security> <usershare_allow_guests>No</usershare_allow_guests> <usershare_max_shares>100</usershare_max_shares> <workgroup>WORKGROUP</workgroup> </parameters> </listentry> </config> <service>Disabled</service> <trustdom/> <version>2.11</version> </samba-server>
Samba アカウントのリスト。
利用可能なバックエンドのリスト。
値: true
/ false
/etc/samba/smb.conf
内に設定する追加のユーザ定義パラメータを指定します。
詳しくは /etc/samba/smb.conf
ファイル内の global
パラメータをお読みください。
Samba サービスを起動時に開始するかどうかを指定します。
値: Enabled
(有効) / Disabled
(無効)
信頼するドメインを指定します。
2 つのマップを指定します (キー: establish, revoke
) 。各マップには key: domainname
value: password
の形式で項目を設定します。
Samba のバージョンを指定します。
既定値: 2.11
設定ファイルは JSON 形式でなければなりません。まずは autoyast2 と autoyast2-installation の各パッケージがインストールされていることを確認してください。あとは YaST 内の で、必要な JSON 形式の設定ファイルを作成してください。 YaST を起動し、 › を選択し、 › を選択して を押し、設定作業を行ってください。設定が終わったら を押して閉じます。生成された設定ファイルを保存するには、 › を選択します。
ネイティブ SSL (TLS ではなく) で LDAP を使用するには、 ldaps
リソースを追加します。
設定システムを使用することで、 NFS クライアントも NFS サーバも設定することができます。下記の例では、 NFS クライアントと NFS サーバの両方を設定する場合の例を示しています。
openSUSE Leap 15.7 およびそれ以降では、 NFS クライアントの設定構造が変更されています。それぞれ下記に示すグローバル設定オプションが追加されています: enable_nfs4
(NFS4 サポートの有効化/無効化), idmapd_domain
(rpc.idmapd 向けのドメイン名設定 (NFS4 が有効化されている場合にのみ効果があります)) 。注意: 古い構造は新しい構造とは互換性が無く、古いリリースで作成された NFS セクションを含む制御ファイルは、新しい製品では動作しません。
openSUSE Leap を NFS 共有にインストールする方法については、 4.5.10項 「NFS の設定」 をお読みください。
<nfs> <enable_nfs4 config:type="boolean">true</enable_nfs4> <idmapd_domain>suse.cz</idmapd_domain> <nfs_entries config:type="list"> <nfs_entry> <mount_point>/home</mount_point> <nfs_options>sec=krb5i,intr,rw</nfs_options> <server_path>saurus.suse.cz:/home</server_path> <vfstype>nfs4</vfstype> </nfs_entry> <nfs_entry> <mount_point>/work</mount_point> <nfs_options>defaults</nfs_options> <server_path>bivoj.suse.cz:/work</server_path> <vfstype>nfs</vfstype> </nfs_entry> <nfs_entry> <mount_point>/mnt</mount_point> <nfs_options>defaults</nfs_options> <server_path>fallback.suse.cz:/srv/dist</server_path> <vfstype>nfs</vfstype> </nfs_entry> </nfs_entries> </nfs>
<nfs_server> <nfs_exports config:type="list"> <nfs_export> <allowed config:type="list"> <allowed_clients>*(ro,root_squash,sync)</allowed_clients> </allowed> <mountpoint>/home</mountpoint> </nfs_export> <nfs_export> <allowed config:type="list"> <allowed_clients>*(ro,root_squash,sync)</allowed_clients> </allowed> <mountpoint>/work</mountpoint> </nfs_export> </nfs_exports> <start_nfsserver config:type="boolean">true</start_nfsserver> </nfs_server>
openSUSE Leap 15 およびそれ以降のバージョンでは、 NTP クライアントの設定が新しい形式となり、以前のプロファイルとは互換性が なくなっています 。以前の openSUSE Leap バージョンで使用していたプロファイル内に NTP クライアントの設定が含まれている場合は、バージョン 15 もしくはそれ以降に対応するために更新を行う必要があります。
下記に NTP クライアントの設定例を示します:
<ntp-client> <ntp_policy>auto</ntp_policy>1 <ntp_servers config:type="list"> <ntp_server> <address>cz.pool.ntp.org</address>2 <iburst config:type="boolean">false</iburst>3 <offline config:type="boolean">false</offline>4 </ntp_server> </ntp_servers> <ntp_sync>15</ntp_sync>5 </ntp-client>
| |
タイムサーバもしくはタイムサーバのプールの URL を指定します。 | |
| |
| |
|
下記の例は IPv6 アドレスを使用する場合の例を示しています。ここではサーバの IP アドレスもしくはホスト名のほか、必要であればその両方を指定することもできます:
<ntp-server> <address>2001:418:3ff::1:53</address> </ntp-server> <ntp-server> <address>2.pool.ntp.org</address> </ntp-server>
メールのクライアント側の設定を行うには、このモジュールで詳細な設定を行います。このモジュールにはさまざまなオプションが含まれていますが、あくまでも初期設定として使用することをお勧めします。
<mail> <aliases config:type="list"> <alias> <alias>root</alias> <comment></comment> <destinations>foo</destinations> </alias> <alias> <alias>test</alias> <comment></comment> <destinations>foo</destinations> </alias> </aliases> <connection_type config:type="symbol">permanent</connection_type> <fetchmail config:type="list"> <fetchmail_entry> <local_user>foo</local_user> <password>bar</password> <protocol>POP3</protocol> <remote_user>foo</remote_user> <server>pop.foo.com</server> </fetchmail_entry> <fetchmail_entry> <local_user>test</local_user> <password>bar</password> <protocol>IMAP</protocol> <remote_user>test</remote_user> <server>blah.com</server> </fetchmail_entry> </fetchmail> <from_header>test.com</from_header> <listen_remote config:type="boolean">true</listen_remote> <local_domains config:type="list"> <domains>test1.com</domains> </local_domains> <masquerade_other_domains config:type="list"> <domain>blah.com</domain> </masquerade_other_domains> <masquerade_users config:type="list"> <masquerade_user> <address>joe@test.com</address> <comment></comment> <user>joeuser</user> </masquerade_user> <masquerade_user> <address>bar@test.com</address> <comment></comment> <user>foo</user> </masquerade_user> </masquerade_users> <mta config:type="symbol">postfix</mta> <outgoing_mail_server>test.com</outgoing_mail_server> <postfix_mda config:type="symbol">local</postfix_mda> <smtp_auth config:type="list"> <listentry> <password>bar</password> <server>test.com</server> <user>foo</user> </listentry> </smtp_auth> <use_amavis config:type="boolean">true</use_amavis> <virtual_users config:type="list"> <virtual_user> <alias>test.com</alias> <comment></comment> <destinations>foo.com</destinations> </virtual_user> <virtual_user> <alias>geek.com</alias> <comment></comment> <destinations>bar.com</destinations> </virtual_user> </virtual_users> </mail>
このセクションは、 Apache HTTP サーバを設定するために使用します。
知識のあるユーザである場合を除き、まずは YaST の HTTP サーバ
モジュールを利用して Apache サーバを設定しておくことをお勧めします。設定後、 AutoYaST 設定
モジュールを呼び出して、 HTTP サーバ
YaST モジュールを選択し、 Apache の設定を複製するとよいでしょう。これらの設定は、 ファイル
メニューを利用することでエクスポートすることができます。
<http-server> <Listen config:type="list"> <listentry> <ADDRESS/> <PORT>80</PORT> </listentry> </Listen> <hosts config:type="list"> <hosts_entry> <KEY>main</KEY> <VALUE config:type="list"> <listentry> <KEY>DocumentRoot</KEY> <OVERHEAD> # # Global configuration that will be applicable for all # virtual hosts, unless deleted here or overridden elsewhere. # </OVERHEAD> <VALUE>"/srv/www/htdocs"</VALUE> </listentry> <listentry> <KEY>_SECTION</KEY> <OVERHEAD> # # Configure the DocumentRoot # </OVERHEAD> <SECTIONNAME>Directory</SECTIONNAME> <SECTIONPARAM>"/srv/www/htdocs"</SECTIONPARAM> <VALUE config:type="list"> <listentry> <KEY>Options</KEY> <OVERHEAD> # Possible values for the Options directive are "None", "All", # or any combination of: # Indexes Includes FollowSymLinks SymLinksifOwnerMatch # ExecCGI MultiViews # # Note that "MultiViews" must be named *explicitly* # --- "Options All" # does not give it to you. # # The Options directive is both complicated and important. # Please see # http://httpd.apache.org/docs/2.4/mod/core.html#options # for more information. </OVERHEAD> <VALUE>None</VALUE> </listentry> <listentry> <KEY>AllowOverride</KEY> <OVERHEAD> # AllowOverride controls what directives may be placed in # .htaccess files. It can be "All", "None", or any combination # of the keywords: # Options FileInfo AuthConfig Limit </OVERHEAD> <VALUE>None</VALUE> </listentry> <listentry> <KEY>_SECTION</KEY> <OVERHEAD> # Controls who can get stuff from this server. </OVERHEAD> <SECTIONNAME>IfModule</SECTIONNAME> <SECTIONPARAM>!mod_access_compat.c</SECTIONPARAM> <VALUE config:type="list"> <listentry> <KEY>Require</KEY> <VALUE>all granted</VALUE> </listentry> </VALUE> </listentry> <listentry> <KEY>_SECTION</KEY> <SECTIONNAME>IfModule</SECTIONNAME> <SECTIONPARAM>mod_access_compat.c</SECTIONPARAM> <VALUE config:type="list"> <listentry> <KEY>Order</KEY> <VALUE>allow,deny</VALUE> </listentry> <listentry> <KEY>Allow</KEY> <VALUE>from all</VALUE> </listentry> </VALUE> </listentry> </VALUE> </listentry> <listentry> <KEY>Alias</KEY> <OVERHEAD> # Aliases: aliases can be added as needed (with no limit). # The format is Alias fakename realname # # Note that if you include a trailing / on fakename then the # server will require it to be present in the URL. So "/icons" # is not aliased in this example, only "/icons/". If the fakename # is slash-terminated, then the realname must also be slash # terminated, and if the fakename omits the trailing slash, the # realname must also omit it. # We include the /icons/ alias for FancyIndexed directory listings. # If you do not use FancyIndexing, you may comment this out. # </OVERHEAD> <VALUE>/icons/ "/usr/share/apache2/icons/"</VALUE> </listentry> <listentry> <KEY>_SECTION</KEY> <OVERHEAD> </OVERHEAD> <SECTIONNAME>Directory</SECTIONNAME> <SECTIONPARAM>"/usr/share/apache2/icons"</SECTIONPARAM> <VALUE config:type="list"> <listentry> <KEY>Options</KEY> <VALUE>Indexes MultiViews</VALUE> </listentry> <listentry> <KEY>AllowOverride</KEY> <VALUE>None</VALUE> </listentry> <listentry> <KEY>_SECTION</KEY> <SECTIONNAME>IfModule</SECTIONNAME> <SECTIONPARAM>!mod_access_compat.c</SECTIONPARAM> <VALUE config:type="list"> <listentry> <KEY>Require</KEY> <VALUE>all granted</VALUE> </listentry> </VALUE> </listentry> <listentry> <KEY>_SECTION</KEY> <SECTIONNAME>IfModule</SECTIONNAME> <SECTIONPARAM>mod_access_compat.c</SECTIONPARAM> <VALUE config:type="list"> <listentry> <KEY>Order</KEY> <VALUE>allow,deny</VALUE> </listentry> <listentry> <KEY>Allow</KEY> <VALUE>from all</VALUE> </listentry> </VALUE> </listentry> </VALUE> </listentry> <listentry> <KEY>ScriptAlias</KEY> <OVERHEAD> # ScriptAlias: This controls which directories contain server # scripts. ScriptAliases are essentially the same as Aliases, # except that documents in the realname directory are treated # as applications and run by the server when requested rather # than as documents sent to the client. # The same rules about trailing "/" apply to ScriptAlias # directives as to Alias. # </OVERHEAD> <VALUE>/cgi-bin/ "/srv/www/cgi-bin/"</VALUE> </listentry> <listentry> <KEY>_SECTION</KEY> <OVERHEAD> # "/srv/www/cgi-bin" should be changed to wherever your # ScriptAliased CGI directory exists, if you have that configured. # </OVERHEAD> <SECTIONNAME>Directory</SECTIONNAME> <SECTIONPARAM>"/srv/www/cgi-bin"</SECTIONPARAM> <VALUE config:type="list"> <listentry> <KEY>AllowOverride</KEY> <VALUE>None</VALUE> </listentry> <listentry> <KEY>Options</KEY> <VALUE>+ExecCGI -Includes</VALUE> </listentry> <listentry> <KEY>_SECTION</KEY> <SECTIONNAME>IfModule</SECTIONNAME> <SECTIONPARAM>!mod_access_compat.c</SECTIONPARAM> <VALUE config:type="list"> <listentry> <KEY>Require</KEY> <VALUE>all granted</VALUE> </listentry> </VALUE> </listentry> <listentry> <KEY>_SECTION</KEY> <SECTIONNAME>IfModule</SECTIONNAME> <SECTIONPARAM>mod_access_compat.c</SECTIONPARAM> <VALUE config:type="list"> <listentry> <KEY>Order</KEY> <VALUE>allow,deny</VALUE> </listentry> <listentry> <KEY>Allow</KEY> <VALUE>from all</VALUE> </listentry> </VALUE> </listentry> </VALUE> </listentry> <listentry> <KEY>_SECTION</KEY> <OVERHEAD> # UserDir: The name of the directory that is appended onto a # user's home directory if a ~user request is received. # To disable it, simply remove userdir from the list of modules # in APACHE_MODULES in /etc/sysconfig/apache2. # </OVERHEAD> <SECTIONNAME>IfModule</SECTIONNAME> <SECTIONPARAM>mod_userdir.c</SECTIONPARAM> <VALUE config:type="list"> <listentry> <KEY>UserDir</KEY> <OVERHEAD> # Note that the name of the user directory ("public_html") # cannot simply be changed here, since it is a compile time # setting. The apache package would need to be rebuilt. # You could work around by deleting /usr/sbin/suexec, but # then all scripts from the directories would be executed # with the UID of the webserver. </OVERHEAD> <VALUE>public_html</VALUE> </listentry> <listentry> <KEY>Include</KEY> <OVERHEAD> # The actual configuration of the directory is in # /etc/apache2/mod_userdir.conf. </OVERHEAD> <VALUE>/etc/apache2/mod_userdir.conf</VALUE> </listentry> </VALUE> </listentry> <listentry> <KEY>IncludeOptional</KEY> <OVERHEAD> # Include all *.conf files from /etc/apache2/conf.d/. # # This is mostly meant as a place for other RPM packages to drop # in their configuration snippet. # # # You can comment this out here if you want those bits include # only in a certain virtual host, but not here. </OVERHEAD> <VALUE>/etc/apache2/conf.d/*.conf</VALUE> </listentry> <listentry> <KEY>IncludeOptional</KEY> <OVERHEAD> # The manual... if it is installed ('?' means it will not complain) </OVERHEAD> <VALUE>/etc/apache2/conf.d/apache2-manual?conf</VALUE> </listentry> <listentry> <KEY>ServerName</KEY> <VALUE>linux-wtyj</VALUE> </listentry> <listentry> <KEY>ServerAdmin</KEY> <OVERHEAD> </OVERHEAD> <VALUE>root@linux-wtyj</VALUE> </listentry> <listentry> <KEY>NameVirtualHost</KEY> <VALUE>192.168.43.2</VALUE> </listentry> </VALUE> </hosts_entry> <hosts_entry> <KEY>192.168.43.2/secondserver.suse.de</KEY> <VALUE config:type="list"> <listentry> <KEY>DocumentRoot</KEY> <VALUE>/srv/www/htdocs</VALUE> </listentry> <listentry> <KEY>ServerName</KEY> <VALUE>secondserver.suse.de</VALUE> </listentry> <listentry> <KEY>ServerAdmin</KEY> <VALUE>second_server@suse.de</VALUE> </listentry> <listentry> <KEY>_SECTION</KEY> <SECTIONNAME>Directory</SECTIONNAME> <SECTIONPARAM>/srv/www/htdocs</SECTIONPARAM> <VALUE config:type="list"> <listentry> <KEY>AllowOverride</KEY> <VALUE>None</VALUE> </listentry> <listentry> <KEY>Require</KEY> <VALUE>all granted</VALUE> </listentry> </VALUE> </listentry> </VALUE> </hosts_entry> </hosts> <modules config:type="list"> <module_entry> <change>enable</change> <name>socache_shmcb</name> <userdefined config:type="boolean">true</userdefined> </module_entry> <module_entry> <change>enable</change> <name>reqtimeout</name> <userdefined config:type="boolean">true</userdefined> </module_entry> <module_entry> <change>enable</change> <name>authn_core</name> <userdefined config:type="boolean">true</userdefined> </module_entry> <module_entry> <change>enable</change> <name>authz_core</name> <userdefined config:type="boolean">true</userdefined> </module_entry> </modules> <service config:type="boolean">true</service> <version>2.9</version> </http-server>
ホストの Listen
設定のリストを指定します。
PORT
ポート番号。
ADDRESS
ネットワークアドレス。何も指定しない場合、全てのアドレスを指定したものとみなされます。
仮想ホスト設定のリストを指定します。
KEY
ホスト名を指定します。 <KEY>main</KEY>
を指定すると、メインの仮想ホストの意味になります。例: <KEY>192.168.43.2/secondserver.suse.de</KEY>
VALUE
そのホストに設定するさまざまな値を指定します。
モジュールのリストです。ユーザ側で必要なモジュールのみを指定します。
name
モジュール名
userdefined
過去のバージョンの経緯から、この値は常に true
に設定します。
change
過去のバージョンの経緯から、この値は常に enable
に設定します。
使用する Apache サーバのバージョン
情報提供の意味で設定するだけです。既定値: 2.9
Apache サービスの有効化
任意指定です。既定値: false
Apache サーバを正しく動作させるには、あわせてファイアウオールも設定する必要があります。
squid はキャッシュ機能付きの Web プロキシサービスです。
<squid> <acls config:type="list"> <listentry> <name>QUERY</name> <options config:type="list"> <option>cgi-bin \?</option> </options> <type>urlpath_regex</type> </listentry> <listentry> <name>apache</name> <options config:type="list"> <option>Server</option> <option>^Apache</option> </options> <type>rep_header</type> </listentry> <listentry> <name>all</name> <options config:type="list"> <option>0.0.0.0/0.0.0.0</option> </options> <type>src</type> </listentry> <listentry> <name>manager</name> <options config:type="list"> <option>cache_object</option> </options> <type>proto</type> </listentry> <listentry> <name>localhost</name> <options config:type="list"> <option>127.0.0.1/255.255.255.255</option> </options> <type>src</type> </listentry> <listentry> <name>to_localhost</name> <options config:type="list"> <option>127.0.0.0/8</option> </options> <type>dst</type> </listentry> <listentry> <name>SSL_ports</name> <options config:type="list"> <option>443</option> </options> <type>port</type> </listentry> <listentry> <name>Safe_ports</name> <options config:type="list"> <option>80</option> </options> <type>port</type> </listentry> <listentry> <name>Safe_ports</name> <options config:type="list"> <option>21</option> </options> <type>port</type> </listentry> <listentry> <name>Safe_ports</name> <options config:type="list"> <option>443</option> </options> <type>port</type> </listentry> <listentry> <name>Safe_ports</name> <options config:type="list"> <option>70</option> </options> <type>port</type> </listentry> <listentry> <name>Safe_ports</name> <options config:type="list"> <option>210</option> </options> <type>port</type> </listentry> <listentry> <name>Safe_ports</name> <options config:type="list"> <option>1025-65535</option> </options> <type>port</type> </listentry> <listentry> <name>Safe_ports</name> <options config:type="list"> <option>280</option> </options> <type>port</type> </listentry> <listentry> <name>Safe_ports</name> <options config:type="list"> <option>488</option> </options> <type>port</type> </listentry> <listentry> <name>Safe_ports</name> <options config:type="list"> <option>591</option> </options> <type>port</type> </listentry> <listentry> <name>Safe_ports</name> <options config:type="list"> <option>777</option> </options> <type>port</type> </listentry> <listentry> <name>CONNECT</name> <options config:type="list"> <option>CONNECT</option> </options> <type>method</type> </listentry> </acls> <http_accesses config:type="list"> <listentry> <acl config:type="list"> <listentry>manager</listentry> <listentry>localhost</listentry> </acl> <allow config:type="boolean">true</allow> </listentry> <listentry> <acl config:type="list"> <listentry>manager</listentry> </acl> <allow config:type="boolean">false</allow> </listentry> <listentry> <acl config:type="list"> <listentry>!Safe_ports</listentry> </acl> <allow config:type="boolean">false</allow> </listentry> <listentry> <acl config:type="list"> <listentry>CONNECT</listentry> <listentry>!SSL_ports</listentry> </acl> <allow config:type="boolean">false</allow> </listentry> <listentry> <acl config:type="list"> <listentry>localhost</listentry> </acl> <allow config:type="boolean">true</allow> </listentry> <listentry> <acl config:type="list"> <listentry>all</listentry> </acl> <allow config:type="boolean">false</allow> </listentry> </http_accesses> <http_ports config:type="list"> <listentry> <host/> <port>3128</port> <transparent config:type="boolean">false</transparent> </listentry> </http_ports> <refresh_patterns config:type="list"> <listentry> <case_sensitive config:type="boolean">true</case_sensitive> <max>10080</max> <min>1440</min> <percent>20</percent> <regexp>^ftp:</regexp> </listentry> <listentry> <case_sensitive config:type="boolean">true</case_sensitive> <max>1440</max> <min>1440</min> <percent>0</percent> <regexp>^gopher:</regexp> </listentry> <listentry> <case_sensitive config:type="boolean">true</case_sensitive> <max>4320</max> <min>0</min> <percent>20</percent> <regexp>.</regexp> </listentry> </refresh_patterns> <service_enabled_on_startup config:type="boolean">true</service_enabled_on_startup> <settings> <access_log config:type="list"> <listentry>/var/log/squid/access.log</listentry> </access_log> <cache_dir config:type="list"> <listentry>ufs</listentry> <listentry>/var/cache/squid</listentry> <listentry>100</listentry> <listentry>16</listentry> <listentry>256</listentry> </cache_dir> <cache_log config:type="list"> <listentry>/var/log/squid/cache.log</listentry> </cache_log> <cache_mem config:type="list"> <listentry>8</listentry> <listentry>MB</listentry> </cache_mem> <cache_mgr config:type="list"> <listentry>webmaster</listentry> </cache_mgr> <cache_replacement_policy config:type="list"> <listentry>lru</listentry> </cache_replacement_policy> <cache_store_log config:type="list"> <listentry>/var/log/squid/store.log</listentry> </cache_store_log> <cache_swap_high config:type="list"> <listentry>95</listentry> </cache_swap_high> <cache_swap_low config:type="list"> <listentry>90</listentry> </cache_swap_low> <client_lifetime config:type="list"> <listentry>1</listentry> <listentry>days</listentry> </client_lifetime> <connect_timeout config:type="list"> <listentry>2</listentry> <listentry>minutes</listentry> </connect_timeout> <emulate_httpd_log config:type="list"> <listentry>off</listentry> </emulate_httpd_log> <error_directory config:type="list"> <listentry/> </error_directory> <ftp_passive config:type="list"> <listentry>on</listentry> </ftp_passive> <maximum_object_size config:type="list"> <listentry>4096</listentry> <listentry>KB</listentry> </maximum_object_size> <memory_replacement_policy config:type="list"> <listentry>lru</listentry> </memory_replacement_policy> <minimum_object_size config:type="list"> <listentry>0</listentry> <listentry>KB</listentry> </minimum_object_size> </settings> </squid>
acls
アクセス制御リスト (Access Control Settings (ACL)) のリストです。
リストの項目には名前や種類のほか、追加のオプションを設定することができます。設定可能な値の概要を知るには、 YaST squid 設定モジュールをお使いください。
http_accesses
アクセス制御テーブル内で ACL グループに対してアクセスの許可または禁止を設定します。
1 つの定義内に複数の ACL グループが存在する場合、それぞれの ACL グループに属するメンバー全てに対して、一括で許可または禁止を設定することができます。
アクセス制御テーブルは、このリストの順序でチェックされ、最初に合致した項目のとおりにアクセスが許可もしくは禁止されます。
http_ports
squid がクライアントからの HTTP リクエストを待ち受ける全てのポートを指定します。
Host
にはホスト名や IP アドレスを指定することができますが、何も指定しなくてもかまいません。
transparent
を指定すると、 PMTU discovery 機能が無効化されます。
refresh_patterns
squid がキャッシュ内のオブジェクトを取り扱う際の更新パターンを定義します。
更新パターンはこのリストの順序で解釈されます。最初に合致した項目のとおりに処理が行われます。
Min
は明示的な有効期限が設定されていない場合に、オブジェクトが最新の状態であると判断する期間を分単位で指定します。 Max
は逆に、明示的な有効期限が設定されていない場合に、オブジェクトが最新の状態であると判断する上限の期間を指定します。 Percent
は直近の変更日時順に並べて、どこまでを保持するのかを指定します。明示的な有効期限が設定されていないオブジェクトについては、最新のものであると判断されます。
settings
設定可能な汎用パラメータとその既定値を設定します。
設定可能な項目について、詳しくは YaST の squid 設定モジュールをお使いください。
service_enabled_on_startup
システムの起動時に squid サービスを開始するかどうかを設定します。
値: true (有効)/false (無効)
FTP インターネットサーバの設定を行います。
<ftp-server> <AnonAuthen>2</AnonAuthen> <AnonCreatDirs>NO</AnonCreatDirs> <AnonMaxRate>0</AnonMaxRate> <AnonReadOnly>NO</AnonReadOnly> <AntiWarez>YES</AntiWarez> <Banner>Welcome message</Banner> <CertFile/> <ChrootEnable>NO</ChrootEnable> <EnableUpload>YES</EnableUpload> <FTPUser>ftp</FTPUser> <FtpDirAnon>/srv/ftp</FtpDirAnon> <FtpDirLocal/> <GuestUser/> <LocalMaxRate>0</LocalMaxRate> <MaxClientsNumber>10</MaxClientsNumber> <MaxClientsPerIP>3</MaxClientsPerIP> <MaxIdleTime>15</MaxIdleTime> <PasMaxPort>40500</PasMaxPort> <PasMinPort>40000</PasMinPort> <PassiveMode>YES</PassiveMode> <SSL>0</SSL> <SSLEnable>NO</SSLEnable> <SSLv2>NO</SSLv2> <SSLv3>NO</SSLv3> <StartDaemon>2</StartDaemon> <TLS>YES</TLS> <Umask/> <UmaskAnon/> <UmaskLocal/> <VerboseLogging>NO</VerboseLogging> <VirtualUser>NO</VirtualUser> </ftp-server>
AnonAuthen
匿名ユーザ、認証ユーザの有効/無効を切り替えます。
認証ユーザのみ: 1, 匿名ユーザのみ: 0, 両方: 2
AnonCreatDirs
匿名ユーザに対してディレクトリの作成を許可するかどうかを指定します。
値: YES (はい)/NO (いいえ)
AnonReadOnly
匿名ユーザに対してアップロードを許可するかどうかを指定します。
値: YES (はい)/NO (いいえ)
AnonMaxRate
匿名ユーザに対して適用する最大のデータ転送レートを指定します。
KB/s
AntiWarez
アップロードされているものの、ローカルの管理者が確認を行っていないファイルのダウンロードを禁止するかどうかを指定します。
値: YES (はい)/NO (いいえ)
Banner
サーバに接続した際に表示されるテキストを含むファイルの名前を指定します。
CertFile
SSL 暗号化接続で使用する DSA 証明書を指定します。
SSL 暗号化接続で使用する DSA 証明書の場所を指定します。
ChrootEnable
有効化すると、ローカルユーザがログインした際に既定でホームディレクトリ内に chroot
されるようになります。
警告: このオプションを設定すると、セキュリティへの影響があります。値: YES (はい)/NO (いいえ)
EnableUpload
有効化すると、 FTP ユーザがアップロードできるようになります。
匿名ユーザに対してアップロードを許可するには、 AnonReadOnly
を設定してください。値: YES (はい)/NO (いいえ)
FTPUser
匿名 FTP のユーザを指定します。
FtpDirAnon
匿名ユーザの場合の FTP ディレクトリを指定します。
匿名 FTP ユーザがログインした時に表示するディレクトリを指定します。
FtpDirLocal
認証ユーザの場合の FTP ディレクトリを指定します。
認証ユーザがログインした時に表示するディレクトリを指定します。
LocalMaxRate
ローカルで認証したユーザに対して適用する、最大のデータ転送レートを指定します。
KB/s
MaxClientsNumber
クライアント側からの接続最大数を指定します。
MaxClientsPerIP
1 つの IP アドレスあたりの最大接続数を指定します。
1 つの IP アドレスあたりに対して許可する、最大の同時接続数を制限することになります。
MaxIdleTime
クライアント側から送信される FTP コマンドの最大待機時間 (タイムアウト) を指定します。
分
PasMaxPort
パッシブ接続応答の場合のポート範囲のうち、最大値を指定します。
PassiveMode
を YES に設定する必要があります。
PasMinPort
パッシブ接続応答の場合のポート範囲のうち、最小値を指定します。
PassiveMode
を YES に設定する必要があります。
PassiveMode
パッシブモードを有効化します
値: YES (はい)/NO (いいえ)
SSL
セキュリティ設定
TLS/SSL を無効化する: 0, TLS/SSL を受け付ける: 1, TLS/SSL 無しでの接続を拒否する: 2
SSLEnable
有効化すると、 SSL での接続を受け付けるようになります。
値: YES (はい)/NO (いいえ)
SSLv2
有効化すると、 SSL バージョン 2 での接続を許可するようになります。
値: YES (はい)/NO (いいえ)
SSLv3
有効化すると、 SSL バージョン 3 での接続を許可するようになります。
値: YES (はい)/NO (いいえ)
StartDaemon
FTP デーモンの起動方法を指定します。
手動: 0; システムの起動時: 1; systemd ソケット経由: 2
TLS
有効化すると、 TLS での接続を受け付けるようになります。
値: YES (はい)/NO (いいえ)
Umask
ファイル作成時のマスク値を指定します。 (ファイル向けの umask):(ディレクトリ向けの umask) の形式で指定します。
最も制限を厳しくするには 177:077
のように設定します。
UmaskAnon
匿名ユーザ向けのファイル作成時の umask 値を設定します。
8 進数で指定したい場合は、頭に "0" を付けてください。それ以外の場合は、 10 進数として扱われます。
UmaskLocal
認証ユーザ向けの umask 値を設定します。
8 進数で指定したい場合は、頭に "0" を付けてください。それ以外の場合は、 10 進数として扱われます。
VerboseLogging
有効化すると、全ての FTP 要求と応答がログに記録されます。
値: YES (はい)/NO (いいえ)
VirtualUser
仮想ユーザを使用することで、システムのアカウントとは別に FTP アカウントを管理できるようになります。
値: YES (はい)/NO (いいえ)
FTP サーバを正しく動作させるためには、ファイアウオール側も設定を行う必要があります。
TFTP インターネットサーバの設定を行います。
これを使用することで、 TFTP (Trivial File Transfer Protocol) のサーバ側を設定することができます。サーバは systemd
のソケットを利用して開始されます。
注意: TFTP と FTP は異なるものです。
<tftp-server> <start_tftpd config:type="boolean">true</start_tftpd> <tftp_directory>/tftpboot</tftp_directory> </tftp-server>
TFTP サーバを有効化するかどうかを指定します。 true
もしくは false
の値を指定してください。
起動イメージのディレクトリ: 提供するファイルの存在するディレクトリを指定します。
一般的には /tftpboot
などのディレクトリを指定します。指定したディレクトリが存在しない場合、自動的に作成されます。 TFTP サーバは、このディレクトリをルートとして使用 (-s
オプション) します。
YaST の firstboot ユーティリティ (YaST 初期システム設定) はインストールの直後に動作する仕組みで、ここでは新規にインストールしたシステムに対して、必要な設定処理を行います。インストール後の初回起動では、ユーザはシステムを簡易に設定するための各種の手順を実施することになります。なお、 YaST の firstboot は既定では動作しませんので、必要であれば設定を行って有効化します。
<firstboot> <firstboot_enabled config:type="boolean">true</firstboot_enabled> </firstboot>
このモジュールの機能を利用することで、インストール先のシステムに対するローカルセキュリティを設定することができます。ローカルセキュリティには起動時の設定のほか、ログイン関連の設定やパスワードの設定、ユーザ追加時の設定やファイルパーミッションなどが含まれます。
セキュリティ関連の自動設定は、動作中のシステムで利用できるセキュリティモジュール内の設定に似た仕組みです。ここではさまざまな設定を行うことができます。
下記の例で示されているキーと値の意味についてはリファレンスをお読みください。
<security> <console_shutdown>ignore</console_shutdown> <displaymanager_remote_access>no</displaymanager_remote_access> <fail_delay>3</fail_delay> <faillog_enab>yes</faillog_enab> <gid_max>60000</gid_max> <gid_min>101</gid_min> <gdm_shutdown>root</gdm_shutdown> <lastlog_enab>yes</lastlog_enab> <encryption>md5</encryption> <obscure_checks_enab>no</obscure_checks_enab> <pass_max_days>99999</pass_max_days> <pass_max_len>8</pass_max_len> <pass_min_days>1</pass_min_days> <pass_min_len>6</pass_min_len> <pass_warn_age>14</pass_warn_age> <passwd_use_cracklib>yes</passwd_use_cracklib> <permission_security>secure</permission_security> <run_updatedb_as>nobody</run_updatedb_as> <uid_max>60000</uid_max> <uid_min>500</uid_min> <selinux_mode>permissive</selinux_mode> <lsm_select>selinux</lsm_select> </security>
最小パスワード長やパスワードの有効期限など、各種のパスワード設定を行いたい場合は、 <pass_*
リソースを使用します。
なお、 <encryption>
リソースを使用することで、現在サポートされている暗号化方式の中からいずれかを選択することができます。何も指定しない場合は sha512
が設定されます。
暗号化方式としては下記のいずれかを指定することができます:
md5
— 128 ビットのハッシュ長による長いパスワードの暗号化
sha256
または sha512
— 広く使用されているより安全なハッシュアルゴリズムです
des
— 指定可能ではありますが、安全性が不足するため、この方式は非推奨となります
security リソースでは、起動時の設定も変更することができます。
コンソールを使用しているユーザが Ctrl–Alt–Del を押した際、通常はシステムの再起動が始まります。ただし、対象のマシンをサーバとしても使用しているような場合、このような処理を無効化することもできます。
GDM 経由でマシンをシャットダウンすることのできるユーザの一覧を設定します。
さまざまなログイン関連の設定を行います。これらの設定は主に、 /etc/login.defs
ファイル内に保存されます。
useradd
の設定) #Edit sourceユーザ ID およびグループ ID の最小値と最大値をそれぞれ設定します。
openSUSE Leap 15.4 およびそれ以降のバージョンでは、インストール時の制御ファイルの設定として <lsm_select>
が提供されるようになりました。これは主要な Linux セキュリティモジュール (LSM) を設定するための仕組みで、インストール後に既定で有効化されるモジュール (AppArmor, SELinux, なし) を選択するものです。
任意指定です。 SELinux のモードを設定します。 permissive
, enforcing
, disabled
のいずれかを指定してください。
任意指定です。インストール時に選択する主要な Linux セキュリティモジュールを選択します。 selinux
, apparmor
, none
(無し) のいずれかを指定してください。
YaST では、 OpenSCAP のセキュリティポリシーを利用してシステムの強化をはかることができます。セキュリティポリシーのチェックと適用にあたっては、下記の 2 つの段階を踏むことになります:
インストール時に YaST は、ファイルシステムの暗号化など、インストール後からは修正の難しい部分を中心にセキュリティポリシーのチェックを行います。プロファイル内のルールに適合しない箇所が検出されると、 AutoYaST は問題を報告してインストールを中止します。
これに加えて、 AutoYaST は ssg-apply
ツールをインストールして設定します。 ssg-apply
は、システムが選択したポリシーに準拠しているかどうかをチェックして、必要であれば修復を実施します。
security_policy
セクションでは、セキュリティポリシーの選択と ssg-apply
の設定を行うことができます。
チェックもしくは適用するセキュリティポリシーを指定します。現時点では Defense Information Systems Agency Security Technical Implementation Guide (DISA STIG) のみを指定することができます。このポリシーを使用したい場合は、 stig
を指定してください。この要素は必須です。
初回の起動時に ssg-apply
がするべきことを指定します。
scan
: 初回の起動時にシステムのスキャンを実施します。これが既定の動作です。
remediate
: スキャンを実施したあと、選択したポリシーに準拠するようシステムを修復します。
none
: 初回起動時に設定を行いますが、 ssg-apply
を実行しません。このオプションは、事前にセキュリティポリシーそのものを修正したい場合に使用します。
下記は初回の起動時に DISA STIG ポリシーを利用してシステムをチェックし、必要であれば修正を行う場合の例です。
<security> <security_policy> <policy>stig</policy> <action>remediate</action> </security_policy> </security>
このモジュールを使用することで、監査デーモンの設定や監査サブシステムに対するルールの追加などを行うことができます。
<audit-laf> <auditd> <flush>INCREMENTAL</flush> <freq>20</freq> <log_file>/var/log/audit/audit.log</log_file> <log_format>RAW</log_format> <max_log_file>5</max_log_file> <max_log_file_action>ROTATE</max_log_file_action> <name_format>NONE</name_format> <num_logs>4</num_logs> </auditd> <rules/> </audit-laf>
auditd/flush
ディスクへのデータの書き込み方法を設定します。
INCREMENTAL
を指定すると、 auditd/freq
パラメータで設定されたレコード数ごとに、ディスクへの明示的なフラッシュ処理が発行されます。 NONE
を指定すると、データを書き込むにあたって特別な処理は行いません。 DATA
を指定するとデータ部分のみを同期し、 SYNC
を指定するとデータとメタデータの両方を同期するようになります。
auditd/freq
このパラメータは、ディスクへの明示的な書き込み命令を発行するまでのレコード数を指定します。
このパラメータを使用するには、 flush
を INCREMENTAL
にする必要があります。
auditd/log_file
ログファイルのフルパスを指定します。
auditd/log_fomat
残しておくべき情報のサイズを指定します。
RAW
を指定すると、 (カーネルが送信したものと全く同じ形式で) 全てのデータを保存します。 NOLOG
を指定すると、ディスクに書き込むことなく全てのデータを破棄します (ただしディスパッチャから送信されたデータはそのまま受け取ります) 。
auditd/max_log_file
残しておくべき情報のサイズを指定します。
単位: メガバイト
auditd/num_logs
ログファイルの数を指定します。
max_log_file_action
を ROTATE
に設定する必要があります。
auditd/max_log_file_action
ログ記録サイズの上限に達した場合の処理を指定します。
ROTATE
を指定すると、 auditd/num_logs
で指定した数だけ過去のログファイルを保存するようになります。 SYSLOG
を指定すると、監査デーモンはシステムログに対して警告を書き込むようになります。 SUSPEND
を指定すると、デーモンからディスクへの書き込みが停止するようになります。 IGNORE
は何も行わず、 KEEP_LOGS
は ROTATE
と似たような動作ですが、ログファイルへの上書きは行わなくなります。
auditd/name_format
ログファイルにコンピュータ名を書き込む際のコンピュータ名の書式を指定します。
USER
を指定すると、ユーザ側で定義した名前を使用します。 NONE
を指定すると、コンピュータ名を書き込みません。 HOSTNAME
を指定すると、 'gethostname' システムコールで取得できるホスト名を書き込みます。 FQD
を指定すると、完全修飾ドメイン名を使用します。
rules
auditctl 向けのルール
ルールを手作業で編集することもできますが、知識のあるユーザ向けの機能となります。全てのオプションに関する詳細は、 man auditctl
をお読みください。
ユーザの一覧は <users>
セクション内に記述します。ログインができるようにするには root
に対する設定を記述するか、もしくは linuxrc
のオプションで rootpassword
を設定します。
<users config:type="list"> <user> <username>root</username> <user_password>password</user_password> <encrypted config:type="boolean">false</encrypted> </user> <user> <username>tux</username> <user_password>password</user_password> <encrypted config:type="boolean">false</encrypted> </user> </users>
下記の例では、さらに複雑なシナリオを構成しています。シェルやホームディレクトリの親となるディレクトリなど、 /etc/default/useradd
が示す既定値を適用しています。
<users config:type="list"> <user> <username>root</username> <user_password>password</user_password> <uid>1001</uid> <gid>100</gid> <encrypted config:type="boolean">false</encrypted> <fullname>Root User</fullname> <authorized_keys config:type="list"> <listentry> ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQDKLt1vnW2vTJpBp3VK91rFsBvpY97NljsVLdgUrlPbZ/L51FerQQ+djQ/ivDASQjO+567nMGqfYGFA/De1EGMMEoeShza67qjNi14L1HBGgVojaNajMR/NI2d1kDyvsgRy7D7FT5UGGUNT0dlcSD3b85zwgHeYLidgcGIoKeRi7HpVDOOTyhwUv4sq3ubrPCWARgPeOLdVFa9clC8PTZdxSeKp4jpNjIHEyREPin2Un1luCIPWrOYyym7aRJEPopCEqBA9HvfwpbuwBI5F0uIWZgSQLfpwW86599fBo/PvMDa96DpxH1VlzJlAIHQsMkMHbsCazPNC0++Kp5ZVERiH root@example.net</listentry> </authorized_keys> </user> <user> <username>tux</username> <user_password>password</user_password> <uid>1002</uid> <gid>100</gid> <encrypted config:type="boolean">false</encrypted> <fullname>Plain User</fullname> <home>/Users/plain</home> <password_settings> <max>120</max> <inact>5</inact> </password_settings> </user> </users>
authorized_keys
ファイルの上書きに関する注意authorized_keys
セクションでユーザに対する SSH の公開鍵を設定する場合、既存の $HOME/.ssh/authorized_keys
ファイルの内容は上書きされます。存在しない場合は指定した内容がそのまま書かれます。 authorized_keys
ファイルを上書きしたくない場合は、 AutoYaST の制御ファイル内に authorized_keys
セクションを記述しないでください。
rootpassword
と root ユーザオプションの組み合わせについてlinuxrc
での rootpassword
と root
に対する user
セクションを同時に設定することもできます。user
セクション内にパスワードの指定が書かれていない場合、パスワードは linuxrc
側に記述したものが使われますが、書かれている場合は linuxrc
に書かれたものより優先されます。
root
以外のスーパーユーザアカウントを作成してはなりません技術的な観点では root
以外の名前でユーザ ID ( uid
) 0
のアカウントを作成することができますが、アプリケーションやスクリプト、サードパーティ製の製品によっては、 root
という名前で管理者ユーザが存在していることを前提にしているものもあります。これらの設定を変更するなどして root
のアカウント名変更に対応できる場合もありますが、場合によってはパッケージ更新のたびに毎回対応を行わなければならないこともあります。特に複数のサードパーティ製アプリケーションが存在する複雑な環境の場合、それぞれのアプリケーションに対して対応の可否を確認しなければならなくなります。
このように root
のアカウント名変更による影響が予測できない範囲に及ぶことから、 SUSE では root
のアカウント名変更をサポート対象外としております。
また root
のアカウント名変更は一般に、アカウントの隠蔽や攻撃回避の目的で行われますが、 /etc/passwd
には 644
のパーミッションを設定して一般ユーザからも読めるように設定しなければならないことから、たとえアカウント名を変更したとしても、ユーザ ID 0 のアカウント名が何であるのかは容易に判別ができてしまう問題もあります。root
アカウントの保護に関する詳細は、 14.5項 「root
ログインの制限」 および 14.5.3項 「SSH ログインの制限」 をお読みください。
uid
) の指定についてLinux システム内のユーザには数値のユーザ ID が設定されます。 AutoYaST の制御ファイル内でこれを指定したい場合は、 uid
タグを利用して直接指定することができますが、指定しない場合はシステム側で自動的に設定されます。
なお、ユーザ ID はシステム内で重複があってはなりません。重複が発生してしまうと、ログインマネージャ gdm
のようなアプリケーションが、正しく動作しなくなってしまいます。
AutoYaST の制御ファイルでユーザを追加する場合は、 ID を指定するユーザとしないユーザを混在させるのは避けておくことを強くお勧めします。混在させてしまうと、ユーザ ID の重複が発生する可能性があります。 AutoYaST の制御ファイル内では、全てのユーザに対してユーザ ID を設定するか、もしくは全てのユーザに対してユーザ ID を自動設定させるのか、いずれかにしてください。
username
テキスト
<username>lukesw</username>
必須です。正しいユーザ名である必要があります。詳しくは man 8 useradd
をお読みください。
fullname
テキスト
<fullname>Tux Torvalds</fullname>
任意指定です。ユーザのフルネームを指定します。
forename
テキスト
<forname>Tux</forename>
任意指定です。ユーザの名前 (ファーストネーム) を指定します。
surname
テキスト
<surname>Skywalker</surname>
任意指定です。ユーザの姓を指定します。
uid
番号
<uid>1001</uid>
任意指定です。ユーザ ID を指定します。システム内で重複していてはならず、かつ負の数であってはなりません。何も指定しない場合、 AutoYaST はユーザ ID を自動的に選択します。さらに詳しい情報については、 注記: ユーザ ID ( uid
) の指定について もお読みください。
gid
番号
<gid>100</gid>
任意指定です。初期グループ ID を指定します。重複していてはならず、かつ負の数であってはなりません。また、既存のグループ ID を指定しなければなりません。
home
パス
<home>/home/luke</home>
任意指定です。ユーザのホームディレクトリの絶対パスを指定します。既定では /home/ユーザ名
が使用されます (例: ユーザ名が alice
であれば /home/alice
になります) 。
home_btrfs_subvolume
ブール値
<home_btrfs_subvolume config:type="boolean">true</home_btrfs_subvolume>
任意指定です。 btrfs サブボリューム内にホームディレクトリを生成します。既定では無効化されます。
shell
パス
<shell>/usr/bin/zsh</shell>
任意指定です。既定では /bin/bash
が設定されます。それ以外のものを指定する場合は、対応するパッケージがインストールされていることを確認してください (software
セクション内でパッケージをインストールする必要があります) 。
user_password
テキスト
<user_password>some-password</user_password>
任意指定です。パスワードを単純なテキスト形式 (非推奨) か暗号化した形式で設定します。暗号化した形式でパスワードを設定したい場合は、 mkpasswd
コマンドをお使いください。パスワードは /etc/shadow
(コロン区切りで 2 つめの項目) 内に書き込まれます。プロファイル内でパスワードの暗号化可否を設定したい場合は、 encrypted
パラメータを設定してください。パスワードの暗号化を有効化している場合、この項目にエクスクラメーションマーク (!) を指定すると、指定した値がそのまま /etc/shadow
に書き込まれ、対象のアカウントがロック (施錠) されます。これにより、そのユーザはコンソールにログインできなくなります。
encrypted
ブール値
<encrypted config:type="boolean">true</encrypted>
任意指定です。指定しない場合、 false
が設定されたものとみなされます。ここでは、プロファイル内でユーザに対するパスワードを暗号化するかどうかを設定します。 AutoYaST では標準的な暗号化アルゴリズム (詳しくは man 3 crypt
をお読みください) に対応しています。
password_settings
パスワードの設定
<password_settings> <expire/> <max>60</max> <warn>7</warn> </password_settings>
任意指定です。いくつかのパスワード関連の設定をカスタマイズすることができます: expire
(YYYY-MM-DD
形式でのアカウント有効期限), flag
( /etc/shadow
のフラグ), inact
(パスワードの有効期限が切れてから、アカウントを無効化するまでの日数), max
(パスワードの有効期限日数), min
(有効期限が切れたあと、ユーザがパスワードを変更できるようになるまでの日数), warn
(パスワードの有効期限切れを予告警告する日数) 。
authorized_keys
認可済みの鍵の一覧
<authorized_keys config:type="list"> <listentry>ssh-rsa ...</listentry> </authorized_keys>
$HOME/.ssh/authorized_keys
に書き込むべき認可済みのキーのリストを指定します。下記の例をご覧ください。
プロファイル内には、パスワードの有効期限や初期に所属するグループ、ホームディレクトリのプレフィクスなど、さまざまな新規ユーザ向けの既定値を設定することができます。なお、プロファイル内で個別に指定していれば、既定値ではなく指定した値を利用してユーザを作成することができます。 AutoYaST ではこれらの設定を /etc/default/useradd
やその他の useradd
向けファイルに書き込みます。
group
テキスト
<group>100</group>
任意指定です。既定の初期ログイングループを指定します。
home
パス
<home>/home</home>
任意指定です。ユーザのホームディレクトリのプレフィクスを指定します。
expire
日付
<expire>2017-12-31</expire>
任意指定です。 YYYY-MM-DD
の形式で、既定のパスワード有効期限を指定します。
inactive
番号
<inactive>3</inactive>
任意指定です。アカウントの期限が切れてから無効化するまでの日数を指定します。
shell
パス
<shell>/usr/bin/fish</shell>
既定のログインシェルを指定します。既定値は /bin/bash
です。それ以外のものを指定する場合は、対応するパッケージがインストールされていることを確認してください (software
セクション内でパッケージをインストールする必要があります) 。
umask
ファイル作成時のモードマスク
<umask>022</umask>
ホームディレクトリに対するファイル作成時のモードマスクを設定します。既定では useradd
は 022
を使用します。詳しくは man 8 useradd
および man 1 umask
をお読みください。
グループの一覧は、例に示しているとおり <groups>
内に定義します。
<groups config:type="list"> <group> <gid>100</gid> <groupname>users</groupname> <userlist>bob,alice</userlist> </group> </groups>
groupname
テキスト
<groupname>users</groupname>
必須です。正しいグループ名である必要があります。詳しくは man 8 groupadd
をお読みください。
gid
番号
<gid>100</gid>
任意指定です。グループ ID を指定します。重複していてはならず、かつ負の数であってはなりません。
userlist
ユーザリスト
<userlist>bob,alice</userlist>
任意指定です。グループに所属すべきユーザの一覧を指定します。ユーザ名はカンマで区切ります。
AutoYaST のプロファイルでは、 2 種類の特殊なログイン設定 (自動ログイン、パスワード無しログイン) を有効化することができます。いずれも既定では無効化されています。
<login_settings> <autologin_user>vagrant</autologin_user> <password_less_login config:type="boolean">true</password_less_login> </login_settings>
password_less_login
ブール値
<password_less_login config:type="boolean">true</password_less_login>
任意指定です。パスワード無しでのログインを許可します。ただし、グラフィカルなログインにしか効果がありません。
autologin_user
テキスト
<autologin_user>alice</autologin_user>
任意指定です。指定したユーザに対する自動ログインを行います。
自動インストールの処理内にスクリプトを追加することで、必要に応じた独自のカスタマイズを実現することができるほか、インストール時のさまざまな段階で制御を行うことができるようになります。
自動インストールの処理内では、全部で 5 箇所のスクリプトの実行タイミングが提供されています。
全てのスクリプトは <scripts> セクション内に記述します。
pre-scripts
: いずれかの作業が発生するよりも前の、最も早い段階 (事前スクリプト)
postpartitioning-scripts
: パーティションの設定と /mnt
へのマウントが完了しているが、 RPM のインストールを行うよりも前の段階 (パーティション設定後スクリプト)
chroot-scripts
: パッケージのインストールが完了し、初回の起動が行われるよりも前の段階 (chroot 環境スクリプト)
post-scripts
: インストール済みのシステムの初回起動時で、サービスが全く動作していない状態 (事後スクリプト)
init-scripts
: インストール済みのシステムの初回起動時で、全てのサービスが起動し動作している状態 (準備スクリプト)
YaST がシステムに対して何らかの変更を加えるよりも前の段階で動作します (ハードウエアの検出が完了しているものの、パーティション設定やパッケージのインストールよりも前の段階) 。
事前スクリプトでは制御ファイルの修正を行い、 AutoYaST に対して修正後のものを読み込み直すように指示することができます。制御ファイルは /tmp/profile/autoinst.xml
に配置されますので、修正後の版を /tmp/profile/modified.xml
に配置してください。 AutoYaST では、事前スクリプトの動作完了後に修正後のファイルを読み込みなおします。
事前スクリプトでは、ストレージデバイスの編集を行うこともできます。たとえば新しいパーティションの作成や、マルチパスのような特定技術の設定変更などがそれにあたります。 AutoYaST では、全ての事前スクリプトが実行された後に、必ず再度ストレージデバイスをチェックするようになっています。
事前スクリプトはインストールの冒頭で動作します。インストール時に確認を求めるように設定した場合 (profile/install/general/mode/confirm
) でも、これらのスクリプトは確認画面を表示するよりも前の段階で動作してしまいます。
事前スクリプトで zypper を実行したい場合は、動作中の YaST プロセスと衝突しないようにするため、 ZYPP_LOCKFILE_ROOT="/var/run/autoyast" という環境変数を設定する必要があります。
事前スクリプト
の要素は下記のように配置しなければなりません:
<scripts> <pre-scripts config:type="list"> <script> ... </script> </pre-scripts> </scripts>
YaST がパーティションの設定を行い、 /etc/fstab
内に書き込みを行った後に動作するスクリプトです。 /mnt
内には何もないシステムがマウントされているタイミングになります。
パーティション設定後スクリプト
の要素は下記のように配置しなければなりません:
<scripts> <postpartitioning-scripts config:type="list"> <script> ... </script> </postpartitioning-scripts> </scripts>
chroot 環境スクリプトはインストールが完了したあと、マシンの再起動を行う前に動作します。 chroot スクリプトはインストーラがインストール済みのシステムに chroot し、ブートローダの設定を行う前に実行するか、もしくはインストール済みのシステムに chroot した後に動作させることができます (詳しくは chrooted
パラメータをお読みください) 。
chroot 環境スクリプト
の要素は下記のように配置しなければなりません:
<scripts> <chroot-scripts config:type="list"> <script> ... </script> </chroot-scripts> </scripts>
これらのスクリプトは、 AutoYaST がシステムの設定を完了し、システムの初回起動が完了したあとに実行されます。
事後スクリプト
の要素は下記のように配置しなければなりません:
<scripts> <post-scripts config:type="list"> <script> ... </script> </post-scripts> </scripts>
これらのスクリプトは YaST の処理が完了し、ネットワークの準備が完了したあと、初回の起動処理内で実行されます。これらの最終スクリプトは /usr/lib/YaST2/bin/autoyast-initscripts.sh
を利用して動作するものであり、一度のみ動作します。準備スクリプトは init-scripts タグで設定します。
準備スクリプト
の要素は下記のように配置しなければなりません:
<scripts> <init-scripts config:type="list"> <script> ... </script> </init-scripts> </scripts>
準備スクリプトは他の種類のスクリプトとは異なり、 YaST 経由で実行されるものではなく、 YaST の完了後に実行されます。このような仕組みであることから、この XML 表記は他とは異なる形になります。
location
スクリプトの取得元の場所を指定します。場所にはプロファイルと同じプロトコル (http, ftp, nfs, など) を指定することができます。
<location>http://10.10.0.1/myInitScript.sh</location>
<location> もしくは <source> を定義しなければなりません。
source
スクリプトそれ自身 (ソースコード) は CDATA タグ内にカプセル化して記述します。 XML プロファイル内にシェルスクリプト全体を配置したくない場合は、 location パラメータを指定してください。
<source> <![CDATA[echo "Testing the init script" >/tmp/init_out.txt]]></source>
<location> もしくは <source> を定義しなければなりません。
filename
スクリプトのファイル名を指定します。一時ディレクトリ /tmp
内にファイル名となります。
<filename>mynitScript5.sh</filename>
準備スクリプトが 1 つだけである場合は任意です。この場合は、既定の名前 ( init-scripts
) が使用されます。複数のスクリプトを使用している場合は、それぞれのスクリプトに対して重複しない名前を設定しなければなりません。
rerun
ayast_setup
を使用して XML ファイルを複数回実行するように設定しても、通常はスクリプトが一度だけ実行されます。この既定の動作を変更したい場合は、この値を true
に設定します。
<rerun config:type="boolean">true</rerun>
任意指定です。既定値は false
(スクリプトを一度だけ実行する) です。
制御ファイルに対して手作業で追加を行っている場合は、スクリプトには CDATA 要素を設定して、制御ファイル内でファイルの文法とその他のタグが混ざらないようにしてください。
下記に示す XML 要素のほとんどは、ここまでに説明してきた全ての種類のスクリプトに対して設定することができます。ただし 準備スクリプト については例外で、ここには一部の要素しか指定することができません。詳しくは 4.31.5項 「準備スクリプト」 をお読みください。
debug
は廃止予定の要素であり、将来のリリースでは削除される予定です。新しく設定するには、 interpreter
パラメータに、インタプリタごとの独自のデバッグパラメータを指定してください。たとえば <interpreter>shell</interpreter> の代わりに <interpreter>/bin/sh -x</interpreter> のように指定すると、 debug
フラグを指定した場合と同じ結果が得られます。
location
スクリプトの取得元の場所を指定します。場所には制御ファイルと同じプロトコル (http, ftp, nfs, など) を指定することができます。たとえば下記のようになります:
<location>http://10.10.0.1/myPreScript.sh</location>
場所の指定には、制御ファイルからの相対パスを使用することもできます。相対パスを指定する場合、 location
は下記のようになります:
<location>relurl://script.sh</location>
それ以外にも、 repo
URI スキームを使用することもできます。これはインストール元からの相対パスを指定するもので、たとえば下記のようになります:
<location>repo:/script.sh</location>
location
もしくは source
を定義しなければなりません。
source
スクリプトそれ自身 (ソースコード) は CDATA タグ内にカプセル化して記述します。 XML プロファイル内にシェルスクリプト全体を配置したくない場合は、 location パラメータを指定してください。
<source> <![CDATA[ echo "Testing the pre script" > /tmp/pre-script_out.txt ]]> </source>
location
もしくは source
を定義しなければなりません。
interpreter
スクリプトで使用するインタプリタを指定します。動作させる環境内で利用可能な任意のインタプリタを指定することができます。通常はフルパスでインタプリタを指定します (パラメータを付けることもできます) が、古い形式として "shell", "perl", "python" の各キーワードでインタプリタを指定することもできます (廃止予定の仕組みで、 debug
フラグでサポートされるものです) 。
<interpreter>/bin/bash -x</interpreter>
任意指定です。既定値は shell
です。
file name
スクリプトのファイル名を指定します。一時ディレクトリ /tmp
内でのファイル名となります。
<filename>myPreScript5.sh</filename>
任意指定です。既定値はスクリプトの種類ごとに異なります (この例の場合は pre-scripts になります) 。複数のスクリプトを使用している場合は、それぞれのスクリプトに対して重複しない名前を設定しなければなりません。また、 filename
を指定しておらず、 location
を指定している場合は、指定したロケーションパスのファイル名を使用します。
feedback
このブール値を true
に設定すると、スクリプトの出力メッセージとエラーメッセージ (STDOUT および STDERR) がポップアップとして表示されるようになります。ユーザ側では OK ボタンを押して確認する必要が発生します。
<feedback config:type="boolean">true</feedback>
任意指定です。既定値は false
です。
feedback_type
message
, warning
, error
のいずれかの値を指定します。これらのポップアップに対するタイムアウトは、 <report> セクションで設定します。
<feedback_type>warning</feedback_type>
任意指定です。何も指定しない場合、常に動作を一時停止してポップアップを表示します。
debug
この値を true
に設定すると、シェルスクリプト内の各行がログに記録されるようになります。 Perl スクリプトの場合は警告表示が有効化されます。これは廃止予定のパラメータで、他の言語の場合は interpreter
パラメータにそれぞれのデバッグ用オプションを指定します (例: "<interpreter>ruby -w</interpreter>") 。
<debug config:type="boolean">true</debug>
任意指定です。既定値は true
です。
notification
スクリプトを裏で実行している間、ここで設定したテキストをポップアップとして表示します。
<notification>Please wait while script is running...</notification>
任意指定です。指定しない場合、通知ポップアップを表示しません。
param-list
スクリプトを呼び出す際のパラメータを指定します。 param
の項目は必要に応じて複数個設定することができます。複数個を指定した場合、それらはスペースで区切られてスクリプトのコマンドラインを構成します。パラメータそれ自身にスペースを含めたい場合は、シェルの引用符を指定してください。
<param-list config:type="list"> <param>par1</param> <param>par2 par3</param> <param>"par4.1 par4.2"</param> </param-list>
任意指定です。設定しない場合、スクリプトに対してパラメータを渡しません。
rerun
XML ファイル内に複数の ayast_setup
を配置した場合であっても、スクリプトは通常、一度だけ実行します。この既定の動作を変更したい場合は、この値を true
に設定してください。
<rerun config:type="boolean">true</rerun>
任意指定です。既定値は false
で、スクリプトを一度だけ実行します。
chrooted
インストールの際、新しいシステムは /mnt
内にマウントされます。このパラメータを false
に設定すると、 AutoYaST は chroot
を行わず、このステージではブートローダをインストールしなくなります。このパラメータを true
に設定すると、 AutoYaST は chroot
を実行して /mnt
内に入り、ブートローダのインストールを行うようになります。つまり、新しくインストールしたシステムに対して何らかの変更を行いたい場合、 /mnt
のプレフィクスを指定せずに実行することができるようになります。
<chrooted config:type="boolean">true</chrooted>
任意指定です。既定値は false
です。このオプションは chroot 環境スクリプトでのみ設定することができます。
<?xml version="1.0"?> <!DOCTYPE profile> <profile xmlns="http://www.suse.com/1.0/yast2ns" xmlns:config="http://www.suse.com/1.0/configns"> <scripts> <chroot-scripts config:type="list"> <script> <chrooted config:type="boolean">true</chrooted> <filename>chroot-post.sh</filename> <interpreter>shell</interpreter> <source><![CDATA[ echo "Testing chroot (chrooted) scripts" ls ]]> </source> </script> <script> <filename>chroot-pre.sh</filename> <interpreter>/bin/bash -x</interpreter> <source><![CDATA[ echo "Testing chroot scripts" df cd /mnt ls ]]> </source> </script> </chroot-scripts> <post-scripts config:type="list"> <script> <filename>post.sh</filename> <interpreter>shell</interpreter> <source><![CDATA[ echo "Running Post-install script" systemctl start portmap mount -a 192.168.1.1:/local /mnt cp /mnt/test.sh /tmp umount /mnt ]]> </source> </script> <script> <filename>post.pl</filename> <interpreter>perl</interpreter> <source><![CDATA[ print "Running Post-install script"; ]]> </source> </script> </post-scripts> <pre-scripts config:type="list"> <script> <interpreter>shell</interpreter> <location>http://192.168.1.1/profiles/scripts/prescripts.sh</location> </script> <script> <filename>pre.sh</filename> <interpreter>shell</interpreter> <source><![CDATA[ echo "Running pre-script" ]]> </source> </script> </pre-scripts> <postpartitioning-scripts config:type="list"> <script> <filename>postpart.sh</filename> <interpreter>shell</interpreter> <debug config:type="boolean">false</debug> <feedback config:type="boolean">true</feedback> <source><![CDATA[ touch /mnt/testfile echo Hi ]]> </source> </script> </postpartitioning-scripts> </scripts> </profile>
インストール完了後は、スクリプトと出力されたログファイルが /var/adm/autoinstall
内に配置されます。スクリプトは scripts
サブディレクトリ内、出力されたログは log
サブディレクトリ内をそれぞれご覧ください。
出力されたログにはスクリプトを実行した際に生成された内容が書かれます。標準出力と標準エラー出力の両方が記録されます。
スクリプトが 0 以外の終了コードで終了した場合、ログ内には警告を示すメッセージが出力されます。これを出力したくない場合は、 feedback
オプションを指定してください。
sysconfig リソースを使用することで、 sysconfig リポジトリ ( /etc/sysconfig
) 内にある設定変数を直接定義することができます。 sysconfig 変数はさまざまなシステムコンポーネントや環境変数を設定することのできる仕組みで、要件に正確に適合させることができるようになります。
下記に sysconfig リソースの設定例を示します。
<sysconfig config:type="list" > <sysconfig_entry> <sysconfig_key>XNTPD_INITIAL_NTPDATE</sysconfig_key> <sysconfig_path>/etc/sysconfig/xntp</sysconfig_path> <sysconfig_value>ntp.host.com</sysconfig_value> </sysconfig_entry> <sysconfig_entry> <sysconfig_key>HTTP_PROXY</sysconfig_key> <sysconfig_path>/etc/sysconfig/proxy</sysconfig_path> <sysconfig_value>proxy.host.com:3128</sysconfig_value> </sysconfig_entry> <sysconfig_entry> <sysconfig_key>FTP_PROXY</sysconfig_key> <sysconfig_path>/etc/sysconfig/proxy</sysconfig_path> <sysconfig_value>proxy.host.com:3128</sysconfig_value> </sysconfig_entry> </sysconfig>
絶対パスと相対パスのどちらでも指定することができます。相対パスを指定した場合は、 /etc/sysconfig
ディレクトリからの相対パスとして扱われます。
さまざまなアプリケーションやサービスでは、インストール済みのシステム内に設定ファイルを配置することで、設定を行うことができます。たとえば Web サーバをインストールしているような環境では、 ( httpd.conf
) のような設定ファイルが存在しています。
このリソースを使用してインストール済みのシステムにおけるパスを指定することで、制御ファイル内に設定ファイルの内容そのものを含めることができるようになります。 YaST では、指定された場所にファイルをコピーします。
この機能を使用するには、インストール先のシステムに autoyast2 パッケージをインストールする必要があります。このパッケージがインストールされていない場合、自動的にインストールを行います。
また、 file_location
を指定することで、ファイルの取得元を指定することもできます。取得元は HTTP サーバのようなネットワークリソースでもかまいません (例: <file_location>http://my.server.site/issue</file_location>
) 。
このほか、 relurl://
プレフィクスを使用することで、ローカルファイルを指定することもできます (例: <file_location>relurl://path/to/file.conf</file_location>
。)
なお、ディレクトリを作成したい場合は、スラッシュで終わる file_path
を指定してください。
<files config:type="list"> <file> <file_path>/etc/apache2/httpd.conf</file_path> <file_contents> <![CDATA[ some content ]]> </file_contents> </file> <file> <file_path>/mydir/a/b/c/</file_path> <!-- create directory --> </file> </files>
下記にはさらに複雑な例を示しています。この設定は file_contents
内で入れた内容をファイルに出力し、ファイルのパーミッションと所有権情報を設定してします。ファイルがシステムにコピーされたあと、スクリプトが実行されます。このような仕組みにより、ファイルをクライアントの環境に合わせて修正し、配置することができるようになります。
<files config:type="list"> <file> <file_path>/etc/someconf.conf</file_path> <file_contents> <![CDATA[ some content ]]> </file_contents> <file_owner>tux.users</file_owner> <file_permissions>444</file_permissions> <file_script> <interpreter>shell</interpreter> <source> <![CDATA[ #!/bin/sh echo "Testing file scripts" >> /etc/someconf.conf df cd /mnt ls ]]> </source> </file_script> </file> </files>
インストールの際、ユーザに対して制御ファイルに設定すべき値を問い合わせるように設定することもできます。この機能を使用した場合、インストールの途中でポップアップが表示され、ユーザに対して値を問い合わせます。インストールを完全に自動化したいものの、ユーザに対してローカルのアカウントに対するパスワードを尋ねたりしたいような場合は、制御ファイル内に ask
ディレクティブを設定してください。
下記のような XML 構造内に、必要な要素を追加していきます:
<general> <ask-list config:type="list"> <ask> ... </ask> </ask-list> </general>
question
ユーザに対して提示する質問文を指定します。
<question>LDAP サーバのアドレスを入力してください</question>
既定値は要素のパスそのものです (これではユーザに対する問い合わせになりませんので、 question については必ず設定しておくことをお勧めします) 。
default
ユーザに対して提示する既定値を指定します。テキスト入力の場合、表示されたタイミングでこの値が入力済みの状態になります。チェックボックスの場合は true もしくは false を指定することで、あらかじめ選択済みの状態か、そうでないかを指定することができます。
<default>dc=suse,dc=de</default>
任意指定です。
help
質問の左側に表示する、任意指定のヘルプテキストを指定します。
<help>LDAP サーバのアドレスを入力してください。</help>
任意指定です。
title
質問の上に表示する任意指定のタイトルを指定します。
<title>LDAP サーバ</title>
任意指定です。
type
入力すべきデータの形式を指定します。指定可能な値は symbol
(シンボル), boolean
(ブール値), string
(文字列), integer
(整数) のいずれかです。たとえばパーティション内でのファイルシステムの選択であれば symbol
を、ユーザ設定内でのホームディレクトリの暗号化可否設定であれば boolean
になります。制御ファイル内の項目から形式を判断したい場合は、 config:type="...."
の箇所をご確認ください。また、 static_text
という形式を指定することもできます。この場合は、ユーザに対して入力を求めず、ヘルプテキストに含まれていない情報を表示するために使用することができます。
<type>symbol</type>
任意指定です。既定値は string
です。 symbol
を指定した場合は、 selection
要素も設定しなければなりません (下記参照) 。
password
このブール値を true
に設定すると、単純なテキスト入力ではなく、パスワードダイアログを表示するようになります。なお、 type
の値が string
の場合にのみ効果があります。
<password config:type="boolean">true</password>
任意指定です。既定値は false
です。
pathlist
path
(パス) 要素の一覧を指定します。パスはカンマ区切りのリストで、変更したい要素のパスを表すものです。たとえば制御ファイル内でのネットワーク設定の要素は <networking>
セクション内にありますが、この場合は networking
のように指定します。
<pathlist config:type="list"> <path>networking,dns,hostname</path> <path>...</path> </pathlist>
制御ファイル内に書かれている最初のユーザに対するパスワードを変更したい場合は、パスを users,0,user_password
のように指定します。ここで 0
は、制御ファイルの対象となるセクション内にある最初の要素を意味します。たとえば下記の <users config:type="list"> の例で言うと、 root
が該当することになります。同様に 1
を指定すると、 2 番目の項目を意味することになります。
<users config:type="list"> <user> <username>root</username> <user_password>password to change</user_password> <encrypted config:type="boolean">false</encrypted> </user> <user> <username>tux</username> <user_password>password to change</user_password> <encrypted config:type="boolean">false</encrypted> </user> </users>
上記のような <user> セクションがある場合、 root
のパスワード設定を行う場合は、 <pathlist> は下記のようになります:
<pathlist config:type="list"> <path>users,0,user_password</path> </pathlist>
この情報の設定は任意ですが、 path
もしくは file
のいずれかを指定すべきです。
file
質問に対してユーザが入力した内容をファイルに保存することもできます。このようにすることで、スクリプトから読み込んで使用できるようになります。なお、 stage=initial
を設定した場合で、第 2 ステージで回答を使用したい場合は、 chrooted=false
を指定した chroot 環境スクリプトで、回答が書かれたファイルをコピーする必要があります。たとえば cp /tmp/my_answer /mnt/tmp/
のように実行します。これは、第 1 ステージでは /tmp
が RAM ディスク内に存在するため、再起動を行うと消えてしまうためです。このような仕組みから、 /mnt/
以下にマウントされたインストール先のシステムにコピーを行うことで、この問題を解決することができます。
<file>/tmp/answer_hostname</file>
この情報の設定は任意ですが、 path
もしくは file
のいずれかを指定すべきです。
stage
質問を表示するインストール時のステージを指定します。ここでは cont
もしくは initial
のいずれかを指定することができます。 initial
はインストールの冒頭で表示する意味となり、インストール前スクリプトの直後に表示されます。対する cont
はシステムを初めて再起動した後に表示されます。なお、ディスク内の制御ファイルに対して回答を書き込みたい場合は、 initial
を指定してください。また、 initial
でパスワードを入力した場合、パスワードは暗号化されずに保存されることにも注意してください。また、 cont
を指定した場合、ファイルシステム関連の質問を表示しても意味がないことにも注意してください。これは、その時点では既にパーティションの設定が完了しているため、制御ファイルを書き換えても効果が無いためです。
<stage>cont</stage>
任意指定です。既定値は initial
です。
selection
selection
要素には entry
要素のリストを指定します。それぞれの entry
要素は、ユーザ側に提示される選択肢を表します。この場合、テキストボックスには直接値を指定することができません。一覧から値を選択するのみとなります。
<selection config:type="list"> <entry> <value> btrfs </value> <label> Btrfs File System </label> </entry> <entry> <value> ext3 </value> <label> Extended3 File System </label> </entry> </selection>
type=string
の場合は任意、 type=boolean
の場合は設定不可、 type=symbol
の場合は必須です。
dialog
1 つのダイアログ内で複数の質問を表示することもできます。これを行うには、この要素で整数のダイアログ ID を指定してください。同じダイアログ ID の質問は、同じダイアログ内に表示されるようになります。また、ダイアログは ID 順に並べられます。
<dialog config:type="integer">3</dialog>
任意指定です。
element
1 つのダイアログ内で複数の質問を表示することもできます。この場合、 element
で整数の ID を指定する必要があります。ダイアログ内での質問は、この ID 順に並べられます。
<element config:type="integer">1</element>
任意指定です (dialog
もご覧ください) 。
width
既定のダイアログ幅を広げることができます。ダイアログに対して複数の幅指定が存在する場合は、最も大きいものが使用されます。値は 1 文字分をおおよそ 1 とした幅で指定します。
<width config:type="integer">50</width>
任意指定です。
height
既定のダイアログの高さを広げることができます。ダイアログに対して複数の高さ指定が存在する場合は、最も大きいものが使用されます。値は 1 行分をおおよそ 1 とした高さで指定します。
<height config:type="integer">15</height>
任意指定です。
frametitle
1 つのダイアログ内で複数の質問を表示することもできます。この場合、ダイアログ内の各質問には枠が描かれ、枠タイトルと各質問に対するキャプションが表示されます。また 1 つの枠内に複数の要素を設定することもできます。この場合、同じ枠タイトルを設定する必要があります。
<frametitle>User data</frametitle>
任意指定です。既定では枠タイトルが設定されません。
script
質問に対する回答を入力したあと、スクリプトを実行することができます (スクリプトに関する詳細は 4.34.1項 「既定値スクリプト」 をお読みください) 。
<script>...</script>
任意指定です。既定ではスクリプトを動作させません。
ok_label
ボタンのラベルを変更することもできます。 1 つのダイアログに対しては、最後に指定された要素が使用されます。
<ok_label>Finish</ok_label>
任意指定です。
back_label
(戻る) ボタンのラベルを変更することもできます。 1 つのダイアログに対しては、最後に指定された要素が使用されます。
<back_label>change values</back_label>
任意指定です。
timeout
ここではタイムアウトを秒単位で指定することができます。ここで指定した時間内に何も回答を行わなかった場合、既定値が回答されたものとして扱われます。なお、ダイアログ内のウイジェットに触れたり、何らかの変更を行ったりした場合は、タイムアウトの設定が解除され、
を押すまで待機するようになります。<timeout config:type="integer">30</timeout>
任意指定です。値を指定しない場合は 0
として扱われ、タイムアウトの設定がないものとして処理されます。
default_value_script
質問に対する既定値を設定するために、スクリプトを動作させることができます (詳しい手順については 4.34.1項 「既定値スクリプト」 をお読みください) 。この機能は、何らかの理由で既定値を 計算 しなければならないような場合に有用で、 timeout
オプションと併用して使用します。
<default_value_script>...</default_value_script>
任意指定です。既定ではスクリプトを動作させません。
質問に対する既定値を設定するために、スクリプトを動作させることができます。この機能は、何らかの理由で既定値を 計算 しなければならないような場合に有用で、 timeout
オプションと併用して使用します。
スクリプトは XML 構造内の要素として配置します。具体的には 4.31.6項 「スクリプトの XML パラメータ」 のようになります:
<general> <ask-list config:type="list"> <ask> <default_value_script> ... </default_value_script> </ask> </ask-list> </general>
echo
コマンドで STDOUT (標準出力) に出力することで、ダイアログに対する既定値を設定することができます。なお、スクリプトの終了コードが 0 以外であった場合、通常の既定値が設定されます。なお、 \n
を省略するために echo -n
を使用する必要がある点と、出力する値が適切なものでなければならない点、そしてブール値の場合は 「okay」 等を使用すべきではない点 (代わりに 「true」 を出力してください) にそれぞれ注意してください。
質問に対する回答が表示された後にスクリプトを実行することができます。
下記のような XML 構造内に、必要な要素を追加していきます:
<general> <ask-list config:type="list"> <ask> <script> ... </script> </ask> </ask-list> </general>
4.31.6項 「スクリプトの XML パラメータ」 内に示した要素以外にも、 <ask>
要素内のスクリプトには下記を指定することができます:
filename
スクリプトのファイル名を指定します。
<filename>my_ask_script.sh</filename>
既定値は ask_script.sh です。
environment
スクリプトに対して、環境変数の形で問い合わせの回答を設定するかをブール値で指定します。設定される環境変数は VAL
になります。
<environment config:type="boolean">true</environment>
任意指定です。既定値は false
です。
feedback
スクリプトの実行時にフィードバックを表示するかどうかを指定します。 STDOUT に何らかの値を出力すると、スクリプトの実行終了後にポップアップメッセージが表示されるようになります。
<feedback config:type="boolean">true</feedback>
任意指定です。既定値は false
です。
rerun_on_error
スクリプトの終了コードが 0 (ゼロ) になるまでダイアログを開いたままにします。この機能を使用することで、ユーザからの入力を検証することができます。なお、スクリプト側では適切なエラーメッセージを表示するようにしてください。また、スクリプトからのエラーメッセージを表示するには、 feedback
オプションを true
に設定する必要があることにも注意してください。このオプションの指定は任意で、既定値は false
です。
なお、スクリプト内で /tmp/next_dialog
ファイルを作成することもできます。このファイル内には、次に表示すべきダイアログの ID を指定します。 -1 を書き込むと、この流れを終了することができます。
下記に ask
機能の使用例を示します。
<general> <ask-list config:type="list"> <ask> <pathlist config:type="list"> <path>ldap,ldap_server</path> </pathlist> <stage>cont</stage> <help>Choose your server depending on your department</help> <selection config:type="list"> <entry> <value>ldap1.mydom.de</value> <label>LDAP for development</label> </entry> <entry> <value>ldap2.mydom.de</value> <label>LDAP for sales</label> </entry> </selection> <default>ldap2.mydom.de</default> <default_value_script> <source> <![CDATA[ echo -n "ldap1.mydom.de" ]]> </source> </default_value_script> </ask> <ask> <pathlist config:type="list"> <path>networking,dns,hostname</path> </pathlist> <question>Enter Hostname</question> <stage>initial</stage> <default>enter your hostname here</default> </ask> <ask> <pathlist config:type="list"> <path>partitioning,0,partitions,0,filesystem</path> </pathlist> <question>File System</question> <type>symbol</type> <selection config:type="list"> <entry> <value config:type="symbol">ext4</value> <label>default File System (recommended)</label> </entry> <entry> <value config:type="symbol">ext3</value> <label>Fallback File System</label> </entry> </selection> </ask> </ask-list> </general>
下記の例は AutoYaST の制御ファイルを選択させる場合の例です。 AutoYaST は問い合わせダイアログの動作完了後に modified.xml
を読み込みなおしますので、これにより制御ファイルを全く新しくすることができます。
<general> <ask-list config:type="list"> <ask> <selection config:type="list"> <entry> <value>part1.xml</value> <label>Simple partitioning</label> </entry> <entry> <value>part2.xml</value> <label>encrypted /tmp</label> </entry> <entry> <value>part3.xml</value> <label>LVM</label> </entry> </selection> <title>XML Profile</title> <question>Choose a profile</question> <stage>initial</stage> <default>part1.xml</default> <script> <filename>fetch.sh</filename> <environment config:type="boolean">true</environment> <source> <![CDATA[ wget http://10.10.0.162/$VAL -O /tmp/profile/modified.xml 2>/dev/null ]]> </source> <debug config:type="boolean">false</debug> <feedback config:type="boolean">false</feedback> </script> </ask>tion> </ask-list> </general>
下記のようなスクリプトを指定することで、質問に対する回答をチェックすることができます:
<general> <ask-list config:type="list"> <ask> <script> <filename>my.sh</filename> <rerun_on_error config:type="boolean">true</rerun_on_error> <environment config:type="boolean">true</environment> <source><![CDATA[ if [ "$VAL" = "myhost" ]; then echo "Illegal Hostname!"; exit 1; fi exit 0 ]]> </source> <debug config:type="boolean">false</debug> <feedback config:type="boolean">true</feedback> </script> <dialog config:type="integer">0</dialog> <element config:type="integer">0</element> <pathlist config:type="list"> <path>networking,dns,hostname</path> </pathlist> <question>Enter Hostname</question> <default>enter your hostname here</default> </ask> </ask-list> </general>
この機能は S/390 アーキテクチャでのみ利用可能です。
Kdump を使用することで、カーネル全体がクラッシュしてしまった際にクラッシュダンプファイルを作成することができるようになります。クラッシュダンプファイルには、システムがクラッシュした時点でのメモリ内容が含まれます。クラッシュダンプファイルはコアファイルとも呼ばれ、 (カーネルの) 開発者がクラッシュの原因を調査する際に使用します。 Kdump はクラッシュの再現が難しいものの、問題の修正が重要となるサーバ用途で特に有用です。
なお、 Kdump にはマイナス面もあります。 Kdump を有効化すると、 64 MB から 128 MB 程度の追加のメモリが Kdump 向けに予約されます。この領域を利用してダンプファイルを動作させるためです。
本章では、 AutoYaST で Kdump を設定する際の説明のみを行っています。 Kdump の動作については、 kdump(7) のマニュアルページなどをお読みください。
下記の例では、一般的な Kdump 設定を行っています。
<kdump> <!-- メモリ予約 --> <add_crash_kernel config:type="boolean">true</add_crash_kernel> <crash_kernel>256M-:64M</crash_kernel> <general> <!-- ダンプ先の設定 --> <KDUMP_SAVEDIR>ftp://stravinsky.suse.de/incoming/dumps</KDUMP_SAVEDIR> <KDUMP_FREE_DISK_SIZE>64</KDUMP_FREE_DISK_SIZE> <KDUMP_KEEP_OLD_DUMPS>5</KDUMP_KEEP_OLD_DUMPS> <!-- フィルタと圧縮 --> <KDUMP_DUMPFORMAT>compressed</KDUMP_DUMPFORMAT> <KDUMP_DUMPLEVEL>1</KDUMP_DUMPLEVEL> <!-- 通知 --> <KDUMP_NOTIFICATION_TO>tux@example.com</KDUMP_NOTIFICATION_TO> <KDUMP_NOTIFICATION_CC>spam@example.com devnull@example.com</KDUMP_NOTIFICATION_CC> <KDUMP_SMTP_SERVER>mail.example.com</KDUMP_SMTP_SERVER> <KDUMP_SMTP_USER></KDUMP_SMTP_USER> <KDUMP_SMTP_PASSWORD></KDUMP_SMTP_PASSWORD> <!-- kdump カーネル --> <KDUMP_KERNELVER></KDUMP_KERNELVER> <KDUMP_COMMANDLINE></KDUMP_COMMANDLINE> <KDUMP_COMMANDLINE_APPEND></KDUMP_COMMANDLINE_APPEND> <!-- 熟練者向け設定 --> <KDUMP_IMMEDIATE_REBOOT>yes</KDUMP_IMMEDIATE_REBOOT> <KDUMP_VERBOSE>15</KDUMP_VERBOSE> <KEXEC_OPTIONS></KEXEC_OPTIONS> </general> </kdump>
Kdump は既定で有効化されます。下記では Kdump の無効化方法を説明しています。
<kdump> <add_crash_kernel config:type="boolean">false</add_crash_kernel> </kdump>
Kdump ではまず、起動時にメモリを予約する処理を行います。このメモリは起動時のかなり早い段階で予約しなければならないものであることから、設定はカーネルのコマンドラインパラメータの crashkernel
で行います。予約されたメモリは、通常使用しているカーネルがクラッシュした際に呼び出される 「第二のカーネル」 で使用されます。第二のカーネルには特殊な initrd が設定され、ここにはネットワークやディスクにダンプを保存する機能やメールを送信する機能、そして最後にシステムの再起動を行う機能がそれぞれ用意されています。
Kdump でメモリを予約するには、 メモリ量
(64M
のように指定すると、 64MB のメモリを予約する意味になります) と オフセット値
を指定します。これらをあわせて crashkernel=メモリ量@オフセット値
のように指定します。カーネルは適切なオフセット値を検出することができます (ただし、 Xen ハイパーバイザを使用している場合は例外で、オフセット値に 16M
を指定する必要があります) 。メモリ量はお使いのアーキテクチャとメインメモリの量によって異なります。
システムのメモリ量に応じて予約するメモリ量を変更するようにするため、複雑なコマンドライン文法を使用することもできます。これは AutoYaST の制御ファイル 1 つで複数の環境に対応するような場合に有用であるほか、マシンのメインメモリを増やしたり減らしたりするような環境で使用することができます。書式は下記のとおりです:
範囲開始_1-範囲終了_1:メモリ量_1,範囲開始_2-範囲終了_2:メモリ量_2@オフセット
範囲開始_1 には 1 つ目のシステムのメモリ範囲開始 (例: 0M
) を、 範囲終了_1 には 1 つ目のメモリ範囲終了をそれぞれ指定します。 2 つ目以降も同様です。なお、範囲終了の値を省略すると、 無限大
の意味になります。たとえば 256M-2G:64M,2G-:128M
のように指定すると、システムのメモリ量が 256 MB から 2GB までの範囲であれば 64MB 分の予約が、それより大きければ 128MB 分の予約が行われる意味になります。
それとは別に、 crashkernel
パラメータに対して複数の値を設定することもできます。たとえば低メモリと高メモリで別々のセグメントを予約する必要がある場合は、 72M,low
と 256M,high
のように指定します。
<kdump> <!-- メモリ予約 (高/低) --> <add_crash_kernel config:type="boolean">true</add_crash_kernel> <crash_kernel config:type="list"> <listentry>72M,low</listentry> <listentry>256M,high</listentry> </crash_kernel> </kdump>
下記の一覧には、メモリ予約を行う際に必要な設定を示しています:
add_crash_kernel
メモリを予約して Kdump を有効化する場合、 true
を指定します。
<add_crash_kernel config:type="boolean">true</add_crash_kernel>
必須
crash_kernel
上述の crashkernel コマンドラインの書式で設定を行います。
<crash_kernel>256M:64M</crash_kernel>
値のリストを指定することもできます。
<crash_kernel config:type="list"> <listentry>72M,low</listentry> <listentry>256M,high</listentry> </crash_kernel>
必須
本章では、クラッシュダンプの保存場所と保存方法を説明しています。
KDUMP_SAVEDIR
では、ダンプの保存先 URL を指定します。指定可能なプロトコルは下記のとおりです:
file
: ローカルディスクへの保存
ftp
: FTP サーバへの保存 (暗号化無し)
sftp
: SSH2 SFTP サーバへの保存
nfs
: NFS 共有内への保存
cifs
: Samba もしくは Microsoft Windows が提供する CIFS/SMB 共有への保存
詳細は kdump(5) のマニュアルページをお読みください。たとえば file:///var/crash
のように指定すると、 FHS に準拠した既定の場所に保存することができますし、 ftp://user:password@host:port/incoming/dumps
のように指定することもできます。なお、指定したディレクトリ以下に名前とタイムスタンプを含むサブディレクトリが作成され、そのサブディレクトリ内にダンプが保存されます。
ダンプをローカルのディスクに保存する場合は、 KDUMP_KEEP_OLD_DUMPS
を指定することで、古いダンプを自動削除することができます。ここで指定する値は、保存しておくべきダンプ数になります。また、 KDUMP_FREE_DISK_SIZE
で指定した値よりも空き容量が少ない場合、ダンプを保存しないように設定することもできます。
カーネルのダンプは通常圧縮されておらず、フィルタもされていません。そのため、搭載されているメモリの分だけ巨大なファイルになります。より小さいファイルにしたい場合は、ダンプファイルを圧縮するように設定してください。なお、ダンプファイルを開く際には、あらかじめ展開する必要が生じるようになります。
crash(8) デバッグツールで使用できるように各ページを圧縮し、動的な展開を行うようページ圧縮を設定したい場合は、 KDUMP_DUMPFORMAT
に compressed
(既定値) を指定します。
ゼロで埋められているページなど、全てのメモリページを保存したくない場合もあります。このようにダンプをフィルタしたい場合は、 KDUMP_DUMPLEVEL
を指定します。 0 を指定すると完全なダンプを、 31 を指定すると最も小さなダンプを生成することになります。それぞれの値の意味と保存されるページについて、詳しくは kdump(5) と makedumpfile(8) のマニュアルページをお読みください。
KDUMP_SAVEDIR
ダンプと関連ファイルを保存する先を URL で指定します。
<KDUMP_SAVEDIR>file:///var/crash/</KDUMP_SAVEDIR>
必須
KDUMP_FREE_DISK_SIZE
ダンプを保存した後に残しておかなければならない空き容量を、メガバイト単位で指定します。十分な空き容量が存在しない場合、ダンプは保存されなくなります。
<KDUMP_FREE_DISK_SIZE>64</KDUMP_FREE_DISK_SIZE>
任意指定
KDUMP_KEEP_OLD_DUMPS
KDUMP_SAVEDIR
がローカルのディレクトリを指し示している場合、削除せず残しておくべきダンプ数を指定します。 0 を指定するとダンプの削除を無効化します。 -1 を指定すると、最新のものを除いて全て削除するようになります。
<KDUMP_KEEP_OLD_DUMPS>4</KDUMP_KEEP_OLD_DUMPS>
任意指定
マシンがクラッシュしてダンプが保存された際、電子メールによる通知を受け取りたい場合の設定です。
Kdump は initrd 内で動作する仕組みであることから、ローカルのメールサーバはメールを送信することができません。 SMTP サーバを指定して送信する必要があります (下記参照) 。
なお、 KDUMP_NOTIFICATION_TO
には宛先のアドレスを 1 つだけ指定する必要があります。複数のアドレスを指定したい場合は、 KDUMP_NOTIFICATION_CC
に設定してください。なお、いずれの設定でも、電子メールアドレスだけを指定するものとし、名前などは含めないでください。
KDUMP_SMTP_SERVER
のほか、メールサーバ側で認証を行う必要がある場合は、 KDUMP_SMTP_USER
と KDUMP_SMTP_PASSWORD
も指定してください。 TLS/SSL への対応は提供されていませんが、将来的に追加される予定です。
KDUMP_NOTIFICATION_TO
電子メールの送信先となるメールアドレスを 1 つだけ指定します。追加の受信者を設定したい場合は、 KDUMP_NOTIFICATION_CC
で設定してください。
<KDUMP_NOTIFICATION_TO >tux@example.com</KDUMP_NOTIFICATION_TO>
任意指定 (何も指定しない場合、通知が無効化されます)
KDUMP_NOTIFICATION_CC
通知メールのコピー送信先となるメールアドレスを任意の数 (0 個以上) だけ指定します。
<KDUMP_NOTIFICATION_CC >wilber@example.com suzanne@example.com</KDUMP_NOTIFICATION_CC>
任意指定
KDUMP_SMTP_SERVER
メールの配送に使用する SMTP サーバのホスト名を指定します。 SMTP 認証を設定する必要である場合は、 KDUMP_SMTP_USER
と KDUMP_SMTP_PASSWORD
を指定してください。 TLS/SSL には未対応です。
<KDUMP_SMTP_SERVER>email.suse.de</KDUMP_SMTP_SERVER>
任意指定 (何も指定しない場合、通知が無効化されます)
KDUMP_SMTP_USER
SMTP 認証で使用するユーザ名を指定します。 KDUMP_SMTP_PASSWORD
についても設定を行ってください。
<KDUMP_SMTP_USER>bwalle</KDUMP_SMTP_USER>
任意指定
KDUMP_SMTP_PASSWORD
SMTP 認証で使用するパスワードを指定します。 KDUMP_SMTP_USER
についても設定を行ってください。
<KDUMP_SMTP_PASSWORD>geheim</KDUMP_SMTP_PASSWORD>
任意指定
上述のとおり、ダンプを保存する際には特別なカーネルを起動します。どのカーネルを使用するのかを自動検出する仕組みを使用したくない場合 (詳しくは kdump(5) のマニュアルページをお読みください) は、 KDUMP_KERNELVER
でカーネルのバージョンを指定することができます。たとえば、この値を foo
に設定すると、 /boot/vmlinuz-foo
もしくは /boot/vmlinux-foo
(vmlinuz
ファイルが存在するプラットフォームの場合の順序) を使用するようになります。
また、 Kdump カーネルの起動する際のコマンドラインも設定することができます。通常は起動時のコマンドラインから、 Kdump には無関係な設定 (たとえば crashkernel
パラメータなど) を取り除き、 Kdump で必要な設定 (詳しくは kdump(5) のマニュアルページをお読みください) を追加して設定することになります。追加のパラメータを指定したい場合は、 KDUMP_COMMANDLINE_APPEND
を指定してください。コマンドライン全体を設定したい場合は、 KDUMP_COMMANDLINE
を指定してください (この場合、必要なパラメータ全てを設定しなければならないことに注意してください) 。
KDUMP_KERNELVER
Kdump で使用するカーネルのバージョン文字列を指定します。自動検出の仕組みを使用する場合は、指定しないでください (自動検出のほうを強くお勧めします) 。
<KDUMP_KERNELVER >6.4.0-default</KDUMP_KERNELVER>
任意指定 (何も指定しなければ自動検出)
KDUMP_COMMANDLINE_APPEND
Kdump カーネルに渡す追加のコマンドラインパラメータ。
<KDUMP_COMMANDLINE_APPEND >console=ttyS0,57600</KDUMP_COMMANDLINE_APPEND>
任意指定
KDUMP_Command Line
Kdump のコマンドラインとして生成されたものを上書きするための設定です。注意してお使いください。通常は KDUMP_COMMANDLINE_APPEND
のほうを指定します。
<KDUMP_COMMANDLINE_APPEND >root=/dev/sda5 nr_cpus=1 irqpoll</KDUMP_COMMANDLINE>
任意指定
KDUMP_IMMEDIATE_REBOOT
true
を指定すると、ダンプの保存完了後に自動的に再起動を行うようになります。 false
を指定すると再起動を行わなくなります。既定では自動的に再起動します。
<KDUMP_IMMEDIATE_REBOOT >true</KDUMP_IMMEDIATE_REBOOT>
任意指定
KDUMP_VERBOSE
Kdump の冗長出力度をビットマスクで指定します。詳しくは kdump(5) をお読みください。
<KDUMP_VERBOSE>3</KDUMP_VERBOSE>
任意指定
KEXEC_OPTIONS
Kdump カーネルを読み込む際に kexec に渡す追加のオプションを指定します。通常は何も指定しません。
<KEXEC_OPTIONS>--noio</KEXEC_OPTIONS>
任意指定
dns-server
リソースを指定することで、 bind DNS サーバを設定することができます。下記に示す 3 種類の直感的なプロパティでは、 1 が有効、 0 が無効を表しています。
属性 |
値 |
説明 |
---|---|---|
|
0 / 1 |
DNS サーバを chroot 内に閉じこめておくかどうか。 |
|
0 / 1 |
bind を有効にするかどうか (システムの起動時に開始するかどうか) 。 |
|
0 / 1 |
直接的な設定ファイルではなく、 LDAP 内に設定を保存するかどうか。 |
<dns-server> <chroot>0</chroot> <start_service>1</start_service> <use_ldap>0</use_ldap> </dns-server>
これらの基本的な設定のほかにも、下記のリストに示す 3 種類の追加プロパティが提供されています。下記はいずれも、サービスの設定を細かく調整するためのものです。
リスト |
説明 |
---|---|
|
DNS サーバのログ機能に関するオプションです。 |
|
使用すべきファイルやディレクトリ、フォワーダの一覧やその他の設定に関するオプションです。 |
|
サーバ側に設定する DNS ゾーンとそれらの設定、およびレコード類のオプションです。 |
<dns-server> <logging config:type="list"> <listentry> <key>channel</key> <value>log_syslog { syslog; }</value> </listentry> </logging> <options config:type="list"> <option> <key>forwarders</key> <value>{ 10.10.0.1; }</value> </option> </options> <zones config:type="list"> <listentry> <is_new>1</is_new> <modified>1</modified> <options config:type="list"/> <records config:type="list"> <listentry> <key>mydom.uwe.</key> <type>MX</type> <value>0 mail.mydom.uwe.</value> </listentry> <listentry> <key>mydom.uwe.</key> <type>NS</type> <value>ns.mydom.uwe.</value> </listentry> </records> <soa> <expiry>1w</expiry> <mail>root.aaa.aaa.cc.</mail> <minimum>1d</minimum> <refresh>3h</refresh> <retry>1h</retry> <serial>2005082300</serial> <server>aaa.aaa.cc.</server> <zone>@</zone> </soa> <soa_modified>1</soa_modified> <ttl>2d</ttl> <type>master</type> <update_actions config:type="list"> <listentry> <key>mydom.uwe.</key> <operation>add</operation> <type>NS</type> <value>ns.mydom.uwe.</value> </listentry> </update_actions> <zone>mydom.uwe</zone> </listentry> </zones> </dns-server>
dhcp-server
リソースを使用することで、 DHCP サーバの全ての設定を行うことができます。下記の 6 種類のプロパティをお使いください。
要素 |
値 |
説明 |
---|---|---|
|
0 / 1 |
値に 1 を指定すると、 DHCP サーバを chroot 環境内に閉じこめて動作するようになります。 |
|
0 / 1 |
値に 1 を指定すると、 DHCP サーバを有効化します (システムの起動時に開始するようにします) 。 |
|
0 / 1 |
値に 1 を指定すると、設定を設定ファイルではなく LDAP に保存するようになります。 |
|
テキスト |
DHCP サーバの起動時に、実行ファイルに渡すコマンドラインパラメータを文字列で指定します。たとえば "-p 1234" のように指定すると、非標準の 1234 ポートでサービスを待ち受けるようになります。設定可能なオプションの一覧については、 dhcpd のマニュアルページをお読みください。何も指定しない場合、既定値が適用されます。 |
|
リスト |
DHCP サーバのサービスを提供するネットワークカードのリストを指定します。設定方法については下記の例をご覧ください。 |
|
リスト |
DHCP サーバの動作を設定するための設定リストを指定します。設定はツリー構造で、ルート要素がグローバルオプションを表し、そこからサブネットやホストを定義する形になっています。また、 |
<dhcp-server> <allowed_interfaces config:type="list"> <allowed_interface>eth0</allowed_interface> </allowed_interfaces> <chroot>0</chroot> <other_options>-p 9000</other_options> <start_service>1</start_service> <use_ldap>0</use_ldap> <settings config:type="list"> <settings_entry> <children config:type="list"/> <directives config:type="list"> <listentry> <key>fixed-address</key> <type>directive</type> <value>192.168.0.10</value> </listentry> <listentry> <key>hardware</key> <type>directive</type> <value>ethernet d4:00:00:bf:00:00</value> </listentry> </directives> <id>static10</id> <options config:type="list"/> <parent_id>192.168.0.0 netmask 255.255.255.0</parent_id> <parent_type>subnet</parent_type> <type>host</type> </settings_entry> <settings_entry> <children config:type="list"> <child> <id>static10</id> <type>host</type> </child> </children> <directives config:type="list"> <listentry> <key>range</key> <type>directive</type> <value>dynamic-bootp 192.168.0.100 192.168.0.150</value> </listentry> <listentry> <key>default-lease-time</key> <type>directive</type> <value>14400</value> </listentry> <listentry> <key>max-lease-time</key> <type>directive</type> <value>86400</value> </listentry> </directives> <id>192.168.0.0 netmask 255.255.255.0</id> <options config:type="list"/> <parent_id/> <parent_type/> <type>subnet</type> </settings_entry> <settings_entry> <children config:type="list"> <child> <id>192.168.0.0 netmask 255.255.255.0</id> <type>subnet</type> </child> </children> <directives config:type="list"> <listentry> <key>ddns-update-style</key> <type>directive</type> <value>none</value> </listentry> <listentry> <key>default-lease-time</key> <type>directive</type> <value>14400</value> </listentry> </directives> <id/> <options config:type="list"/> <parent_id/> <parent_type/> <type/> </settings_entry> </settings> </dhcp-server>
openSUSE Leap 15.0 およびそれ以降のバージョンでは、 SuSEfirewall2 が firewalld
に置き換えられています。 SuSEfirewall2 プロパティを使用していたプロファイルについては、 firewalld
のプロファイル形式に変換されます。ただし、全てのプロファイル設定が変換されるわけではありません。
SuSEfirewall2 ベースのプロファイルの使用は、多くのオプションが firewalld
で使用できなくなっていることから、部分的なサポートにとどまっています。そのため、移行できなかった設定によって、ネットワークセキュリティに影響がある場合があります。
firewalld
では、一般的な設定は少数のプロパティでのみ提供されていて、ほとんどの設定はゾーン内で行うようになっています。
属性 |
値 |
説明 |
---|---|---|
|
ブール値 |
設定を適用したあと、 |
|
ブール値 |
|
|
ゾーン名 |
特にゾーンを割り当てない場合に使用する既定のゾーンを指定します。 |
|
ログに記録すべきパケットの種類 |
ドロップしたパケットのうち、ログに記録すべきものを選択します。値: |
|
ゾーンの識別子 |
ゾーンを識別するために使用するものです。ゾーンが既知のものではない場合、新しいゾーンを作成します。 |
|
ゾーンに対する短い説明 |
ゾーンの目的を大まかにまとめたものです。既に存在するゾーンの場合は無視されます。何も指定しない場合、名前をそのまま説明に適用します。 |
|
ゾーンの説明 |
ゾーンの目的を詳しく説明したものです。既に存在するゾーンの場合は無視されます。何も指定しない場合、名前をそのまま説明に適用します。 |
|
既定のアクション |
どのルールにも該当しない場合に取るべきアクションを指定します。設定可能な値は |
firewalld
の設定はゾーンの仕組みをベースにしています。ゾーンとは接続やインターフェイス、接続元アドレスに適用する信頼レベルを意味するもので、各ゾーンの動作はいくつかの方法で制御することができるものの、全てのプロパティを設定できるというわけではありません。
属性 |
値 |
説明 |
---|---|---|
|
インターフェイス名のリスト |
このゾーンに割り当てるインターフェイスの一覧を指定します。インターフェイスもしくはソースのみをゾーン内に設定することができます。 |
|
サービスの一覧 |
このゾーンで許可するサービスの一覧を指定します。 |
|
ポートの一覧 |
このゾーンで開くポート、もしくはポート範囲の一覧を指定します。 |
|
プロトコルの一覧 |
このゾーンで開く、もしくはアクセスできるようにするプロトコルの一覧を指定します。 |
|
マスカレード処理の可否 |
このゾーンに対してネットワークアドレス変換 ((NAT)) を有効化するかどうかを指定します。 |
firewalld
設定が適用されるステージ #Edit sourceopenSUSE Leap 15 .3 およびそれ以降のバージョンでは、 firewalld
のプロファイルは、通常はインストールの第 1 ステージの終了時に適用されるようになっています (インストールのステージについては 1.2項 「概要と考え方」 をお読みください) 。ただし、場合によっては第 2 ステージで適用される場合もあります。下記に firewalld
のプロファイルが適用されるステージの条件を示します:
AutoYaST で firewalld
セクションを設定している場合で、かつ openSUSE Leap を SSH や VNC 経由でインストールしていない場合、ファイアウオールは第 1 ステージで設定されます。
AutoYaST で firewalld
セクションを設定している場合で、かつ openSUSE Leap を SSH や VNC 経由でインストールしていて第 2 ステージが必要ない場合、ファイアウオールは第 1 ステージで設定されます。
AutoYaST で firewalld
セクションを設定している場合で、かつ openSUSE Leap を SSH や VNC 経由でインストールしていて第 2 ステージが必要な場合、ファイアウオールは第 2 ステージで設定されます。
AutoYaST で firewalld
セクションを設定していない場合は、ファイアウオールは既定の製品の提案に従って第 1 ステージで設定されます。
AutoYaST で firewalld
セクションが設定されていてもいなくても、ネットワークアクセスが必要なカスタムスクリプトが存在する場合は、プロファイルや製品の提案に従って第 1 ステージ内でファイアウオールが設定されます。ただし、スクリプトが必要とするネットワークへのアクセスを設定するため、ファイアウオールの設定を調整しなければなりません。
firewall
セクションの例です。ここには一般的なプロパティのほか、ゾーン固有のプロパティも書かれています。
<firewall> <enable_firewall config:type="boolean">true</enable_firewall> <log_denied_packets>all</log_denied_packets> <default_zone>external</default_zone> <zones config:type="list"> <zone> <name>public</name> <interfaces config:type="list"> <interface>eth0</interface> </interfaces> <services config:type="list"> <service>ssh</service> <service>dhcp</service> <service>dhcpv6</service> <service>samba</service> <service>vnc-server</service> </services> <ports config:type="list"> <port>21/udp</port> <port>22/udp</port> <port>80/tcp</port> <port>443/tcp</port> <port>8080/tcp</port> </ports> </zone> <zone> <name>dmz</name> <interfaces config:type="list"> <interface>eth1</interface> </interfaces> </zone> </zones> </firewall>
AutoYaST では、ネットワーク認証やセキュリティなどの中枢コンポーネントの設定に加えて、さまざまなハードウエアやシステムの設定オプションを提供しています。この仕組みは対話的な手段でシステムを手作業でインストールし、設定する場合と同じ機能となります。具体的には、 YaST で提供されているプリンタやサウンドデバイス、 TV カードやその他のハードウエアコンポーネントなどを設定することができます。
また、 YaST 側に新しい設定オプションが追加されると、 AutoYaST 側でも利用できるようになります。
AutoYaST でのプリンタのサポートは、ネットワーク経由で印刷を行う場合、それを CUPS でどのように取り扱うかといった、基本的な設定項目に限られます。
なお、 AutoYaST ではローカルの印刷キューを設定する機能は用意されていません。新しいプリンタであれば通常は USB 経由で接続しますが、 CUPS からは usb://ACME/FunPrinter?serial=1a2b3c
等のように、型式ごとに異なる URI を使用することになります。この URI は CUPS のバックエンドである usb
が検出の際に設定するものであることから、あらかじめ USB のデバイス URI を判断するのは難しいことになります。このような背景から、 AutoYaST ではローカルの印刷キューを設定する機能は提供されていません。
ネットワーク経由で印刷を行う CUPS のクライアント側は、下記のような構造になっています:
クライアント側のワークステーションでは、アプリケーションプログラムが印刷キューを CUPS デーモンプロセス ( cupsd
) に送信します。 cupsd
は印刷ジョブを、実際に処理を行う CUPS 印刷サーバに転送します。 CUPS 印刷サーバは、プリンタ固有のデータをプリンタデバイスに送信します。
ネットワーク内に CUPS 印刷サーバが 1 台だけ存在するような場合は、各クライアント側のワークステーションで CUPS デーモンを動作させる必要はありません。その代わりに、 CUPS サーバの場所を /etc/cups/client.conf
ファイルで直接指定してアクセスするように設定します (この設定ファイルには CUPS サーバを 1 つしか設定できません) 。この場合、クライアント側のアプリケーションプログラムは、指定した CUPS 印刷サーバに対して、直接ジョブを送信することになります。
例4.77「プリンタの設定」 には printer
セクションの構造を示していますが、この中の cupsd_conf_content
には、 cupsd
の設定ファイル /etc/cups/cupsd.conf
の内容全体を記述します。また client_conf_content
には同様に、 /etc/cups/client.conf
の内容全体を記述します。なお、 printer
セクションには cupsd
の設定を記述しますが、 cupsd を動作させるべきかどうかについては指定しません。
<printer> <client_conf_content> <file_contents><![CDATA[ ... verbatim content of /etc/cups/client.conf ... ]]></file_contents> </client_conf_content> <cupsd_conf_content> <file_contents><![CDATA[ ... verbatim content of /etc/cups/cupsd.conf ... ]]></file_contents> </cupsd_conf_content> </printer>
/etc/cups/cups-files.conf
についてCUPS バージョン 1.6 もしくはそれ以降のバージョンでは、 CUPS の設定ファイルが cupsd.conf
と cups-files.conf
の 2 つのファイルに分割されています。ただし、通常の印刷設定では cups-files.conf
を既定値のままで使用すれば十分であることから、 openSUSE Leap 15.7 では AutoYaST は cupsd.conf
の修正のみに対応しています。
設定システムを利用してサウンド関連の設定を行った場合の例を書きに示します。
<sound> <autoinstall config:type="boolean">true</autoinstall> <modules_conf config:type="list"> <module_conf> <alias>snd-card-0</alias> <model>M5451, ALI</model> <module>snd-ali5451</module> <options> <snd_enable>1</snd_enable> <snd_index>0</snd_index> <snd_pcm_channels>32</snd_pcm_channels> </options> </module_conf> </modules_conf> <volume_settings config:type="list"> <listentry> <Master config:type="integer">75</Master> </listentry> </volume_settings> </sound>
YaST では以前のインストールから SSH の鍵とサーバの設定を取り込むことができます。この機能は AutoYaST プロファイル側でも使用することができます。
<ssh_import> <import config:type="boolean">true</import> <copy_config config:type="boolean">true</copy_config> <device>/dev/sda2</device> </ssh_import>
属性 |
値 |
説明 |
---|---|---|
|
true / false |
SSH 鍵を取り込みます。 |
|
true / false |
SSH のサーバ設定もあわせて取り込むようにします。なお、この設定は |
|
パーティション |
鍵や設定の取り込み元を指定します。何も指定しない場合、アクセス日時が最も新しいものを取り込みます。 |
AutoYaST では、 Salt のような 設定管理ツール に対して、設定の一部を代行させることができます。この場合、 AutoYaST では基本的なシステムのインストール (パーティション設定やネットワーク設定など) を行い、残りの設定作業を代行させる形になります。
本文書内には Puppet に関する説明も書かれていますが、サポート対象となるのは Salt のみであることに注意してください。ただし、 Puppet をご利用の場合で何か問題があれば、報告をお願いいたします。
AutoYaST では 2 種類の異なるアプローチに対応しています:
設定管理サーバを使用する方法。この場合、 AutoYaST は設定管理ツールを構成します。ここからマスターサーバへの接続を行い、システムの設定に関する情報を取得します。
どこか別の場所 (たとえば HTTP サーバや USB メモリなど) から設定を取得する方法。この場合、設定管理ツールはスタンドアロン (単独) モードで動作することになります。
このアプローチは、設定管理サーバ (Salt や Puppet の用語では、 マスター と呼びます) が既に用意されている場合、特に有用となります。この場合、構築時に最も難しい箇所は、適切な認証方式の設定となります。
Salt および Puppet では下記の認証方式に対応しています:
その場での手動認証。 AutoYaST がクライアントを起動すると、新しい認証要求が生成されます。管理者はその要求を、サーバ側で受け付けることになります。 AutoYaST では接続を再試行しますので、その間にキーを受け付けてもらうことができれば、 AutoYaST がインストールを続けることができるようになります。
事前シード鍵の使用。事前シード鍵の生成方法について、詳しくはお使いの設定管理システムのドキュメンテーションをお読みください。 AutoYaST 内での事前シード鍵の参照先は、 keys_url
オプションで指定します。
下記に設定例を示します。 AutoYaST はクライアントを起動して認証要求を生成します。最大で 3 回、 15 秒間隔で再試行します。
<configuration_management> <type>salt</type> <master>my-salt-server.example.net</master> <auth_attempts config:type="integer">3</auth_attempts> <auth_time_out config:type="integer">15</auth_time_out> </configuration_management>
ただし、下記に示す設定例では、 AutoYaST はキーを外付けのストレージ (USB メモリなど) から取得し、それを利用してマスターサーバへの接続を行っています。
<configuration_management> <type>salt</type> <master>my-salt-server.example.net</master> <keys_url>usb:/</keys_url> </configuration_management>
下記の表には、これらのシナリオで使用しているオプションの意味について説明しています。
属性 |
値 |
説明 |
---|---|---|
|
文字列 |
設定管理方式の名称です。現時点では |
|
文字列 |
設定管理サーバのホスト名もしくは IP アドレス。 |
|
整数 |
サーバに対して接続を試す際の最大試行回数。既定値は 3 です。 |
|
整数 |
サーバへの接続を待機する時間 (秒単位) 。既定値は 15 秒です。 |
|
使用する鍵の URL |
|
|
True/False |
インストール後にクライアント側で設定管理サービスを有効化するかどうかを指定します。既定値は |
シンプルな構成を目的とした場合、設定管理サーバの配置は不要となります。その代わり、 Salt や Puppet を スタンドアロン (単独) (もしくは マスターレス) モードで動作させます。
サーバが存在しないことから、 AutoYaST 側には設定の取得元を設定する必要があります。設定ファイルを TAR 形式の書庫にまとめて、このファイルをどこか (USB メモリや HTTP/HTTPS サーバ、もしくは NFS/SMB 共有) に配置します。
なお、 TAR 形式の書庫は Salt サーバ内での /srv
と同じ構造になっていなければなりません。具体的には、 Salt の状態に関する情報は salt
ディレクトリ内に配置するほか、 formula については個別の formulas
ディレクトリ内に配置します。
これに加えて、 pillar データを含む pillar
ディレクトリが存在していてもかまいません。このほか、 pillar_url
オプションを利用して個別の TAR 書庫を指定して、その中に含めることもできます。
<configuration_management> <type>salt</type> <states_url>my-salt-server.example.net</states_url> <pillar_url>my-salt-server.example.net</pillar_url> </configuration_management>
属性 |
値 |
説明 |
---|---|---|
|
文字列 |
設定管理方式の名称です。現時点では |
|
URL |
Salt states の TAR 書庫の場所を指定します。 formula や pillar を含んでいてもかまいません。また、ファイルは |
|
URL |
pillar を含む TAR 書庫の場所を指定します。 |
|
URL |
Puppet モジュールの場所を指定します。 |
AutoYaST ではスタンドアロン (単独) モードで SUSE Manager Salt Formulas を動作させる環境をサポートしています。この場合、 formula は state 用の TAR 書庫内に存在する必要があります。 AutoYaST では、適用すべき formula を選択し、設定するための画面を表示します。
ただし、この機能を利用してしまうと、 AutoYaST がユーザからの入力を待機してしまうことになりますので、 AutoYaST の目的である無人インストールの意味が薄くなってしまうことに注意してください。