Red Hat Training

A Red Hat training course is available for Red Hat Enterprise Linux

21.11. virt-sysprep: 仮想マシン設定のリセット

virt-sysprep コマンドラインツールを使用すると、ゲスト仮想マシンをリセットまたは設定解除して、クローンを作成できます。このプロセスには、SSH ホストの鍵の削除、永続的なネットワーク MAC 設定の削除、およびユーザーアカウントの削除が含まれます。virt-sysprep は、SSH キー、ユーザー、ロゴなどを追加して、仮想マシンをカスタマイズすることもできます。各手順は、必要に応じて有効または無効にできます。
virt-sysprep を使用するには、ゲスト仮想マシンがオフラインである必要があるため、シャットダウンしてからコマンドを実行してください。virt-sysprepは、ゲストまたはディスクイメージをコピーせずに、その場で変更することに注意してください。ゲスト仮想マシンの既存のコンテンツを保持する場合は、最初にディスクのスナップショット、コピー、またはクローンを作成する必要があります。ディスクのコピーおよびクローン作成の詳細は、libguestfs.org を参照してください。
ディスクイメージにアクセスするために root が必要でない限り、root としてvirt-sysprep を使用しないことが推奨されます。ただし、このような場合は、virt-sysprep を実行している root 以外のユーザーがディスクイメージに書き込み可能なパーミッションを変更することが推奨されます。
virt-sysprep をインストールするには、以下のコマンドを実行します。
# yum install /usr/bin/virt-sysprep
virt-sysprep では、以下のコマンドオプションを使用できます。

表21.1 virt-sysprepコマンド

コマンド 説明
--help 特定のコマンドまたは virt-sysprep コマンドに関する簡単なヘルプエントリーを表示します。詳細なヘルプは、man ページの virt-sysprep を参照してください。 virt-sysprep --help
-a [file] or --add [file] 指定されたfileを追加します。これは、ゲスト仮想マシンからのディスクイメージである必要があります。ディスクイメージの形式は自動検出されます。これを上書きして、特定の形式に強制する場合は、--format オプションを使用します。 virt-sysprep --add /dev/vms/disk.img
-a [URI] or --add [URI] リモートディスクを追加します。URI 形式は guestfish と互換性があります。詳細は、「guestfish を使用したファイルの追加」 を参照してください。 virt-sysprep -a rbd://example.com[:port]/pool/disk
-c [URI] or --connect [URI] libvirt を使用する場合は、指定した URI に接続します。省略した場合は、KVM ハイパーバイザーを介して接続します。ゲストブロックデバイスを直接指定 (virt-sysprep -a) すると、libvirt はまったく使用されません。 virt-sysprep -c qemu:///system
-d [guest] or --domain [guest] 指定したゲスト仮想マシンのすべてのディスクを追加します。ドメイン名の代わりにドメイン UUID を使用できます。 virt-sysprep --domain 90df2f3f-8857-5ba9-2714-7d95907b1c9e
-n or --dry-run ゲスト仮想マシンで、読み取り専用の "dry run" sysprep 操作を実行します。これにより sysprep 操作が実行されますが、末尾のディスクに対する変更はすべて破棄されます。 virt-sysprep -n
--enable [operations] 指定したoperationsを有効にします。可能な操作のリストを表示するには、--list コマンドを使用します。 virt-sysprep --enable ssh-hostkeys,udev-persistent-net
--operation または --operations 実行する sysprep 操作を選択します。操作を無効にするには、操作名の前に - を使用します。 virt-sysprep --operations ssh-hotkeys,udev-persistent-net は両方の操作を有効にしますが、virt-sysprep --operations firewall-rules,-tmp-files は firewall-rules の操作を有効にし、tmp-files の操作を無効にします。有効な操作のリストは、libguestfs.org を参照してください。
--format [raw|qcow2|auto] -a オプションのデフォルトは、ディスクイメージの形式を自動検出することです。これを使用すると、コマンドラインに続く -a オプションのディスク形式が強制されます。--format auto を使用すると、後続の -a オプションの自動検出に戻ります (上述の -a コマンドを参照)。 virt-sysprep --format raw -a disk.img は、disk.img に対して raw 形式 (自動検出なし) を強制しますが、virt-sysprep --format raw -a disk.img --format auto -a another.img は、disk.img に対して raw 形式 (自動検出なし) を強制し、another.img では自動検出に戻ります。信頼できない raw 形式のゲストディスクイメージがある場合は、このオプションを使用してディスク形式を指定する必要があります。これにより、悪意のあるゲストで発生する可能性のあるセキュリティーの問題を回避できます。
--list-operations virt-sysprep プログラムでサポートされている操作をリスト表示します。これらは、1 行に 1 つずつ表示され、1 つ以上の空白で区切られたフィールドがあります。出力の最初のフィールドは操作名であり、--enable フラグに指定できます。2 番目のフィールドは、操作がデフォルトで有効になっている場合は * 文字で、そうでない場合は空白になります。同じ行のその他のフィールドには、操作の説明が記載されています。 virt-sysprep --list-operations
--mount-options ゲスト仮想マシンの各マウントポイントにマウントオプションを設定します。mountpoint:options のペアのセミコロンで区切られたリストを使用します。このリストをシェルから保護するために、このリストの周囲に引用符を付ける必要がある場合があります。 virt-sysprep --mount-options "/:notime" は、notime 操作で root ディレクトリーをマウントします。
-q or --quiet ログメッセージを出力しないようにします。 virt-sysprep -q
-v or --verbose デバッグ目的で詳細なメッセージを有効にします。 virt-sysprep -v
-V または --version virt-sysprep のバージョン番号を表示し、終了します。 virt-sysprep -V
--root-password root パスワードを設定します。新しいパスワードを明示的に指定する場合や、選択したファイルの最初の行の文字列を使用する場合に使用できます。これにより、安全性が高まります。
virt-sysprep --root-password password:123456 -a guest.img
または
virt-sysprep --root-password file:SOURCE_FILE_PATH -a guest.img
詳細は、libguestfs のドキュメント を参照してください。