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 commands

コマンド 説明
--help 特定のコマンドまたは virt-sysprep コマンドについて簡単なヘルプエントリーを表示します。その他のヘルプは、man ページの virt-sysprep を参照してください。 virt-sysprep --help
-a [file] or --add [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 ゲスト仮想マシンで読み取り専用の「ドライラン」の sysprep 操作を実行します。これにより sysprep 操作を実行しますが、最後にディスクへの変更がスローされます。 virt-sysprep -n
--enable [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 コマンドを参照)の自動検出に戻ります。 virt-sysprep --format raw -a disk.img は、disk.img の raw 形式(自動検出なし) を強制しますが、virt-sysprep --format raw -a disk.img --format auto -aanother .img の場合は raw 形式(自動検出なし) を強制的に実行し、別の.img の自動検出に戻ります。信頼できない未フォーマットのゲストディスクイメージがある場合は、このオプションを使用してディスク形式を指定する必要があります。これにより、悪意のあるゲストでセキュリティー上の問題を回避することができます。
--list-operations virt-sysprep プログラムがサポートする操作の一覧を表示します。これらは、1 行に 1 つ以上のスペースで区切られたフィールドと共に一覧表示されます。出力の最初のフィールドは操作名で、--enable フラグで指定できます。2 番目のフィールドは、操作がデフォルトで有効になっている場合は * 文字です。そうでない場合は空白になります。同じ行の追加フィールドには、操作の説明が含まれます。 virt-sysprep --list-operations
--mount-options ゲスト仮想マシンの各マウントポイントにマウントオプションを設定します。mountpoint:options ペアのセミコロン区切りのリストを使用します。このリストを引用符で囲む必要がある場合は、シェルから保護する必要があります。 virt-sysprep --mount-options "/:notime" は、notime 操作で root ディレクトリーをマウントします。
-q または --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