GNU/Linux >> Linux の 問題 >  >> Linux

Virt-builderを使用して仮想マシンイメージをすばやく構築する

Virt-builder は、ローカルまたはクラウドで使用するさまざまな仮想マシンイメージを簡単かつ迅速に構築するためのコマンドラインツールです。また、画像をカスタマイズするための多くのオプションがあります。 VMイメージへの新しいアプリケーションのインストール、ホスト名の設定、ルートパスワードの設定、ゲストVMの初回起動時にコマンドまたはスクリプトの実行、ディスクイメージ内のファイルの追加または編集などを行うことができます。これらのタスクはすべてコマンドラインから実行でき、root権限は必要ありません。

Virt-builderは、きれいに準備されたデジタル署名されたOSテンプレートをダウンロードするため、OSを手動でインストールする必要はありません。 Virt-managerを使用するだけです。 GUIまたはVirt-install 事前定義されたテンプレートを使用してVMを即座に起動するコマンドラインツール。 Virt-builderは、一般的なLinuxおよびUnixバリアント用の最小限のOSテンプレートを提供します。もちろん、独自のテンプレートを作成することもできます。

LinuxにVirt-builderをインストールする

Virt-builderはLibguestfsライブラリの一部であるため、次のガイドの説明に従ってインストールされていることを確認してください。

  • Libguestfsを使用して仮想マシンのディスクイメージにアクセスして変更する

Virt-builderを使用して仮想マシンイメージを構築する

Virt-builderを使用して仮想マシンのイメージを構築するのは非常に簡単で簡単です。

利用可能な仮想マシンテンプレートの一覧表示

まず、利用可能なOSテンプレートを一覧表示します。これを行うには、次を実行します:

 $ virt-builder --list 

このガイドを書いている時点で、次のテンプレートが利用可能でした:

 centos-6 x86_64 CentOS 6.6centos-7.0 x86_64 CentOS 7.0centos-7.1 x86_64 CentOS 7.1centos-7.2 aarch64 CentOS 7.2(aarch64)centos-7.2 x86_64 CentOS 7.2centos-7.3 x86_64 CentOS 7.3centos-7.4 x86_64 CentOS 7.4centos- 7.5 x86_64 CentOS 7.5centos-7.6 x86_64 CentOS 7.6centos-7.7 x86_64 CentOS 7.7centos-7.8 x86_64 CentOS 7.8centos-8.0 x86_64 CentOS 8.0centos-8.2 x86_64 CentOS 8.2cirros-0.3.1 x86_64 CirrOS 0.3.1cirros-0.3.5 x86_64 CirrOS 0.3.5debian-10 x86_64 Debian 10(バスター)debian-6 x86_64 Debian 6(スクイーズ)debian-7sparc64 Debian 7(Wheezy)(sparc64)debian-7 x86_64 Debian 7(wheezy)debian-8 x86_64 Debian 8(jessie) debian-9 x86_64 Debian 9(ストレッチ)fedora-26aarch64Fedora®26サーバー(aarch64)fedora-26armv7lFedora®26サーバー(armv7l)fedora-26i686Fedora®26サーバー(i686)fedora-26ppc64Fedora®26サーバー(ppc64) fedora-26ppc64leFedora®26サーバー(ppc64le)fedora-26x86_64Fedora®26Serverfedora-27aarch64Fedora®27サーバー(aarch64)fedora-27armv7lFedora®27サーバー(armv7l)fedora-27i686Fedora®27サーバー(i686 )fedora-27ppc64Fedora®27サーバー(ppc64)fedora-27ppc64leFedora®27サーバー(ppc64le)fedora-27x86_64Fedora®27Serverfedora-28i686Fedora®28サーバー(i686)fedora-28x86_64Fedora®28Serverfedora- 29aarch64Fedora®29サーバー(aarch64)fedora-29i686Fedora®29サーバー(i686) fedora-29ppc64leFedora®29サーバー(ppc64le)fedora-29x86_64Fedora®29Serverfedora-30aarch64Fedora®30サーバー(aarch64)fedora-30i686Fedora®30サーバー(i686)fedora-30x86_64Fedora®30Serverfedora-31 x86_64Fedora®31Serverfedora-32x86_64Fedora®32Serverfreebsd-11.1x86_64FreeBSD 11.1scientificlinux-6 x86_64 Scientific Linux 6.5ubuntu-10.04 x86_64 Ubuntu 10.04(Lucid)ubuntu-12.04 x86_64 Ubuntu 12.04(Precise)ubuntu-14.04 x86_64 Ubuntu 14.04 )ubuntu-16.04 x86_64 Ubuntu 16.04(Xenial)ubuntu-18.04 x86_64 Ubuntu 18.04(bionic)fedora-18x86_64Fedora®18fedora-19x86_64Fedora®19fedora-20x86_64Fedora®20fedora-21aarch64Fedora®21サーバー(aarch64)fedora- 21 armv7lFedora®21サーバー(armv7l)fedora-21ppc64Fedora®21サーバー(ppc64)fedora-21ppc64leFedora®21サーバー(ppc64le)fedora-21x86_64Fedora®21Serverfedora-22aarch64Fedora®22サーバー(aarch64)fedora- 22armv7lFedora®22サーバー(armv7l)fedora-22i686Fedora®22サーバー(i686)fedora-22x86_64Fedora®22Serverfedora-23aarch64Fedora®23サーバー(aarch64)fedora-23armv7lFedora®23サーバー(armv7l)fedora -23i686Fedora®23サーバー(i686)fedora-23ppc64Fedora®23サーバー(ppc64)fedora-23ppc64leFedora®23サーバー(ppc64le)fedora-23x86_64Fedora®23Serverfedora-24aarch64Fedora®24サーバー(aarch64) fedora-24armv7lFedora®24サーバー(armv7l)fedora-24i686Fedora®24S erver(i686)fedora-24x86_64Fedora®24Serverfedora-25aarch64Fedora®25Server(aarch64)fedora-25armv7lFedora®25Server(armv7l)fedora-25i686Fedora®25Server(i686)fedora-25ppc64Fedora® 25サーバー(ppc64)fedora-25ppc64leFedora®25サーバー(ppc64le)fedora-25x86_64Fedora®25Serveropensuse-13.1 x86_64 openSUSE 13.1opensuse-13.2 x86_64 openSUSE 13.2opensuse-42.1 x86_64 openSUSE Leap 42.1opensuse-tumbleweed x86_64 openSUSE TUSE pre>  

