2015年12月7日 星期一

RHEL 的 OpenStack (二)--使用 Horizon Web 介面佈署


  • Horizon dashboard 是一個用來管理 OpenStack 平台的 web 介面!
  • Horizon Web 介面提供對每一個 OpenStack 專案 API 的通訊方式,用以取代 CLI 介面的操作

利用 Horizon 建立專案
  1. 登入 Horizon Web 介面
    • 登入網址:https://10.1.1.1/dashborard
    • 帳密: /root/keystonerc_admin 內的 OS_PASSWORD 或是 /root/answers.txt 內的 CONFIG_KEYSTONE_ADMIN_PW
    • 設定信任憑證後,即可使用!

  2. 設定安全存取方式:
    • 使用者帳密限制
    • 連線位置限制:
      設定檔: /etc/openstack-dashboard/local_settings 內的 ALLOWED_HOSTS 限定連線位置!
      參數: www.example.com , .example.com , *

  3. 專案工作:
    • 一個專案(Project)就是一個租賃戶(tenant),每個租賃戶都可以有數個使用者以及使用的資源!
    • 單一雲端系統中,每個專案或租賃戶是互不干擾!
    • 每一個租賃戶可以設定使用的資源限制!
    • 專案用於 web 介面,租賃戶用於 CLI 介面!所以,專案與租賃戶同意!

  4. 更換憑證或憑證失效問題:在 OpenStack 已被重裝的狀況下,使用舊憑證,會產生連結上的錯誤,所以,需要重新製作新的憑證,並重新載入 browser 中!
    1. 在 firefox browser 中,按下 Alt 鍵
    2. 選擇 Edit -> Perferences
    3. 選擇 Advanced 圖示後,選擇 Certificates 標籤
    4. 選擇 View Certificates 按鈕
    5. 在 Authorities 標籤內,找到 openstack CA 憑證,刪除...
    6. 在 Servers 標籤內,找到 openstack 相關憑證,刪除...
    7. 關閉 Prefences 視窗
    8. 再按 Alt 打開選單,選擇 History -> Clear Recent History ...,清除所有記錄
    9. 重新再接受新的憑證資料
練習1:在 Horizon 建立新專案

練習資料如下表:
參數名稱參數值
Nameproject1
DescriptionProject for project1
Quota4 vCPUs, 4 instances, 4096MB RAM, 2 floating IPs

解決步驟:
  1. 打開 firefox browser,連至 https://10.1.1.1/dashboard
  2. 輸入帳號:admin,密碼:redhat
  3. 找到 Identity 標籤(在網頁的最上方,有 Project / Admin / Identity) ,按下後,選擇 Projects 子標籤!
  4. 選擇 + Create Project 按鈕!
  5. Project Information 標籤下,輸入 Name以及 Description !
  6. 切換至 Quota 標籤下,設定相關資源,其它設定值不動!
  7. 按下 Create Project 按鈕即可!

在 Horizon 建立新的使用者
  1. 在 Horizon web 介面中,可新增、修改、刪除、查詢使用者
  2. 使用者角色預設有兩種:
    • 群組角色:附加於專案中
    • 管理者角色:管理雲端系統,有別於admin帳號!

練習2:在 Horizon 建立新專案

練習資料如下表:
參數名稱參數值
Usernameuser1
E-mailroot@servera.pod0.example.com
Passwordredhat
Primary projectproject1
Role_member_

解決步驟:
  1. 以 admin 帳號登入 https://10.1.1.1/dashborad
  2. 選擇 Identity 標籤,選擇 Users 子標籤
  3. 選擇 + Create User 按鍵
  4. 輸入上面表格資料
  5. 按下 Create User 按鍵

在 Horizon 管理風格(flavors)
  1. 在佈署新的實體(instance)之前,可先針對實體規格進行概要式的設定
  2. 實體中的參數包含 vCPU數量、記憶體大小、硬碟空間等規格!
練習3:在 Horizon 管理風格

