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

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

表21.1 virt-sysprep コマンド

コマンド説明
--help特定のコマンドまたは virt-sysprep コマンドについての簡潔なヘルプエントリーを表示します。ヘルプの詳細は、virt-sysprep の man ページを参照してください。$ 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 or --operations実行する sysprep 操作を選択します。操作を無効にするには、操作名の前に - を使用します。$ virt-sysprep --operations ssh-hotkeys,udev-persistent-net would enable both operations, while $ virt-sysprep --operations firewall-rules,-tmp-files would enable the firewall-rules operation and disable the tmp-files operation. For a list of valid operations, see libguestfs.org.
--format [raw|qcow2|auto]-a オプションは、デフォルトでディスクイメージの形式を自動検出します。これを使用すると、コマンドラインに続く -a オプションのディスク形式が強制実行されます。--format auto を使用すると、後続の -a オプションの自動検出に切り替わります (上記の -a コマンドを参照)。$ virt-sysprep --format raw -a disk.img forces raw format (no auto-detection) for disk.img, but virt-sysprep --format raw -a disk.img --format auto -a another.img forces raw format (no auto-detection) for disk.img and reverts to auto-detection for another.img. If you have untrusted raw-format guest disk images, you should use this option to specify the disk format. This avoids a possible security problem with malicious guests.
--list-operationsvirt-sysprep プログラムでサポートされる操作を一覧表示します。これらは 1 行に 1 項目ずつ一覧表示され、フィールドには 1 つ以上のスペースが使用されます。出力の最初のフィールドには、--enable フラグに指定できる操作名が入ります。2 つ目のフィールドには、操作がデフォルトで有効である場合は * 文字が入り、有効にされていない場合はブランクになります。同じラインの追加フィールドには操作の説明が入ります。$ virt-sysprep --list-operations
--mount-optionsゲスト仮想マシンの各マウントポイントについてマウントオプションを設定します。マウントポイントとオプションのペア (mountpoint:options) のセミコロンで区切られた一覧を使用します。この一覧を引用符で囲み、シェルでこれを保護する必要がある場合があります。$ virt-sysprep --mount-options "/:notime" will mount the root directory with the notime operation.
-q or --quietログメッセージが出力されないようにします。$ virt-sysprep -q
-v or --verboseデバッグ目的で詳細なメッセージを有効にします。$ virt-sysprep -v
-V or --versionvirt-sysprep バージョン番号を表示し、終了します。$ virt-sysprep -V
--root-passwordroot パスワードを設定します。新規パスワードを明示的に指定したり、選択したファイルの最初の行の文字列を使用したりできます。後者がより安全な方法です。
$ virt-sysprep --root-password password:123456 -a guest.img
または
$ virt-sysprep --root-password file:SOURCE_FILE_PATH -a guest.img
詳細は libguestfs ドキュメント を参照してください。