Virt-builderを使用して利用可能な仮想マシンを一覧表示する

ご覧のとおり、複数のOSテンプレートを利用できます。

仮想マシンイメージを構築する前に、ゲストOSのインストールノートを調べて、そこに何があるかを確認することをお勧めします。

たとえば、Debian 10のインストールノートを表示するには、次のコマンドを実行します。

 $ virt-builder --notes debian-10 

出力例:

 Debian 10(バスター)これは最小限のDebianインストールです。このイメージは非常に最小限であるため、sshサーバーのみが含まれています。このイメージにはSSHホストキーは含まれていません。それらを再生成するには、次のコマンドを使用します。--firstboot-command "dpkg-reconfigure openssh-server"このテンプレートは、libguestfsソースツリーのスクリプトによって生成されました。builder/ templates/make-template.mlこのテンプレートの準備に使用される関連ファイルは次の場所にあります。同じディレクトリ。

仮想マシンイメージを構築する

特定のディレクトリにOSテンプレートをダウンロードしたかったので、次のディレクトリを作成しました:

 $ mkdir virtbuilder $ cd virtbuilder / 

コマンドを使用してDebian10仮想マシンを構築しましょう:

 $ virt-builder debian-10 

出力例:

 [4.8]ダウンロード:http://builder.libguestfs.org/debian-10.xz ########################### #################################################### ######## 100.0%[83.2]このイメージの作成方法の計画[83.2]解凍[101.2]新しいディスクを開く[119.8]ランダムシードウイルスビルダーの設定:警告:ランダムシードを設定できませんでしたゲストのタイプ[119.9]passwordsvirt-builderの設定:rootのランダムパスワードを 66xW1CaIqfM8km2vに設定します [121.5]出力ファイルの仕上げ: debian-10.img  出力サイズ:6.0G出力フォーマット: 合計使用可能スペース:5.8G空きスペース:4.9G(84%)

Linuxでvirt-builderを使用して仮想マシンイメージを構築する