練習資料如下表:
參數名稱參數值
Namem2.tiny
IDauto
vCPUs1
RAM MB1024
Root disk GB10
Ephemeral disk GB2
Swap disk MB512

解決步驟:
  1. 以 admin 帳號登入 https://10.1.1.1/dashborad
  2. 選擇 Admin 標籤,選擇 System 標籤,再選 Flavors 子標籤
  3. 在 m1.tiny 列,按下 Edit Flavor 按鍵,修改 Root Disk (GB) 空間值至 10GB ,再按下 Save 按鍵!
  4. 在同一 Flavors 子標籤下,按 + Create Flavor 按鍵!
  5. 輸入上表資料
  6. 再按下 Create Flavor 按鍵!
開啟新的實體(instance)
  1. 在產生新的實體之後,Horizon 可以開啟與管理這些實體
  2. 在啟動一個實體之前,需要針對實體進行設定:
    • 建立並且上傳影像檔,包含給實體用的作業系統與軟體
    • 設定安全群組(例:開啟防火牆的 port到實體,或在實體上啟動指定的服務)
    • 建立SSH 金鑰對(連進實體內用的)
    • 配置 IP 位置,讓外部網路可連到實體!
練習4:開啟新的實體(instance)

網路參數資料如下表:
參數名稱參數值
Private network nameprivate
Private subnet information
  • Subnet name: subpriv
  • Network address: 192.168.0.0/24
  • IP version: IPv4
Public network namepublic
Public subnet information
  • Subnet name: subpub
  • Network address: 10.1.1.0/24
  • IP version: IPv4
  • Gateway IP: 10.1.1.254
Public subnet detail
  • Enable DHCP:deselected
  • Allocation pools: 10.1.1.25, 10.1.1.99
Router namerouter1
External networkpublic
Router gatewaypublic
IP to allocate for the instance10.1.1.26
Security group namesec1
Security group descriptionWeb and SSH
Security group permissionsAllow SSH(TCP/22) and HTTPS(TCP/443) from CIDR 0.0.0.0/0, and HTTP(TCP/80) from the sec1 source group

實體參數資料如下表:
參數名稱參數值
SSH key pair namekey1
Image nameimage1
Image locationhttp://10.1.1.254/pub/images/small.img
Image formatQCOW2 - QEMU emulator
Image settingsNo minimum disk, minimum 512 MB RAM, public
Instance imageimage1
Instance namesmall
Instance flavorm1.tiny
Instance key pairkey1
Instance security groupsec1
Instance floating IP address10.1.1.26

卷冊(volume)參數資料如下表:
參數名稱參數值
Volume namemyvol1
Volume descriptionmyvol1 volume
Volume size2 GB
Volume snapshot namemyvol1-snap1
Volume snapshot descriptionmyvol1-snap1 snapshot

