歡迎光臨
每天分享高質量文章

如何在 Ubuntu Linux 上使用 KVM 雲映象 | Linux 中國

如何下載並使用執行在 Ubuntu Linux 伺服器上的 KVM 雲映象?如何在 Ubuntu Linux 16.04 LTS 伺服器上無需完整安裝即可建立虛擬機器?如何在 Ubuntu Linux 上使用 KVM 雲映象?
— Vivek Gite


致謝
編譯自 | https://www.cyberciti.biz/faq/how-to-use-kvm-cloud-images-on-ubuntu-linux/ 
 作者 | Vivek Gite
 譯者 | MjSeven ? ? ? 共計翻譯:21 篇 貢獻時間:67 天

如何下載並使用執行在 Ubuntu Linux 伺服器上的 KVM 雲映象?如何在 Ubuntu Linux 16.04 LTS 伺服器上無需完整安裝即可建立虛擬機器?如何在 Ubuntu Linux 上使用 KVM 雲映象?

基於內核的虛擬機器(KVM)是 Linux 內核的虛擬化模組,可將其轉變為虛擬機器管理程式。你可以在命令列使用 Ubuntu 為 libvirt 和 KVM 提供的虛擬化前端透過 KVM 建立 Ubuntu 雲映象。

這個快速教程展示瞭如何安裝和使用 uvtool,它為 Ubuntu 雲映象下載,libvirt 和 clout_int 提供了統一的整合虛擬機器前端。

步驟 1 – 安裝 KVM

你必須安裝並配置 KVM。使用 apt 命令[1]/apt-get 命令[2],如下所示:

  1. $ sudo apt install qemu-kvm libvirt-bin virtinst bridge-utils cpu-checker

  2. $ kvm-ok

  3. ## [configure bridged networking as described here][3]

  4. $ sudo vi /etc/network/interfaces

  5. $ sudo systemctl restart networking

  6. $ sudo brctl show

參閱如何在 Ubuntu 16.04 LTS Headless 伺服器上安裝 KVM[3] 以獲得更多資訊。(LCTT 譯註:Headless 伺服器是指沒有本地介面的計算裝置,專用於向其他計算機及其使用者提供服務。)

步驟 2 – 安裝 uvtool

鍵入以下 apt 命令[1]/apt-get 命令[2]

  1. $ sudo apt install uvtool