ご覧のとおり、このコマンドは最小限のDebian10イメージを構築しました。ユーザーアカウントはありません。ランダムなルートパスワードと最小限のインストール済みソフトウェアのみが含まれます。

画像の出力名はテンプレート名と同じである必要があります。 -o を使用して、好みに応じて変更できます オプション:

 $ virt-builder debian-10 -o ostechnix.img 

デフォルトでは、画像形式は imgです。 。以下のように、Qcow2などの別の形式に変換できます。

 $ virt-builder debian-10 --format qcow2 

デフォルトでは、Virt-builderはホストOSアーキテクチャと同じイメージをビルドします。たとえば、ホストOSが64ビットの場合、64ビットVMが構築されます。 -arch を使用して、これを32ビット(使用可能な場合)に変更できます。 オプション。

 $ virt-builder debian-10 --arch i686 

カスタムサイズの画像を作成したいですか?それも可能です。次のコマンドは、サイズ50GBのVMを構築します。

 $ virt-builder debian-10 --size 50G 

ゲストOSは、 virt-resizeを使用して自動的にサイズ変更されます 出力にコピーされるコマンド。

ルートパスワードの設定

すでに述べたように、イメージの作成中にランダムなパスワードがrootユーザーアカウントに割り当てられます。 rootユーザーに特定のパスワードを設定する場合は、-root-passwordを使用します。 以下のようなオプション:

 $ virt-builder centos-8.2 --format qcow2 -root-password password:centos  

出力例:

 [5.1]ダウンロード:http://builder.libguestfs.org/centos-8.2.xz ############################ #################################################### ######## 100.0%[249.2]このイメージの作成方法の計画[249.2]解凍[271.3]rawからqcow2への変換[281.1]新しいディスクを開く[319.9]ランダムシードの設定[320.4]パスワードの設定[ 323.0]終了出力ファイル:centos-8.2.qcow2出力サイズ:6.0G出力形式:qcow2合計使用可能スペース:5.3G空きスペース:4.0G(74%)

上記のコマンドは、CentOS 8.2イメージをビルドし、rootユーザーのパスワードを "centos"として割り当てます。 。

テキストファイルからパスワードを設定することもできます:

 $ virt-builder centos-8.2 -root-パスワードファイル:〜/ ostechnix.txt  

ルートパスワードを無効にするには、次のコマンドを実行します。

 $ virt-buildercentos-8.2-root-パスワードが無効 

ルートアカウントをロックする:

 $ virt-buildercentos-8.2-root-パスワードがロックされています 

rootアカウントをロックし、rootパスワードを無効にします:

 $ virt-builder centos-8.2 -root-passwordlocked:disabled  

rootパスワードを割り当て、rootアカウントをロックするには、次のオプションを使用します。

-root-passwordlocked:file:FILENAME--root-passwordlocked:password:PASSWORD 

"passwd -u" でrootユーザーのロックを解除した後、rootパスワードを使用できます コマンド。

ユーザーの作成

仮想マシンイメージの構築中にユーザーアカウントを作成するには、次のコマンドを実行します。

 $ virt-builder centos-8.2 --firstboot-command'useradd -m -p "" sk; chage -d 0 sk'

上記のコマンドは、パスワードなしで「sk」というユーザーを作成し、最初のログイン時にパスワードを設定するように強制します。

ホスト名を設定

ホスト名をVMに設定するには:

 $ virt-builder centos-8.2 --hostname virt.ostechnix.local 

出力例:

 [4.7]ダウンロード:http://builder.libguestfs.org/centos-8.2.xz[7.2]このイメージの作成方法の計画[7.2]解凍[31.0]新しいディスクを開く[41.9]ランダムシードの設定 [42.0]ホスト名の設定:virt.ostechnix.local  [42.1] passwordsvirt-builderの設定:ルートのランダムパスワードをMRn7fj1GSaeCAHQxに設定します[44.4]終了出力ファイル:centos-8.2.img出力サイズ:6.0G出力形式:raw合計使用可能スペース:5.3G空きスペース:4.0G(74 %)

VMイメージにソフトウェアをインストールする

VMにパッケージをインストールするには、次のコマンドを実行します。

 $ virt-builder debian-10 --install vim 

