GNU/Linux >> Belajar Linux >  >> Linux

8 perintah Linux virsh untuk mengelola VM pada baris perintah

Shell virtual, atau virsh, adalah utilitas baris perintah yang fleksibel untuk mengelola mesin virtual (VM) yang dikendalikan oleh libvirt, yang merupakan toolkit dan API untuk mengelola platform virtualisasi. Ini adalah alat manajemen default untuk mesin virtual (KVM) berbasis kernel Linux, dan juga mendukung Xen, VMware, dan platform lainnya.

virsh perintah memungkinkan Anda untuk mengelola VM secara interaktif atau dalam batch. Ini juga berguna untuk mengontrol VM dari shell Linux dan terintegrasi dengan skrip atau alat otomatisasi. Dengan menggunakan virsh , Anda dapat dengan cepat terhubung ke server menggunakan secure shell (SSH) dan melakukan operasi pada VM Anda tanpa akses ke antarmuka grafis.

Saat Anda menjalankan virsh tanpa opsi apa pun, ia mencoba menyambung ke hypervisor lokal. Untuk Linux, koneksi default menunjuk ke sistem QEMU lokal untuk mengelola mesin KVM lokal. Anda juga dapat terhubung ke hypervisor jarak jauh dengan menggunakan opsi -c atau --connect dan menentukan Uniform Resource Identifier (URI) dari hypervisor jarak jauh menggunakan sintaks libvirt. Untuk informasi lebih lanjut, lihat spesifikasi URI libvirt.

Secara default, virsh menyediakan ratusan subperintah dan opsi yang memungkinkan Anda mengelola setiap aspek platform virtualisasi atau VM Anda. Dalam artikel ini, saya akan membagikan delapan virsh  sub-perintah yang paling sering saya gunakan. Karena sifat pekerjaan sehari-hari, sebagian besar subperintah ini berlaku langsung ke VM (atau domain dalam terminologi libvirt) tetapi virsh juga memiliki perintah untuk mengelola platform itu sendiri, seperti menambahkan kumpulan penyimpanan, jaringan, dan lainnya.

daftar virsh

virsh list adalah perintah dasar yang mencantumkan semua domain yang berjalan (VM). Anda juga dapat membuat daftar semua VM yang dikonfigurasi dengan menambahkan --all pilihan. Ini berguna jika Anda ingin melihat semua VM yang dikonfigurasi di hypervisor target yang dapat Anda gunakan pada perintah berikutnya. Misalnya, untuk membuat daftar semua mesin virtual yang tersedia di hypervisor KVM Linux lokal:

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

Anda dapat menggunakan ID atau nama domain sebagai input untuk perintah selanjutnya.

virsh start / reboot / shutdown

Meskipun berbeda, saya telah mengelompokkan start , reboot , dan shutdown subperintah karena melakukan operasi dasar yang sama dalam mengelola status daya VM.

Untuk mematikan VM rh8-vm01 (dari list perintah di atas):

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

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

Anda dapat memulainya kembali menggunakan start sub-perintah:

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

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

Dengan menggunakan subperintah ini, Anda dapat dengan cepat memulai, mem-boot ulang, atau mematikan VM tanpa harus menjalankan aplikasi grafis yang berat.

[ Anda mungkin juga tertarik untuk mempelajari cara mengedit sshd_config menggunakan skrip Bash. ]

virsh dumpxml

dumpxml subcommand membuang konfigurasi XML untuk domain tertentu. Anda dapat menggunakannya untuk mengekspor konfigurasi ke file untuk membuat perubahan pada VM yang ada atau menggunakannya sebagai template untuk membuat VM lain dengan konfigurasi serupa. Secara default, ia membuang konfigurasi ke STDOUT , jadi arahkan ke file menggunakan operator pengalihan shell > untuk menyimpan ke file:

# 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>

Anda dapat menggunakan keluaran XML dalam skrip dan alat otomatisasi untuk mengotomatiskan pembuatan VM.

domifaddr virsh

 domifaddr subcommand mencantumkan semua alamat IP yang dikonfigurasi untuk semua antarmuka virtual dalam VM tertentu. Ini berguna jika VM menggunakan alamat IP dinamis, karena memungkinkan Anda melihat alamat IP yang ditetapkan dan terhubung ke VM:

# 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 

Secara default, ini mencantumkan alamat IP yang disewa oleh server DHCP. Jika hypervisor tidak memberikan informasi ini, Anda juga dapat menggunakan opsi --source agent untuk menanyakan sistem operasi tamu (OS) secara langsung melalui agen virtualisasi. Ini memerlukan agen virtualisasi yang diinstal di OS tamu.

hasil edit baru

edit subcommand membuka konfigurasi XML saat ini di $EDITOR default Anda , memungkinkan Anda membuat modifikasi langsung di VM:

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

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

Setelah melakukan modifikasi, simpan file untuk menerapkannya. Beberapa modifikasi mungkin hanya berlaku setelah boot ulang.

edit jaringan baru

net-edit subcommand memungkinkan Anda untuk membuat modifikasi langsung ke konfigurasi jaringan virtual. Sangat membantu untuk mengubah opsi ke jaringan virtual, seperti mengaitkan alamat MAC yang diberikan ke alamat IP menggunakan libvirt standar konfigurasi DHCP. Ini adalah perintah yang lebih canggih yang saya gunakan secara teratur. Seperti edit subcommand, ini membuka file konfigurasi di $EDITOR default Anda untuk melakukan perubahan. Simpan file untuk menerapkan perubahan:

# 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> 

Anda juga dapat menggunakan subperintah terkait jaringan lainnya yang dimulai dengan net- untuk mengelola berbagai aspek jaringan virtual hypervisor.

[ Unduh sekarang:Panduan sysadmin untuk skrip Bash. ]

Apa selanjutnya?

virsh adalah utilitas yang kuat dan fleksibel yang memungkinkan Anda untuk mengelola setiap aspek virtualisasi Linux dan platform lainnya. Untuk informasi lebih lanjut tentangnya, lihat halaman manual atau periksa dokumentasi online-nya.


Linux
  1. Miliki sapi di baris perintah Linux

  2. Masukkan diri Anda ke dalam baris perintah Linux

  3. Perintah bash bang:Trik yang harus diketahui untuk baris perintah Linux

  1. Panduan terminal Linux untuk pemula

  2. Hasilkan kata sandi di baris perintah Linux

  3. Menjinakkan perintah tar:Kiat untuk mengelola cadangan di Linux

  1. 8 tips untuk baris perintah Linux

  2. Menggunakan kekuatan di baris perintah Linux

  3. Yoda – Asisten Pribadi Baris Perintah Untuk Sistem Linux Anda