如何藉助OpenStack命令行工具管理虛擬機?
OpenStack是一個基於行業的開源雲管理平臺。人們可以使用OpenStack,輕鬆構建公共雲、私有云或混合雲。本文中我們將演示如何從命令行,在OpenStack上創建或終止虛擬機。
【51CTO精選譯文】OpenStack是一個基於行業的開源雲管理平臺。人們可以使用OpenStack,輕鬆構建公共雲、私有云或混合雲。由於這個平臺具有純粹的開放性,包括Red Hat、Rackspace、IBM和惠普在內的各大IT廠商都看好其前景,積極推動OpenStack的發展。
OpenStack中有兩種不同的界面用來管理雲資源。一個是通過Horizon(https://github.com/openstack/horizon/),這是基於Web的OpenStack儀表板;另一個就是通過OpenStack命令行接口(CLI)。
我在本教程中將演示如何從命令行,在OpenStack上創建或終止虛擬機。這個過程是在Havana版本的OpenStack中進行測試的。至於像OpenStack Folsom這些早期的OpenStack版本,你只要將本教程所用的命令行中的“neutron”換成“quantum”即可。
姑且假設部署的一套OpenStack系統已在某處構建並運行起來。我要使用OpenStack CLI客戶程序,在現有的OpenStack系統上管理虛擬機。
安裝OpenStack CLI客戶程序
第一步就是安裝必要的OpenStack命令行客戶程序:
在Debian、Ubuntu或Linux Mint上,執行這個命令:
$ sudo apt-get install python-pip
$ sudo pip install python-novaclient python-keystoneclient python-neutronclient
在CentOS、Fedora或RHEL上,執行這個命令:
$ sudo yum install python-pip
$ sudo pip install python-novaclient python-keystoneclient python-neutronclient
設定環境變量
爲了能夠使用OpenStack CLI客戶程序,你就要設定必要的環境變量。爲此,創建一個名爲openrc.sh的腳本,如下所示。
$ sudo vi openrc.sh export OS_USERNAME=dan
export OS_PASSWORD=my_password
export OS_TENANT_NAME=demo
export OS_AUTH_URL=http://192.168.10.10:5000/v2.0
在上述腳本中,OS_USERNAME/OS_PASSWORD是OpenStack用戶名及密碼。OS_TENANT_NAME是所創建的項目的名稱。OS_AUTH_URL是Keystone端點的URL。Keystone是一項OpenStack服務,負責不同的OpenStack組件之間的身份驗證。你應該把192.168.10.10換成所部署的系統中運行OpenStack Keystone的那個主機的IP地址。
現在,運行openrc.sh,設定環境變量,如下所示。
$ source openrc.sh
這時候,你可以準備運行OpenStack命令行客戶程序了。確認你在運行時沒有遇到任何錯誤:
$ nova list
它顯示內容爲空的結果,這意味着一切都正常。
構建網絡
現在,你可以準備構建一個連接虛擬機的網絡了。
創建一個名爲"xmodulo"的新網絡。
$ neutron net-create xmodulo
創建一個名爲"xmodulo_subnet"的新子網,並將其添加到剛構建的那個網絡。
$ neutron subnet-create xmodulo 10.0.0.0/24 --name xmodulo_subnet
檢查可用網絡列表,確認該網絡已成功構建。
$ neutron net-list
在輸出結果中,要記下你所構建的網絡的"ID"(編號)。之後你創建虛擬機時,要用到這個編號。
啓動虛擬機
在創建並啓動虛擬機之前,你首先要知道幾個信息。
查明你想創建的那個虛擬機的類型。爲此,運行下面這個命令。
$ nova flavor-list
在該示例中,我準備選擇最小的虛擬機類型"m1.nano",它有64 MB內存、1個虛擬處理器(vCPU)、無磁盤。記下這個類型名稱。
下一步,爲你的虛擬機選擇所要使用的虛擬機映像。爲了列出所有可用的虛擬機映像,請使用這個命令:
$ nova p_w_picpath-list
記下你想爲虛擬機使用的那個映像的ID。
下一步,爲你的虛擬機選擇所要使用的安全組的類型。安全組爲你的虛擬機決定了入站訪問規則。想了解可用的安全組,請運行該命令:
$ nova secgroup-list
想檢查"默認"安全組的訪問規則,請使用這個命令:
$ nova secgroup-list-rules default
在該示例中,我準備爲虛擬機選擇名爲"default"的安全組。該安全組裏面正好沒有規則。
最後,我們使用到目前爲止所獲得的信息,創建一個虛擬機。指定你已瞭解的虛擬機類型(--flavor)、虛擬機映像的ID(--p_w_picpath)以及網絡的ID(net-id=)。把[vm-name]換成你虛擬機的名稱,這個名稱需要很獨特。
$ nova boot [vm-name] --flavor m1.nano --p_w_picpath d2b830be-3
7df-4fa9-90b2-91c472d19aaa --security-groups default -ni
c net-id=1cbcddcf-3a7d-481f-b6f2-a97c6447c925
爲了確認虛擬機已成功創建並啓動,請運行這個命令:
$ nova list
停止、暫停和清除虛擬機
當你停止運行某個虛擬機時,它完全關閉。另一方面,你暫停虛擬機時,它臨時被凍結,隨時可以從暫停狀態重新啓動。在這兩種情況下,虛擬機映像仍留在OpenStack裏面。
想停止虛擬機,運行這個命令:
$ nova stop [vm-name]
想暫停虛擬機,運行這個命令:
$ nova suspend [vm-name]
如果你想從OpenStack清除已終停止虛擬機或已暫停虛擬機的映像,請使用這個命令:
$ nova delete [vm-name]
原文鏈接:http://xmodulo.com/2014/03/manage-vms-openstack-command-line-tools.html