解決步驟:
  1. 以 user1 帳號重新登入 https://10.1.1.1/dashborad
  2. 設定網路參數:在實體被啟動之前,必須先設定好網路設定!
    • 設定私人網路
      1. 選擇 Project 標籤下的 Network 下拉式選單,再選擇 Networks 項目!
      2. 按下 + Create Network 按鈕!
      3. 輸入網路名稱:private ,再按下 Next 按鈕!
      4. 在 Subnet 步驟裡,輸入子網路名稱:subpriv、網路位址:192.168.0.0/24 以及 IP 版本名稱:IPv4
      5. 按下 Next 按鍵後,離開子網路細項設定,並按下 Create 按鈕!

    • 設定公眾網路
      1. 接續上一階段設定
      2. 按下 + Create Network 按鈕!
      3. 輸入網路名稱:public ,再按下 Next 按鈕!
      4. 在 Subnet 標籤裡,輸入子網路名稱:subpub、網路位址:10.1.1.0/24、IP 版本名稱:IPv4,以及 GateWay IP : 10.1.1.254
      5. 按下 Next 按鍵,進入子網路細項設定!
      6. 反勾選 Enable DHCP 後,在 allocation pool 中,輸入 10.1.1.25, 10.1.1.99!
      7. 離開子網路細項設定,並按下 Create 按鈕!

    • 設定路由
      1. 在 Network 標籤中,選擇 Routers 子標籤!
      2. 按下 + Create Router 按鈕!
      3. 輸入路由器名稱:router1 ,再按下 Create Router 按鈕!

    • 設定外部網路:只能由 admin 帳號進行設定
      1. 以 admin 帳號重新登入 https://10.1.1.1/dashborad
      2. 在最上方的選項中,選擇 System 標籤!
      3. 在列表中,按下 public 資料列的 Edit Network 按鈕!
      4. 勾選 External Network 項目,再按下 Save Changes 按鈕!

    • 將內部網路對應上外部網路
      1. 以 user1 帳號重新登入 https://10.1.1.1/dashborad
      2. 在最上方的 Admin 選項中,選擇 Project 標籤!
      3. 下拉 Network 選單,選擇 Routers 項目!
      4. 按下 router1 資料列 Set Gateway 按鈕!
      5. 在 External Network 選單中,選擇 public 項目,再按下 Set Gateway 按鈕!
      6. 按下 router1 的連結後,再按下 + Add Interface 按鈕
      7. 在 Subnet 選單中,選擇 private: 192.168.0.0/24 (subpriv)項目,再按下 Add Interface 按鈕
      8. 最後,需要驗證一下設定,是否兩邊的網路,都有連上路由器!在 Network 標籤下,選擇 Network Topology 子標籤!
      9. 檢查 private 與 public 兩段網路,是否有連上 router1

  3. 設定存取安全參數:建立浮動IP位址、安全群組與 SSH金鑰對
    1. 以 user1 帳號重新登入 https://10.1.1.1/dashborad
    2. 在最上方的 Project 選項中,選擇 Compute 下拉選單,之後,選擇 Access & Security 項目!
    3. 選擇 Floating IPs 標籤,並按下 Allocate IP to Project 按鈕!
    4. 在 pool 項目中,選擇 public,並且按下 Allocate IP 按鈕!
    5. 在 Access & Security 項目下,選擇 Security Group 標籤!
    6. 按下 +Greate Security Group 按鈕!
    7. 在 Name 項目中,輸入 sec1,在 descriptions 中,輸入 Web and SSH,再按下 Create Security Group 按鈕
    8. 在列表中,選擇 sec1 資料列,按下 Manage Rules 按鈕!
    9. 按下 + Add Rule 按鈕,在 Rule 下拉選單中,選擇 SSH,並且保留 Remote 以及 CIDR 預設值!
    10. 按下 Add 按鈕!
    11. 按下 + Add Rule 按鈕,在 Rule 下拉選單中,選擇 HTTPS,按下 Add 按鈕!
    12. 再做一次上述的步驟,只是換成選擇 HTTP 項目!在 Remote 項目中,下拉選擇 Security Group 項目,在 Security Group 中,選擇 sec1 (current)項目,並且設 Ether Type 為IPv4,再按下 Add 按鈕!(來源來自 sec1 時,做這樣子的改變!)
    13. 回到 Compute 標籤下,選擇 Access & Security 子標籤!
    14. 選擇 Key Pairs 項目,並且按下 +Create Key Pair 按鈕!
    15. 在 Key Paris Name 中,輸入 key1 ,並且按下 Create Key Pair 按鈕
    16. 在跳出視窗中,選擇 Save File 選項,並按下 OK 按鈕,以便存下 key1.pem 檔案!
    17. key1.pem 檔案應存放在 Downloads 目錄下!

  4. 建立實體
    1. 使用 Compute 標籤,再選擇 Images 子標籤!
    2. 按下 + Create Image 按鈕,在 name 欄位中,輸入 images1 !在 Image Location 欄位中,輸入下載系統影像檔的網址!
    3. 設定影像檔的格式是 QCOW2 - QEMU Emulator ,並且按下 Create Image 按鈕!(等到 active 為止)
    4. 檢查主機是否支援巢狀式虚擬化技術: # ls /dev/kvm !如果有該檔案,表示可以使用巢狀式虚擬化技術!(下一步驟是開始 kvm 的方式,如果沒有,就跳過下一步驟)
    5. 修改 /etc/nova/nova.conf 檔案內容:
      virt_type=kvm =>可用指令改:crudini --set /etc/nova/nova.conf libvirt virt_type kvm
      #openstack-service restart nova
    6. 使用 Compute 下的 Instances 子標籤!
    7. 按下 Launch Instance 按鈕!在 Details 標籤中,輸入 Instance Name 為 small ,並且選擇 m1.tiny Flavor !
    8. 在 Instance Boot Source 下拉式選單中,選擇 Boot from images 項目
    9. 選擇 images1 做為 Image Name
    10. 在 Access & Security 標籤中,確認金鑰對是 key1!
    11. 選擇 sec1 為 security group ,反勾選 default security group
    12. 在 Networking 標籤中,按下 + 按鈕到 private 網路
    13. 按下 Launch 按鈕
    14. 當 small 項目列表中的 Status 為 Active 時,即可按 Actions 內的下拉選單,選擇 Associate Floating IP
    15. 在 IP Adress 欄位中,選擇 10.1.1.26,並且在 Port to be associated 欄位中,選擇 small: 192.168.0.2,按下 Associate 按鈕!
    16. 在 small 項目中,在 small名稱上按右鍵,選擇 Open Link in New Tab
    17. 在 firefox 新的標籤中,選擇 Console 標籤,再按下 Click here to show only console 的超連結,並且同意接受憑證!
    18. 可利用 ssh 到 10.1.1.26 主機中!
      # ssh -i Downloads/key1.pem root@10.1.1.26
      # ssh -i Downloads/key1.pem cloud-user@10.1.1.26
    19. 可以利用 ping 的方式,ping 一下已經啟動的實體!(應該 ping 不到,該要如何處理?)

  5. 增加儲存卷冊:增加logical volume、快照以及附加卷冊給實體!
    1. 在 Compute 下拉選單中,選擇 Volumes 子標籤,並按下 + Create Volume 按鈕
    2. 輸入 Volume Name 為 myvol1 ,description 欄位內,輸入 myvol1 volume,size 為 2GB!其他保留預設值,按下 Create Volume 按鈕
    3. 建完 volume 之後,即可建立快照!在 Volumes 標籤中,在 Actions 欄位中,下拉選單,選擇 Create Snapshot!
    4. 在 name 欄位中,輸入 myvol1-snap1 ,在 description 欄位內,輸入 myvol1-snap1 snapshot ,按下 Create Volume Snapshot 按鈕!
    5. 附加 volume 到執行中的實體!前往 Volumes 標籤,下拉 Actions 欄位內的選單,選擇 Edit Attachments 項目!
    6. 在 Attach to Instance 欄位中,下拉選擇 small 實體,再按下 Attach Volume 按鈕!
    7. 使用 ssh 登入 small 實體,利用 lsblk 查看硬碟空間!

  6. 移除方式
    1. 在 Instances 子標籤中,勾選 small 項目,按下 Terminate Instances 按鈕
    2. 在彈出式視窗中,再按下 Terminate Instances 按鈕,進行確認
    3. 切換至 Volumes 標籤,選擇 Volume Snapshots 標籤!勾選快照項目,按下 Delete Volume Snapshots 按鈕!
    4. 在彈出式視窗中,再按下 Delete Volume Snapshots 按鈕,進行確認
    5. 回到 Volumes 標籤,勾選券冊項目,按下 Delete Volumes 按鈕!
    6. 在彈出式視窗中,再按下 Delete Volumes 按鈕,進行確認
Horizon Dashboard的除錯