如何借助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 image-list
記下你想為虛擬機使用的那個映像的ID。
下一步,為你的虛擬機選擇所要使用的安全組的類型。安全組為你的虛擬機決定了入站訪問規則。想了解可用的安全組,請運行該命令:
- $ nova secgroup-list
想檢查"默認"安全組的訪問規則,請使用這個命令:
- $ nova secgroup-list-rules default
在該示例中,我準備為虛擬機選擇名為"default"的安全組。該安全組里面正好沒有規則。
***,我們使用到目前為止所獲得的信息,創建一個虛擬機。指定你已了解的虛擬機類型(--flavor)、虛擬機映像的ID(--image)以及網絡的ID(net-id=)。把[vm-name]換成你虛擬機的名稱,這個名稱需要很獨特。
- $ nova boot [vm-name] --flavor m1.nano --image 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