1. 程式人生 > >虛擬磁盤訪離線訪問工具----guestfish(1of2)

虛擬磁盤訪離線訪問工具----guestfish(1of2)

etc 走了 我想 In 完全 tools 工具 too 問題

前幾天搞定了磁盤創建的種種問題,現在就要搞明白在不運行虛擬機的情況下如何修改裏面的文件,並且結合腳本來批量創建虛擬機。 離線訪問工具有很多種,比較出名的就是guestfish了,因為功能非常的強大,比如離線改密碼,編輯文件,上傳文件等等。今天我要說的主要是集中在腳本裏面的應用。 因為這個對我來說是一個全新的工具,由於不是很熟悉,走了很多彎路,我是基於要寫腳本的情況下才來研究這個工具。詳細了解的話可以去libguestfs.org。 這個工具是需要安裝一些 4個packages,好像是在linux6之後的版本本身就自帶了,只是版本高低的問題。現在最高的版本是1.39.5。然後我的版本是1:1.36.10-6.el7_5.2,之前版本很低,所以有些工具的option會不太一樣,過會會提到。packages分別是:libguestfs.x86_64,libguestfs-java.x86_64 ,libguestfs-tools.noarch ,libguestfs-tools-c.x86_64 。 guestfish是一個基於libguestfs API的交互的shell,裏面有一些和shell相同的命令,還有一些是它獨有的,並且還支持腳本運行。這裏我要說的一個命令就是 “ECHO”。 我們都知道在shell變成裏面,你要往一個文件裏面寫入一些東西但是你又不想用vi編輯,然後你就用echo重定向到文件裏面,很多情況下會用到腳本裏面。比如說:echo “aaa” >>/tmp/example.txt.這個命令恰恰不完全支持在guestfish裏面。但是它有自己的synopsis,這個要配合write來用。就是為了搞明白這個,花了2天的時間。我查了好多文檔和網站,沒有人詳細說過這個命令,可能不是很重要把。然後我又順騰摸瓜,查到另一個相似的命令就是virt-customize。這個命令也是很強大,你裝了上述的包,還有一些kvm的libvirt的包,基本上就有了。 現在要說一下我想做的東西,就是我想離線修改我虛擬機裏的ip地址,subnet。手動修改就太麻煩了,那我就用guestfish的命令 #guestfish --rw -a /vm/bb1.qcow2 -i << EOF <! echo write-append /etc/sysconfig/network-scripts/ifcfg-eth0 192.168.2.1 EOF 我剛才也說過,有個類似的命令是通過virt-customize: virt-customize -a /vm/bb1.qcom2 --append-line :IPADDR=$ip --append-line $path:NETMASK=255.255.255.254 下篇文章我會寫一下我自己理解的批量創建vms,在網上我看到一些高手寫的自動化創建,但是都年代久遠了,現在又好多新的命令,會更有效的服務於我們。

虛擬磁盤訪離線訪問工具----guestfish(1of2)