成人免费xxxxx在线视频软件_久久精品久久久_亚洲国产精品久久久_天天色天天色_亚洲人成一区_欧美一级欧美三级在线观看

OpenStack命令行工具與API

運維 系統(tǒng)運維 OpenStack
從這一刻起本指南中,我們假設你已經(jīng)有一個OpenStack環(huán)境運行起來了。本文將幫助建立你的工作環(huán)境并使用它來帶領(lǐng)你漫步云端。

從這一刻起本指南中,我們假設你已經(jīng)有一個OpenStack環(huán)境運行起來了。本章節(jié)將幫助建立你的工作環(huán)境并使用它來帶領(lǐng)你漫步云端。

命令行工具

我們推薦Openstack命令行工具和Openstack的Dashboard兩者結(jié)合使用。一些用戶由于使用過其他云技術(shù)背景的,可能會使用EC2兼容的API,相對于我們需要使用到的Openstack原生的API,這些EC2兼容的API使用了不同命名習慣。

我們強烈建議你從Python Package Index(PyPI)(https://pypi.python.org/)安裝命令行客戶端,而不是從Ubuntu或者Fedora的軟件包。客戶端開發(fā)的很快,所以有可能在你安裝的時候,操作系統(tǒng)自帶發(fā)行的軟件包已經(jīng)過時。”pip”可以從大多數(shù)的linux發(fā)行版里通過”python-pip”這個軟件包得到,這個工具是用來管理PyPi的安裝包。每個Openstack項目有自己的客戶端,所以根據(jù)你使用的服務選擇某些或者所有以下的軟件包:

  • python-novaclient(nova CLI)
  • python-glanceclient(glance CLI)
  • python-keystoneclient(keystone CLI)
  • python-cinderclient(cinder CLI)
  • python-swiftclient(swift CLI)
  • python-quantumclient(quantum CLI)

安裝工具

使用root從PyPi安裝(升級):

  1. # pip install [–upgrade] <package-name> 

卸載軟件

  1. # pip uninstall <package-name> 

如果你需要更加新的客戶端版本,可以用pip加-e參數(shù)直接從git庫安裝。你必須為需要安裝的Python egg指定名稱。例如:

  1. # pip install -e git+https://github.com/openstack/python-novaclient.git#egg=python-novaclient 

如果你需要在你的云上支持EC2 API的話,你還需要安裝”euca2ools”軟件包或者一些其他的EC2 API的工具,這樣你可以和你的用戶有相同的視圖。如何使用EC2 API工具超出了這本手冊的范圍,但是我們會討論如何得到使用EC2的認證。

管理命令行工具

以下是幾種 *-manage命令行工具:

  1. nova-manage glance-manage keystone-manage cinder-manage 

與上文提到的客戶端工具不同,*-manage工具必須在由root在控制節(jié)點上運行,因為這些命令需要有訪問配置文件的權(quán)限,例如/etc/nova.conf,并且需要直接查詢數(shù)據(jù)庫而不是通過Openstack的API接口。

-manage工具存在是一個遺留問題。openstack項目最終的目標是把這些遺留的-manage工具移植到正規(guī)的客戶端工具中去。到目前為止,你仍舊需要通過ssh登錄到控制節(jié)點上運行*-manage工具進行維護管理操作。

獲取證書

如果你要使用命令行工具對你的Openstack云平臺進行操作,你必須有合適的證書。目前最方便的得到認證證書的方式是使用horizon dashboard。在頂部的導航欄,點擊Setting鏈接,進入用戶配置頁面,在頁面里你可以為dashboard視圖設置語言和時區(qū)。更重要的是,這個操作改變了左列的導航欄,里面包含了Openstack API和EC2 Credentials鏈接,這兩個鏈接將會得到可以在你的shell環(huán)境中source的文件,文件包含了命令行工具所需要的servide endpoints地址和你的認證信息。

點擊Openstack API鏈接。頂部的部分列出了你的Service Endpoints的URL地址,底部是Download Openstack RC File。為了以管理員的身份查看云平臺,你可以從下拉菜單中選擇admin。選擇你需要的project項目,然后點擊Download RC。于是會得到一個名為openrc.sh的文件,內(nèi)容類似如下:

#!/bin/bash

# With the addition of Keystone, to use an openstack cloud you should # authenticate against keystone, which returns a Token and Service # Catalog. The catalog contains the endpoint for all services the # user/tenant has access to - including nova, glance, keystone, swift. # # NOTE: Using the 2.0 auth api does not mean that compute api is 2.0. # We use the 1.1 compute api

export OS_AUTH_URL=http://203.0.113.10:5000/v2.0

# With the addition of Keystone we have standardized on the term tenant # as the entity that owns the resources.

export OS_TENANT_ID=98333aba48e756fa8f629c83a818ad57 export OS_TENANT_NAME=”test-project”

# In addition to the owning entity (tenant), openstack stores the entity # performing the action as the user.

export OS_USERNAME=test-user

# With Keystone you pass the keystone password.

echo “Please enter your OpenStack Password: ” read -s OS_PASSWORD_INPUT export OS_PASSWORD=$OS_PASSWORD_INPUT

注意這個操作不會以文本保存你的密碼,這樣做是好事情。但是當你想用這個文件source或者運行腳本,它會提示你輸入你的密碼,并且保存在環(huán)境變量OS_PASSWORD中。記住這個過程需要手動交互。如果你想要一個不需要交互的操作,那么把值直接保存在腳本中。但是這樣做你需要格外小心這個腳本文件的安全和權(quán)限。

EC2兼容的認證可以從左邊導航欄中的”EC2 Credentials”鏈接下載,選擇你需要的項目,點擊”Download EC2 Credentials”。會得到一個提供x509證書的zip文件和一個shell腳本。和前面的openrc文件不同,這些證書包含了所有可以訪問你的云平臺的認證信息,所以在安全的地方創(chuàng)建一個新目錄,在新目錄中解開zip文件。你會得到cacert.pem, cert.pem, ec2rc.sh and pk.pem。ec2rc.sh文件內(nèi)容類似如下:

#!/bin/bash

NOVARC=$(readlink -f “${BASH_SOURCE:-${0}}” 2>/dev/null) ||NOVARC=$(python -c ‘import os,sys; print os.path.abspath(os.path.realpath(sys.argv[1]))’ “${BASH_SOURCE:-${0}}”) NOVA_KEY_DIR=${NOVARC%/*} export EC2_ACCESS_KEY=df7f93ec47e84ef8a347bbb3d598449a export EC2_SECRET_KEY=ead2fff9f8a344e489956deacd47e818 export EC2_URL=http://203.0.113.10:8773/services/Cloud export EC2_USER_ID=42 # nova does not use user id, but bundling requires it export EC2_PRIVATE_KEY=${NOVA_KEY_DIR}/pk.pem export EC2_CERT=${NOVA_KEY_DIR}/cert.pem export NOVA_CERT=${NOVA_KEY_DIR}/cacert.pem export EUCALYPTUS_CERT=${NOVA_CERT} # euca-bundle-image seems to require this set

alias ec2-bundle-image=”ec2-bundle-image –cert $EC2_CERT –privatekey $EC2_PRIVATE_KEY –user 42 –ec2cert $NOVA_CERT” alias ec2-upload-bundle=”ec2-upload-bundle -a $EC2_ACCESS_KEY -s $EC2_SECRET_KEY –url $S3_URL –ec2cert $NOVA_CERT”

把EC2 credentials放到你的環(huán)境里,source這個ec2rc.sh文件。

命令行的技巧和陷阱

命令行工具可以通過–debug標記來顯示調(diào)用Openstack API的過程,例如

  1. # nova –debug list 

這個例子會顯示從客戶端來的HTTP請求和從endpoints的回應,這些對于對Openstack API定制化客戶端有幫助

Keyring Support(https://wiki.openstack.org/wiki/KeyringSupport)可能就是一個困惑的東西,自這篇文章寫的時候,有一個bug(https://bugs.launchpad.net/python-novaclient/+bug/1020238)。這個bug狀態(tài)是open,然后解決,但是仍然有問題,又被重新open。這個bug的問題是在某些條件,命令行工具嘗試使用一個python的鑰匙作為證書的緩存,在這些情況的一個子集中,會要求在每次使用時會提示一個鑰匙密碼。如果你發(fā)現(xiàn)你遇到了這個不幸的情況,添加–no-cache標識或者設置環(huán)境變量OS_NO_CACHE=1來避免證書緩存。注意:這會造成命令行工具在每次交互的時候都需要認證。


cURL

優(yōu)先使用Openstack API而不是命令行工具,他是一個跑在HTTP協(xié)議上的RESTful API。多數(shù)情況你會希望直接使用API而不是命令行工具,因為某一個命令行可能會存在bug。最好的使用方式是,結(jié)合cURL(http://curl.haxx.se)和其他工具來語法分析響應的JSON,例如jq(http://stedolan.github.com/jq/)

第一件事情你必須使用你的證書來認證來獲取authentication token。證書包含了用戶名、密碼和tenant(項目)。你可以從上面我們談到的openrc.sh文件中得到他們。token允許你不需要再次認證就能和其他的service endpoints交互。Tokens通常存在24小時比較好,當token過期后,你將會收到一個401(未被授權(quán)的)響應,然后你可以再請求一個token。

查看你的Openstack服務條目:

  1. $ curl -s -X POST http://203.0.113.10:35357/v2.0/tokens 
  2. -d ‘{“auth”: {“passwordCredentials”: {“username”:”test-user”, “password”:”test-password”}, “tenantName”:”test-project”}}’ -H “Content-type: application/json” | jq . 

通過閱讀JSON的響應切身體會一下目錄是如何被安排的。

為了使后續(xù)的請求更方便,我們把token儲存在環(huán)境變量中。

  1. TOKEN=`curl -s -X POST http://203.0.113.10:35357/v2.0/tokens 
  2. -d ‘{“auth”: {“passwordCredentials”: {“username”:”test-user”, “password”:”test-password”}, “tenantName”:”test-project”}}’ -H “Content-type: application/json” | jq -r .access.token.id` 

現(xiàn)在你可以在命令行里面使用變量$TOKEN來得到你的token值 從服務目錄中選擇一個服務endpoint,譬如計算的服務,然后嘗試著發(fā)出一個請求,例如列出實例。

  1. $ curl -s -H “X-Auth-Token: $TOKEN” http://203.0.113.10:8774/v2/98333aba48e756fa8f629c83a818ad57/servers | jq . 

要查詢API請求是如何組織的,可以閱讀Openstack API Reference(http://api.openstack.org/api-ref.html)。可以使用jq來細細研究返回的請求響應,閱讀jq Manual(http://stedolan.github.com/jq/manual/)

在cURL命令中使用-s選項可以避免顯示過程信息。如果你在使用cURL時遇到困難,把這個標記去掉。同樣的,加上-v選項會輸出詳細信息,幫助排錯。在cURL中還有更多有用的功能,參考man幫助手冊查詢所有的選項。


服務器和服務

作為一個管理員,通過使用Openstack工具來讓你查看你的Openstack云平臺。這部分將會告訴你如何總覽你的云,組成,大小和狀態(tài)。

首先,你可以查詢哪些服務器屬于你的Openstack云平臺,通過運行

  1. $ nova-manage service list | sort 

輸出類似如下:

Binary Host Zone Status State Updated_At nova-cert cloud.example.com nova enabled :-) 2013-02-25 19:32:38 nova-compute c01.example.com nova enabled :-) 2013-02-25 19:32:35 nova-compute c02.example.com nova enabled :-) 2013-02-25 19:32:32 nova-compute c03.example.com nova enabled :-) 2013-02-25 19:32:36 nova-compute c04.example.com nova enabled :-) 2013-02-25 19:32:32 nova-compute c05.example.com nova enabled :-) 2013-02-25 19:32:41 nova-consoleauth cloud.example.com nova enabled :-) 2013-02-25 19:32:36 nova-network cloud.example.com nova enabled :-) 2013-02-25 19:32:32 nova-scheduler cloud.example.com nova enabled :-) 2013-02-25 19:32:33

輸出顯示有5個計算節(jié)點和1個云控制結(jié)點。你可以看到一個笑臉:-),表明這個服務是起的并運行著。如果一個服務不可用,:-)會變成XXX。這表明你應該排錯一下為什么服務down了。

如果你用了nova-volume(這個服務在Folsom版本后不贊成使用),你會看到一行nova-volume的服務條目。

如果你是用了Cinder,運行如下命令將會看到。

  1. $cinder-manage host list | sort 
  2. host zone c01.example.com nova c02.example.com nova c03.example.com nova c04.example.com nova c05.example.com nova cloud.example.com nova 

通過這兩個表,你現(xiàn)在已經(jīng)對組成你的云平臺的服務器和服務有了總的概況。

你也可以使用認證服務(Keystone)查看什么服務在你的云平臺可用,什么服務被配置了endpoints。

以下這個命令需要你在shell中設置了合適的管理權(quán)限的變量。

  1. $ keystone service-list 
id name type description
...  cinder glance nova_ec2 keystone nova volume image ec2 identity compute Cinder Service OpenStack Image Service EC2 Service OpenStack Identity Service OpenStack Compute Service

輸出顯示有5個配置的服務

查看每個服務的endpoint,運行

  1. $ keystone endpoint-list 

+—–+—————————————–+-/+—————————————–+ | id | publicurl | | adminurl | +—–+—————————————–+-/+—————————————–+ | ... | http://example.com:8774/v2/%(tenant_id)s| | http://example.com:8774/v2/%(tenant_id)s| | ... | http://example.com:8773/services/Cloud | /| http://example.com:8773/services/Admin | | ... | http://example.com:9292/v1 | | http://example.com:9292/v1 | | ... | http://example.com:5000/v2.0 | /| http://example.com:35357/v2.0 | | ... | http://example.com:8776/v1/%(tenant_id)s| | http://example.com:8776/v1/%(tenant_id)s| +—–+—————————————–+-/+—————————————–+

服務和endpoint之間應該是一對一的映射,注意一些服務的公共URL和管理URL是不同的URLs和端口。

網(wǎng)絡

接下來,看看你的云環(huán)境中的Fixed IP網(wǎng)絡

  1. $ nova-manage network list 
  2. id IPv4 IPv6 start address DNS1 DNS2 VlanID project uuid 1 10.1.0.0/24 None 10.1.0.3 None None 300 2725bbd beacb3f2 2 10.1.1.0/24 None 10.1.1.3 None None 301 none d0b1a796 

輸出顯示兩個被配置的網(wǎng)絡,每個網(wǎng)絡包含255個IP。第一個網(wǎng)絡被分配給一個專門的項目,第二個網(wǎng)絡沒有分配。你可以手動分配,或者他也會自動被分配當一個項目啟動第一個實例的時候

查看云平臺中的floating ip,運行:

  1. $ nova-manage floating list 
  2. 2725bbd458e2459a8c1bd36be859f43f 1.2.3.4 None nova vlan20 None 1.2.3.5 48a415e7-6f07-4d33-ad00-814e60b010ff nova vlan20 

這里,兩個floating IP可用,第一個已經(jīng)被分配,第二個空間

用戶和項目

列出云平臺下的項目列表,運行

  1. $ keystone tenant-list 
id name enabled
... jtopjian alvaro everett admin services jonathan lorin anne rhulsker tom adam True True True True True True True True True True True

用戶列表,運行

  1. $ keystone user-list 
id name enabled email
... everett jonathan nova rhulsker lorin alvaro anne admin cinder glance jtopjian adam tom True True True True True True True True True True True True True everett.towne@backspace.com jon@sfcu.edu nova@localhost ryan.hulkster@cyberalbert.ca lorinhoch@nsservices.com Alvaro.Perry@cyberalbert.ca anne.green@backspace.com root@localhost cinder@localhost glance@localhost joe.topjian@cyberalbert.com adam@ossmanuals.net fafield@univm.edu.au

注意,有時候用戶和組是一一對應的。通常在標準的系統(tǒng)用戶是這樣的,例如cinder, glance, nova, swift或者一個組里面就一個用戶。

在運行的實例

顯示運行中的實例列表:

  1. $ nova list –all-tenants 
ID Name Status Networks
... Windows cloud controller compute node 1 devbox devstack initial lorin-head ACTIVE ACTIVE ACTIVE ACTIVE ACTIVE ACTIVE ACTIVE novanetwork_1=10.1.1.3, 199.116.232.39 novanetwork_0=10.1.0.6; jtopjian=10.1.2.3 novanetwork_0=10.1.0.4; jtopjian=10.1.2.4 novanetwork_0=10.1.0.3 novanetwork_0=10.1.0.5 nova_network=10.1.7.4, 10.1.8.4 nova_network=10.1.7.3, 10.1.8.3
 

不幸的是這個命令沒法告訴你更多的關(guān)于實例的細節(jié),例如實例跑在哪個計算節(jié)點,實例的配置等等。你可以使用下面的命令來單獨查看每個實例的細節(jié):

  1. $ nova show <uuid>> 

舉例:

  1. # nova show 81db556b-8aa5-427d-a95c-2a9a6972f630 
Property Value
OS-DCF:diskConfig OS-EXT-SRV-ATTR:host OS-EXT-SRV-ATTR:hypervisor_hostname OS-EXT-SRV-ATTR:instance_name OS-EXT-STS:power_state OS-EXT-STS:task_state OS-EXT-STS:vm_state accessIPv4 accessIPv6 config_drive created flavor hostId id image key_name metadata name novanetwork_0 network progress security_groups status tenant_id updated user_id

MANUAL c02.example.com c02.example.com instance-00000029 1 None active

2013-02-13T20:08:36Z m1.small (6) ... ... Ubuntu 12.04 cloudimg amd64 (...) jtopjian-sandbox {} devstack 10.1.0.5 0 [{u’name’: u’default’}] ACTIVE ... 2013-02-13T20:08:59Z ...

 

責任編輯:奔跑的冰淇淋 來源: trystack.cn
相關(guān)推薦

2014-04-16 13:22:29

虛擬機OpenStack命令行

2014-04-16 10:44:56

OpenStack命令行工具虛擬機

2020-12-10 16:16:08

工具代碼開發(fā)

2020-12-11 06:44:16

命令行工具開發(fā)

2023-06-09 07:45:29

Kuberneteskubectl

2011-01-18 19:11:26

Postfix命令行

2010-11-24 17:12:17

MySQL命令行

2013-05-21 14:58:08

系統(tǒng)監(jiān)視glances開源

2013-11-15 09:43:15

JDK工具

2018-05-04 09:15:35

PythonPlumbum命令行

2019-08-27 10:32:01

Linux操作系統(tǒng)Windows

2019-08-27 08:00:10

OpenStack命令虛擬機

2020-11-22 06:20:53

命令行Linux

2010-02-04 15:17:48

Linux wget

2021-08-25 10:55:43

Linux命令工具

2014-02-12 13:30:16

Linux命令行終端工具

2017-06-15 10:32:56

OracleDBV命令行工具

2014-08-25 16:23:24

2018-04-03 13:50:27

Linux容器命令行工具

2021-01-27 11:53:08

工具Go 開發(fā)
點贊
收藏

51CTO技術(shù)棧公眾號

主站蜘蛛池模板: 久久精品日 | www.国产一区 | 一二三区在线 | 欧美日韩国产一区二区三区 | 韩国精品在线观看 | 精品成人免费视频 | 日本免费在线看 | 91精品国产91久久久久久 | 色橹橹欧美在线观看视频高清 | 色天天综合 | 欧美成人免费在线视频 | 亚洲欧洲日韩精品 中文字幕 | 欧美日韩精品一区二区三区视频 | 欧美高清一区 | 99一级毛片| 成人在线观看网址 | 日韩中文久久 | 午夜专区 | 超碰美女在线 | 国产精品久久久久久久久动漫 | 伊人伊成久久人综合网站 | 免费精品视频一区 | 狠狠色综合欧美激情 | 日韩精品一区二区三区 | 日日摸天天添天天添破 | 天天干夜夜操 | 国产97视频在线观看 | 中文字幕视频一区二区 | 欧日韩在线 | 欧美 中文字幕 | 精品日韩一区 | 久久一热 | 久久综合国产 | 一区二区在线 | 欧美在线一区二区三区 | 亚洲成av | 操视频网站 | 日韩在线观看中文字幕 | 久久久激情视频 | 亚洲一区二区三区四区视频 | 精品久久久久久久人人人人传媒 |