示例輸出:

  1. [sudo] password for vivek:

  2. Reading package lists... Done

  3. Building dependency tree      

  4. Reading state information... Done

  5. The following packages were automatically installed and are no longer required:

  6.  gksu libgksu2-0 libqt5designer5 libqt5help5 libqt5printsupport5 libqt5sql5 libqt5sql5-sqlite libqt5xml5 python3-dbus.mainloop.pyqt5 python3-notify2 python3-pyqt5 python3-sip

  7. Use 'sudo apt autoremove' to remove them.

  8. The following additional packages will be installed:

  9.  cloud-image-utils distro-info python-boto python-pyinotify python-simplestreams socat ubuntu-cloudimage-keyring uvtool-libvirt

  10. Suggested packages:

  11.  cloud-utils-euca shunit2 python-pyinotify-doc

  12. The following NEW packages will be installed:

  13.  cloud-image-utils distro-info python-boto python-pyinotify python-simplestreams socat ubuntu-cloudimage-keyring uvtool uvtool-libvirt

  14. 0 upgraded, 9 newly installed, 0 to remove and 0 not upgraded.

  15. Need to get 1,211 kB of archives.

  16. After this operation, 6,876 kB of additional disk space will be used.

  17. Get:1 http://in.archive.ubuntu.com/ubuntu artful/main amd64 distro-info amd64 0.17 [20.3 kB]

  18. Get:2 http://in.archive.ubuntu.com/ubuntu artful/universe amd64 python-boto all 2.44.0-1ubuntu2 [740 kB]

  19. Get:3 http://in.archive.ubuntu.com/ubuntu artful/main amd64 python-pyinotify all 0.9.6-1 [24.6 kB]

  20. Get:4 http://in.archive.ubuntu.com/ubuntu artful/main amd64 ubuntu-cloudimage-keyring all 2013.11.11 [4,504 B]

  21. Get:5 http://in.archive.ubuntu.com/ubuntu artful/main amd64 cloud-image-utils all 0.30-0ubuntu2 [17.2 kB]

  22. Get:6 http://in.archive.ubuntu.com/ubuntu artful/universe amd64 python-simplestreams all 0.1.0~bzr450-0ubuntu1 [29.7 kB]

  23. Get:7 http://in.archive.ubuntu.com/ubuntu artful/universe amd64 socat amd64 1.7.3.2-1 [342 kB]

  24. Get:8 http://in.archive.ubuntu.com/ubuntu artful/universe amd64 uvtool all 0~git122-0ubuntu1 [6,498 B]

  25. Get:9 http://in.archive.ubuntu.com/ubuntu artful/universe amd64 uvtool-libvirt all 0~git122-0ubuntu1 [26.9 kB]

  26. Fetched 1,211 kB in 3s (393 kB/s)        

  27. Selecting previously unselected package distro-info.

  28. (Reading database ... 199933 files and directories currently installed.)

  29. Preparing to unpack .../0-distro-info_0.17_amd64.deb ...

  30. Unpacking distro-info (0.17) ...

  31. Selecting previously unselected package python-boto.

  32. Preparing to unpack .../1-python-boto_2.44.0-1ubuntu2_all.deb ...

  33. Unpacking python-boto (2.44.0-1ubuntu2) ...

  34. Selecting previously unselected package python-pyinotify.

  35. Preparing to unpack .../2-python-pyinotify_0.9.6-1_all.deb ...

  36. Unpacking python-pyinotify (0.9.6-1) ...

  37. Selecting previously unselected package ubuntu-cloudimage-keyring.

  38. Preparing to unpack .../3-ubuntu-cloudimage-keyring_2013.11.11_all.deb ...

  39. Unpacking ubuntu-cloudimage-keyring (2013.11.11) ...

  40. Selecting previously unselected package cloud-image-utils.

  41. Preparing to unpack .../4-cloud-image-utils_0.30-0ubuntu2_all.deb ...

  42. Unpacking cloud-image-utils (0.30-0ubuntu2) ...

  43. Selecting previously unselected package python-simplestreams.

  44. Preparing to unpack .../5-python-simplestreams_0.1.0~bzr450-0ubuntu1_all.deb ...

  45. Unpacking python-simplestreams (0.1.0~bzr450-0ubuntu1) ...

  46. Selecting previously unselected package socat.

  47. Preparing to unpack .../6-socat_1.7.3.2-1_amd64.deb ...

  48. Unpacking socat (1.7.3.2-1) ...

  49. Selecting previously unselected package uvtool.

  50. Preparing to unpack .../7-uvtool_0~git122-0ubuntu1_all.deb ...

  51. Unpacking uvtool (0~git122-0ubuntu1) ...

  52. Selecting previously unselected package uvtool-libvirt.

  53. Preparing to unpack .../8-uvtool-libvirt_0~git122-0ubuntu1_all.deb ...

  54. Unpacking uvtool-libvirt (0~git122-0ubuntu1) ...

  55. Setting up distro-info (0.17) ...

  56. Setting up ubuntu-cloudimage-keyring (2013.11.11) ...

  57. Setting up cloud-image-utils (0.30-0ubuntu2) ...

  58. Setting up socat (1.7.3.2-1) ...

  59. Setting up python-pyinotify (0.9.6-1) ...

  60. Setting up python-boto (2.44.0-1ubuntu2) ...

  61. Setting up python-simplestreams (0.1.0~bzr450-0ubuntu1) ...

  62. Processing triggers for doc-base (0.10.7) ...

  63. Processing 1 added doc-base file...

  64. Setting up uvtool (0~git122-0ubuntu1) ...

  65. Processing triggers for man-db (2.7.6.1-2) ...

  66. Setting up uvtool-libvirt (0~git122-0ubuntu1) ...

步驟 3 – 下載 Ubuntu 雲映象

你需要使用 uvt-simplestreams-libvirt 命令。它維護一個 libvirt 容量儲存池,作為一個簡單流simplestreams源的映象子集的本地映象,比如 Ubuntu 雲映象。要使用當前所有 amd64 映象更新 uvtool 的 libvirt 容量儲存池,執行:

  1. $ uvt-simplestreams-libvirt sync arch=amd64

要更新/獲取 Ubuntu 16.04 LTS (xenial/amd64) 映象,執行:

  1. $ uvt-simplestreams-libvirt --verbose sync release=xenial arch=amd64

