openstack初步

今天花了半天多的時間完成openstack的安裝,可以通過dashboard訪問了。但是內部的大多數實際的功能還沒有實現,我現在也不懂具體的原理和操作。

基本上,是照着別人的方法,一步一步地做,但是還是遇到了不少問題。主要的問題是賬戶,密碼,token,這些都和keystone有關,openstack的組件nova,glance都是通過keystone確認user和password。剛開始不清楚它們之間的關係,後來先是嘗試別人的各種方法,網上找資料,稀裏糊塗解決了其中的一個問題。但還是很暈,完全不明白其中的原理。再遇到另一個問題時,無法舉一反三。沒辦法了,看官方文檔,從頭開始,先了解結構圖,接本身份驗證的流程,keystone怎麼使用。這樣纔開始明白怎麼回事。還有調試方法,nova --debug flavor-list 可以看到發送的帳號密碼,還是挺有用的。結合這一些,再試了幾次,看看反饋的信息,就解決了。

其實原理並不複雜。keystone負責所用用戶帳號的身份驗證。可以通過create-user,create-tenant, create-role,create-service創建相應的內容,並指定存儲與數據庫中。當執行“nova flavor-list”查看nova的flavor列表時,其實通過$OS_USERNAME, $OS_PASSWORD, $OS_TENANT_NAME傳遞用戶名,密碼,tenant容器名給keystone進行驗證。網上看到的都是說,創建keystonerc文件,裏面有很多設置變量的命令,如export OS_USERNAME=admin。但並沒說爲什麼要這樣做。其實,這樣做只是爲了操作方便,不用每次輸入用戶名密碼,這些都已經保存在env變量(OS_PASSWORD等)。所以,這裏設置的username,password,tenant,都要是keystone裏存在的,可以通過keystone user-list, keystone tenant-list查看。另外,user需要有權訪問tenant,可以通過keystone user-role-add設置。

遇到的問題:

1.執行keystone user-list時,遇到錯誤“Invalid Openstack Identity credentials".

解決:/etc/keystone/keystone.conf裏的admin_token要與環境變量SERVICE_TOKEN相同值。

2.執行nova flavor-list時,遇到錯誤"Invalid Openstack Nova Credentials."

解決:環境變量OS_USERNAME, OS_PASSWORD, OS_TENANT_NAME等指定的username,passowrd,tenant應該存在於keystone裏,如上所述。可以通過nova --debug flavor-list獲得調試信息。

總結:知其然,更要知其所以然。只有這樣,才能進步。每個人寫的文章,都不會覆蓋到所有方面,只會記錄他所遇到的問題。但是,當自己做的時候,由於條件,環境不同,操作不當,或者對於作者的表述理解不準確,等等這些都會帶來新的問題,這些問題需要自己解決。解決問題的過程,實際上也就加深了自己對系統的理解。

後續,下週搞定dashboard,能做些修改。

發佈了25 篇原創文章 · 獲贊 10 · 訪問量 7萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章