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

コマンドラインでVMを管理するための8つのLinuxvirshサブコマンド

仮想シェル(virsh)は、仮想化プラットフォームを管理するためのツールキットおよびAPIであるlibvirtによって制御される仮想マシン(VM)を管理するための柔軟なコマンドラインユーティリティです。これは、Linuxカーネルベースの仮想マシン(KVM)のデフォルトの管理ツールであり、Xen、VMware、およびその他のプラットフォームもサポートしています。

virsh コマンドを使用すると、VMをインタラクティブにまたはバッチで管理できます。また、LinuxシェルからVMを制御するのにも役立ち、スクリプトや自動化ツールと統合できます。 virshを使用する 、セキュアシェル(SSH)を使用してサーバーにすばやく接続し、グラフィカルインターフェースにアクセスせずにVMで操作を実行できます。

virshを実行するとき オプションなしで、ローカルハイパーバイザーに接続しようとします。 Linuxの場合、デフォルトの接続は、ローカルKVMマシンを管理するためのローカルQEMUシステムを指します。オプション-cを使用して、リモートハイパーバイザーに接続することもできます。 または--connect libvirtの構文を使用して、リモートハイパーバイザーのURI(Uniform Resource Identifier)を指定します。詳細については、libvirtのURI仕様を参照してください。

デフォルトでは、 virsh 仮想化プラットフォームまたはVMのあらゆる側面を管理できるようにする数百のサブコマンドとオプションを提供します。この記事では、8つの virshを共有します 私が最も頻繁に使用するサブコマンド。日常業務の性質上、これらのサブコマンドのほとんどはVM(またはドメイン)に直接適用されます。 libvirtの用語では)ただし、 virsh ストレージプールやネットワークの追加など、プラットフォーム自体を管理するコマンドもあります。

virshリスト

virshリスト 実行中のすべてのドメイン(VM)を一覧表示する基本的なコマンドです。 -all を追加して、構成済みのすべてのVMを一覧表示することもできます。 オプション。これは、後続のコマンドで使用できる、ターゲットハイパーバイザーで構成されているすべてのVMを確認する場合に役立ちます。たとえば、ローカルLinux KVMハイパーバイザーで使用可能なすべての仮想マシンを一覧表示するには:

# virsh list --all
 Id   Name          State
------------------------------
 3    rh8-vm01      running
 -    crc           shut off
 -    rh8-tower01   shut off

IDまたはドメイン名を後続のコマンドの入力として使用できます。

virsh start / restart / shutdown

それらは異なりますが、 startをグループ化しました 、再起動 、および shutdown サブコマンドは、VMの電源状態を管理するのと同じ基本操作を実行するためです。

VMをシャットダウンするにはrh8-vm01 listから 上記のコマンド):

# virsh shutdown rh8-vm01 
Domain 'rh8-vm01' is being shutdown

# virsh list
 Id   Name   State
--------------------

startを使用して再起動できます サブコマンド:

# virsh start rh8-vm01 
Domain 'rh8-vm01' started

# virsh list
 Id   Name       State
--------------------------
 4    rh8-vm01   running

これらのサブコマンドを使用すると、重いグラフィカルアプリケーションを起動しなくても、VMをすばやく起動、再起動、またはシャットダウンできます。

[Bashスクリプトを使用してsshd_configを編集する方法を学ぶことにも興味があるかもしれません。 ]

virsh dumpxml

dumpxml サブコマンドは、指定されたドメインのXML構成をダンプします。これを使用して、構成をファイルにエクスポートして既存のVMに変更を加えたり、テンプレートとして使用して、同様の構成で別のVMを作成したりできます。デフォルトでは、構成を STDOUTにダンプします 、シェルリダイレクト演算子>を使用してファイルにリダイレクトします ファイルに保存するには:

#virshをdumpxml RH8-VM01 <ドメインタイプ='KVM' ID ='4'> <名前> RH8-VM01
# virsh dumpxml rh8-vm01                                                   
<domain type='kvm' id='4'>                                                                    
  <name>rh8-vm01</name>                                                                       
  <uuid>53b92c48-fce3-4464-95bf-6f442e988c94</uuid>
  <metadata>                                                                                  
    <libosinfo:libosinfo xmlns:libosinfo="http://libosinfo.org/xmlns/libvirt/domain/1.0">     
      <libosinfo:os id="http://redhat.com/rhel/8.4"/>                                         
    </libosinfo:libosinfo>                                                                    
  </metadata>                                                                                 
  <memory unit='KiB'>4194304</memory>                                                         
  <currentMemory unit='KiB'>4194304</currentMemory>    
  <vcpu placement='static'>2</vcpu>

... TRUNCATED OUTPUT ...
</domain>

スクリプトおよび自動化ツールでXML出力を使用して、VMの作成を自動化できます。

virsh domifaddr

domifaddr サブコマンドは、特定のVMのすべての仮想インターフェイスに設定されているすべてのIPアドレスを一覧表示します。割り当てられたIPアドレスを確認してVMに接続できるため、VMが動的IPアドレスを使用する場合に便利です。

# virsh domifaddr rh8-vm01 
 Name       MAC address          Protocol     Address
-------------------------------------------------------------------------------
 vnet6      52:54:00:c8:17:6e    ipv4         192.168.122.19/24
 vnet7      52:54:00:04:4d:ac    ipv4         192.168.64.210/24

デフォルトでは、DHCPサーバーによってリースされたIPアドレスが一覧表示されます。ハイパーバイザーがこの情報を提供しない場合は、オプション-source agentを使用することもできます 仮想化エージェントを介してゲストオペレーティングシステム(OS)に直接クエリを実行します。これには、ゲストOSに仮想化エージェントがインストールされている必要があります。

virsh edit

編集 サブコマンドは、デフォルトの $ EDITORで現在のXML構成を開きます 、VMでライブ変更を行うことができます:

# virsh edit rh8-vm01
<domain type='kvm'>
  <name>rh8-vm01</name>
  <uuid>53b92c48-fce3-4464-95bf-6f442e988c94</uuid>
  <metadata>

... TRUNCATED OUTPUT ...
</domain>

変更を加えたら、ファイルを保存して適用します。一部の変更は、再起動後にのみ有効になる場合があります。

virsh net-edit

net-edit サブコマンドを使用すると、仮想ネットワーク構成にライブ変更を加えることができます。標準のlibvirtを使用して特定のMACアドレスをIPアドレスに関連付けるなど、オプションを仮想ネットワークに変更する場合に役立ちます。 DHCP構成。これは、私が定期的に使用するより高度なコマンドです。 editのように サブコマンドでは、デフォルトの $ EDITORで構成ファイルを開きます 変更を加えるため。ファイルを保存して変更を適用します:

# virsh net-edit --network hostonly
<network>
  <name>hostonly</name>
  <uuid>eddd03ff-5825-42ef-bc99-968bddf773c2</uuid>
  <bridge name='virbr1' stp='on' delay='0'/>
  <mac address='52:54:00:67:75:b1'/>
  <domain name='hostonly'/>
  <ip address='192.168.64.1' netmask='255.255.255.0'>
    <dhcp>
      <range start='192.168.64.128' end='192.168.64.254'/>
    </dhcp>
  </ip>
</network>

net-で始まる他のネットワーク関連のサブコマンドを使用することもできます ハイパーバイザー仮想ネットワークのさまざまな側面を管理します。

[今すぐダウンロード:Bashスクリプトのシステム管理者ガイド。 ]

次は何ですか?

virshは、Linux仮想化およびその他のプラットフォームのあらゆる側面を管理できる強力で柔軟なユーティリティです。詳細については、マニュアルページを参照するか、オンラインドキュメントを確認してください。


Linux
  1. 初心者向けのLinuxターミナルガイド

  2. Linuxコマンドラインでパスワードを生成する

  3. Linuxコマンドラインに関する8つのヒント

  1. Linuxコマンドラインで力を使用する

  2. Bash bangコマンド:Linuxコマンドラインの必知のトリック

  3. tarコマンドを使いこなす:Linuxでバックアップを管理するためのヒント

  1. Linuxコマンドラインで牛を飼う

  2. Linuxコマンドラインにアクセスしてください

  3. Yoda –Linuxシステム用のコマンドラインパーソナルアシスタント