示例輸出:

  1. Adding: com.ubuntu.cloud:server:16.04:amd64 20171121.1

透過 query 選項查詢本地映象:

  1. $ uvt-simplestreams-libvirt query

示例輸出:

  1. release=xenial arch=amd64 label=release (20171121.1)

現在,我為 Ubuntu xenial 建立了一個映象,接下來我會建立虛擬機器。

步驟 4 – 建立 SSH 金鑰

你需要使用 SSH 金鑰才能登入到 KVM 虛擬機器。如果你根本沒有任何金鑰,請使用 ssh-keygen 命令建立一個新的金鑰。

  1. $ ssh-keygen

參閱“如何在 Linux / Unix 系統上設定 SSH 金鑰[4]” 和 “Linux / UNIX: 生成 SSH 金鑰[5]” 以獲取更多資訊。

步驟 5 – 建立 VM

是時候建立虛擬機器了,它叫 vm1,即建立一個 Ubuntu Linux 16.04 LTS 虛擬機器:

  1. $ uvt-kvm create vm1

預設情況下 vm1 使用以下配置建立:

☉ 記憶體:512M
☉ 磁碟大小:8GiB
☉ CPU:1 vCPU core

要控制記憶體、磁碟、CPU 和其他配置,使用以下語法:

  1. $ uvt-kvm create vm1 \

  2. --memory MEMORY \

  3. --cpu CPU \

  4. --disk DISK \

  5. --bridge BRIDGE \

  6. --ssh-public-key-file /path/to/your/SSH_PUBLIC_KEY_FILE \

  7. --packages PACKAGES1, PACKAGES2, .. \

  8. --run-script-once RUN_SCRIPT_ONCE \

  9. --password PASSWORD

其中

☉ --password PASSWORD:設定 ubuntu 使用者的密碼和允許使用 ubuntu 的使用者登入(不推薦,使用 ssh 金鑰)。
☉ --run-script-once RUN_SCRIPT_ONCE : 第一次啟動時,在虛擬機器上以 root 身份執行 RUN_SCRIPT_ONCE 指令碼,但再也不會執行。這裡給出完整的路徑。這對於在虛擬機器上執行自定義任務時非常有用,例如設定安全性或其他內容。
☉ --packages PACKAGES1, PACKAGES2, .. : 在第一次啟動時安裝以逗號分隔的軟體包。

要獲取幫助,執行:

  1. $ uvt-kvm -h

  2. $ uvt-kvm create -h

如何刪除虛擬機器?

要銷毀/刪除名為 vm1 的虛擬機器,執行(請小心使用以下命令,因為沒有確認框):

  1. $ uvt-kvm destroy vm1

獲取 vm1 的 IP 地址,執行:

  1. $ uvt-kvm ip vm1

  2. 192.168.122.52

列出所有執行的虛擬機器

  1. $ uvt-kvm list

示例輸出:

  1. vm1

  2. freebsd11.1

步驟 6 – 如何登入 vm1

語法是:

  1. $ uvt-kvm ssh vm1

示例輸出:

  1. Welcome to Ubuntu 16.04.3 LTS (GNU/Linux 4.4.0-101-generic x86_64)

  2. * Documentation:  https://help.ubuntu.com

  3. * Management:     https://landscape.canonical.com

  4. * Support:        https://ubuntu.com/advantage

  5.  Get cloud support with Ubuntu Advantage Cloud Guest:

  6.    http://www.ubuntu.com/business/services/cloud

  7. 0 packages can be updated.

  8. 0 updates are security updates.

  9. Last login: Thu Dec  7 09:55:06 2017 from 192.168.122.1

另一個選擇是從 macOS/Linux/Unix/Windows 客戶端使用常規的 ssh 命令:

  1. $ ssh ubuntu@192.168.122.52

  2. $ ssh -i ~/.ssh/id_rsa ubuntu@192.168.122.52

示例輸出:

Connect to the running VM using ssh

一旦建立了 vim,你可以照常使用 virsh 命令:

  1. $ virsh list


via: https://www.cyberciti.biz/faq/how-to-use-kvm-cloud-images-on-ubuntu-linux/

作者:Vivek Gite[7] 譯者:MjSeven 校對:wxy

本文由 LCTT 原創編譯,Linux中國 榮譽推出

贊(0)

分享創造快樂

© 2024 知識星球   網站地圖