出力例:

 [5.8]ダウンロード:http://builder.libguestfs.org/debian-10.xz[7.4]このイメージの作成方法の計画[7.4]解凍[25.3]新しいディスクを開く[29.7]ランダムシードウイルスの設定-ビルダー:警告:このタイプのゲストにランダムシードを設定できませんでした [29.8]パッケージのインストール:vim  [93.2] passwordsvirt-builderの設定:rootのランダムパスワードを45Hj5yxh8vRqLDcuに設定[94.9]終了出力ファイル:debian-10.img出力サイズ:6.0G出力形式:raw合計使用可能スペース:5.8G空きスペース:4.8G(82 %)

複数のパッケージをインストールするには、以下のようにカンマで区切って引用符で囲んでください。

 $ virt-builder debian-10 --install "apache2、htop" 

VM内のすべてのパッケージを更新します:

 $ virt-builder centos-8.2 --update 

VMがSELinuxを使用している場合は、パッケージをインストールまたは更新した後にSELinuxのラベル変更を行う必要があります。

 $ virt-builder centos-8.2 --update --selinux-relabel 

VMイメージのカスタマイズ

Virt-builderには、画像をカスタマイズするための多くのオプションがあります。たとえば、コマンドを使用してVMを初めて起動するときに、特定のコマンド/スクリプトを実行できます。

 $ virt-builder debian-10 --firstboot-command'apt -y update' 

VMに行を追加するには、次を実行します。

 $ virt-builder centos-8.2 --append-line'/etc/hosts:192.168.225.1 server.ostechnix.local' 

キャッシュテンプレート

デフォルトでは、すべてのテンプレートがネットワークから初めてダウンロードされます。テンプレートのサイズが大きいため、ダウンロードしたテンプレートはユーザーのホームディレクトリにキャッシュされます。

次のコマンドを使用して、キャッシュディレクトリの詳細と現在キャッシュされているテンプレートを印刷できます。

 $ virt-builder --print-cache 

出力例:

キャッシュディレクトリ:/home/sk/.cache/virt-builder [...] centos-7.8 x86_64 nocentos-8.0 x86_64 no centos-8.2x86_64キャッシュ cirros-0.3.1 x86_64 nocirros-0.3.5 x86_64 no debian-10x86_64キャッシュ debian-6 x86_64 nodebian-7 sparc64 no [...] 

キャッシュフォルダを手動で確認して確認することもできます:

  $ ls $ HOME / .cache / virt-builder  centos-8.2.x86_64.1 debian-10.x86_64.1 

使用可能なすべてのテンプレートをローカルキャッシュフォルダにダウンロードするには、次のコマンドを実行します。

 $ virt-builder --cache-all-templates 

イメージの作成中にテンプレートをキャッシュしたくない場合は、-no-cacheを使用します オプション。

キャッシュされたすべてのテンプレートを削除するには、次のコマンドを実行します:

  $ virt-builder --delete-cache  [0.0]削除:/home/sk/.cache/virt-builder 

ディスクイメージをハイパーバイザーにインポートする

さて、あなたはあなたの望むOSをダウンロードし、あなたの好みに応じてそれをカスタマイズしました。それで?イメージをインポートし、ハイパーバイザーで新しく作成されたディスクイメージを使用してVMを実行するだけです。 Qcow2イメージを使用してKVM仮想マシンを作成するためのステップバイステップガイドをすでに作成しました。このガイドはQcow2専用に作成されていますが、 .imgのインポートについても同じです。 ディスクイメージもフォーマットします。

  • LinuxでQcow2イメージを使用してKVM仮想マシンを作成する

Virt-builderには何百ものコマンドとオプションがあります。ここでは、基本的なコマンドのみを取り上げました。詳細については、マニュアルの年齢を参照してください。

 $ man virt-builder 

IgorStarkovによる注目の写真 ペクセルから 。


Linux
  1. Linux –これらのアドレスに含まれていますか?

  2. 毎週の仮想マシン、ビルド スクリプト付き

  3. ngx_http_image_filter_module による画像プレビュー

  1. PodmanでLinux仮想マシンを実行する

  2. 仮想マシンで ArcGIS Desktop を実行していますか?

  3. OpenSSH を使用した SSH リレー サーバー

  1. VirtualMachineManagerの概要

  2. PCでの仮想化、実用的なユースケースの初心者向けに説明

  3. CentOS532ビットOSを搭載した仮想マシンが3GBを超える物理メモリに対応しない