- Horizon dashboard 是一個用來管理 OpenStack 平台的 web 介面!
- Horizon Web 介面提供對每一個 OpenStack 專案 API 的通訊方式,用以取代 CLI 介面的操作
利用 Horizon 建立專案
- 登入 Horizon Web 介面
- 登入網址:https://10.1.1.1/dashborard
- 帳密: /root/keystonerc_admin 內的 OS_PASSWORD 或是 /root/answers.txt 內的 CONFIG_KEYSTONE_ADMIN_PW
- 設定信任憑證後,即可使用!
- 設定安全存取方式:
- 使用者帳密限制
- 連線位置限制:
設定檔: /etc/openstack-dashboard/local_settings 內的 ALLOWED_HOSTS 限定連線位置!
參數: www.example.com , .example.com , *
- 專案工作:
- 一個專案(Project)就是一個租賃戶(tenant),每個租賃戶都可以有數個使用者以及使用的資源!
- 單一雲端系統中,每個專案或租賃戶是互不干擾!
- 每一個租賃戶可以設定使用的資源限制!
- 專案用於 web 介面,租賃戶用於 CLI 介面!所以,專案與租賃戶同意!
- 更換憑證或憑證失效問題:在 OpenStack 已被重裝的狀況下,使用舊憑證,會產生連結上的錯誤,所以,需要重新製作新的憑證,並重新載入 browser 中!
- 在 firefox browser 中,按下 Alt 鍵
- 選擇 Edit -> Perferences
- 選擇 Advanced 圖示後,選擇 Certificates 標籤
- 選擇 View Certificates 按鈕
- 在 Authorities 標籤內,找到 openstack CA 憑證,刪除...
- 在 Servers 標籤內,找到 openstack 相關憑證,刪除...
- 關閉 Prefences 視窗
- 再按 Alt 打開選單,選擇 History -> Clear Recent History ...,清除所有記錄
- 重新再接受新的憑證資料
練習1:在 Horizon 建立新專案
練習資料如下表:
解決步驟:
在 Horizon 建立新的使用者
練習2:在 Horizon 建立新專案
練習資料如下表:
解決步驟:
練習資料如下表:
參數名稱 | 參數值 |
Name | project1 |
Description | Project for project1 |
Quota | 4 vCPUs, 4 instances, 4096MB RAM, 2 floating IPs |
解決步驟:
- 打開 firefox browser,連至 https://10.1.1.1/dashboard
- 輸入帳號:admin,密碼:redhat
- 找到 Identity 標籤(在網頁的最上方,有 Project / Admin / Identity) ,按下後,選擇 Projects 子標籤!
- 選擇 + Create Project 按鈕!
- 在 Project Information 標籤下,輸入 Name以及 Description !
- 切換至 Quota 標籤下,設定相關資源,其它設定值不動!
- 按下 Create Project 按鈕即可!
在 Horizon 建立新的使用者
- 在 Horizon web 介面中,可新增、修改、刪除、查詢使用者
- 使用者角色預設有兩種:
- 群組角色:附加於專案中
- 管理者角色:管理雲端系統,有別於admin帳號!
練習2:在 Horizon 建立新專案
練習資料如下表:
參數名稱 | 參數值 |
Username | user1 |
root@servera.pod0.example.com | |
Password | redhat |
Primary project | project1 |
Role | _member_ |
解決步驟:
- 以 admin 帳號登入 https://10.1.1.1/dashborad
- 選擇 Identity 標籤,選擇 Users 子標籤
- 選擇 + Create User 按鍵
- 輸入上面表格資料
- 按下 Create User 按鍵
在 Horizon 管理風格(flavors)
- 在佈署新的實體(instance)之前,可先針對實體規格進行概要式的設定
- 實體中的參數包含 vCPU數量、記憶體大小、硬碟空間等規格!
練習資料如下表:
參數名稱 | 參數值 |
Name | m2.tiny |
ID | auto |
vCPUs | 1 |
RAM MB | 1024 |
Root disk GB | 10 |
Ephemeral disk GB | 2 |
Swap disk MB | 512 |
解決步驟:
- 以 admin 帳號登入 https://10.1.1.1/dashborad
- 選擇 Admin 標籤,選擇 System 標籤,再選 Flavors 子標籤
- 在 m1.tiny 列,按下 Edit Flavor 按鍵,修改 Root Disk (GB) 空間值至 10GB ,再按下 Save 按鍵!
- 在同一 Flavors 子標籤下,按 + Create Flavor 按鍵!
- 輸入上表資料
- 再按下 Create Flavor 按鍵!
- 在產生新的實體之後,Horizon 可以開啟與管理這些實體
- 在啟動一個實體之前,需要針對實體進行設定:
- 建立並且上傳影像檔,包含給實體用的作業系統與軟體
- 設定安全群組(例:開啟防火牆的 port到實體,或在實體上啟動指定的服務)
- 建立SSH 金鑰對(連進實體內用的)
- 配置 IP 位置,讓外部網路可連到實體!
網路參數資料如下表:
參數名稱 | 參數值 |
Private network name | private |
Private subnet information |
|
Public network name | public |
Public subnet information |
|
Public subnet detail |
|
Router name | router1 |
External network | public |
Router gateway | public |
IP to allocate for the instance | 10.1.1.26 |
Security group name | sec1 |
Security group description | Web and SSH |
Security group permissions | Allow 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 name | key1 |
Image name | image1 |
Image location | http://10.1.1.254/pub/images/small.img |
Image format | QCOW2 - QEMU emulator |
Image settings | No minimum disk, minimum 512 MB RAM, public |
Instance image | image1 |
Instance name | small |
Instance flavor | m1.tiny |
Instance key pair | key1 |
Instance security group | sec1 |
Instance floating IP address | 10.1.1.26 |
卷冊(volume)參數資料如下表:
參數名稱 | 參數值 |
Volume name | myvol1 |
Volume description | myvol1 volume |
Volume size | 2 GB |
Volume snapshot name | myvol1-snap1 |
Volume snapshot description | myvol1-snap1 snapshot |
解決步驟:
- 以 user1 帳號重新登入 https://10.1.1.1/dashborad
- 設定網路參數:在實體被啟動之前,必須先設定好網路設定!
- 設定私人網路
- 選擇 Project 標籤下的 Network 下拉式選單,再選擇 Networks 項目!
- 按下 + Create Network 按鈕!
- 輸入網路名稱:private ,再按下 Next 按鈕!
- 在 Subnet 步驟裡,輸入子網路名稱:subpriv、網路位址:192.168.0.0/24 以及 IP 版本名稱:IPv4
- 按下 Next 按鍵後,離開子網路細項設定,並按下 Create 按鈕!
- 設定公眾網路
- 接續上一階段設定
- 按下 + Create Network 按鈕!
- 輸入網路名稱:public ,再按下 Next 按鈕!
- 在 Subnet 標籤裡,輸入子網路名稱:subpub、網路位址:10.1.1.0/24、IP 版本名稱:IPv4,以及 GateWay IP : 10.1.1.254
- 按下 Next 按鍵,進入子網路細項設定!
- 反勾選 Enable DHCP 後,在 allocation pool 中,輸入 10.1.1.25, 10.1.1.99!
- 離開子網路細項設定,並按下 Create 按鈕!
- 設定路由
- 在 Network 標籤中,選擇 Routers 子標籤!
- 按下 + Create Router 按鈕!
- 輸入路由器名稱:router1 ,再按下 Create Router 按鈕!
- 設定外部網路:只能由 admin 帳號進行設定
- 以 admin 帳號重新登入 https://10.1.1.1/dashborad
- 在最上方的選項中,選擇 System 標籤!
- 在列表中,按下 public 資料列的 Edit Network 按鈕!
- 勾選 External Network 項目,再按下 Save Changes 按鈕!
- 將內部網路對應上外部網路
- 以 user1 帳號重新登入 https://10.1.1.1/dashborad
- 在最上方的 Admin 選項中,選擇 Project 標籤!
- 下拉 Network 選單,選擇 Routers 項目!
- 按下 router1 資料列 Set Gateway 按鈕!
- 在 External Network 選單中,選擇 public 項目,再按下 Set Gateway 按鈕!
- 按下 router1 的連結後,再按下 + Add Interface 按鈕
- 在 Subnet 選單中,選擇 private: 192.168.0.0/24 (subpriv)項目,再按下 Add Interface 按鈕
- 最後,需要驗證一下設定,是否兩邊的網路,都有連上路由器!在 Network 標籤下,選擇 Network Topology 子標籤!
- 檢查 private 與 public 兩段網路,是否有連上 router1
- 設定私人網路
- 設定存取安全參數:建立浮動IP位址、安全群組與 SSH金鑰對
- 以 user1 帳號重新登入 https://10.1.1.1/dashborad
- 在最上方的 Project 選項中,選擇 Compute 下拉選單,之後,選擇 Access & Security 項目!
- 選擇 Floating IPs 標籤,並按下 Allocate IP to Project 按鈕!
- 在 pool 項目中,選擇 public,並且按下 Allocate IP 按鈕!
- 在 Access & Security 項目下,選擇 Security Group 標籤!
- 按下 +Greate Security Group 按鈕!
- 在 Name 項目中,輸入 sec1,在 descriptions 中,輸入 Web and SSH,再按下 Create Security Group 按鈕
- 在列表中,選擇 sec1 資料列,按下 Manage Rules 按鈕!
- 按下 + Add Rule 按鈕,在 Rule 下拉選單中,選擇 SSH,並且保留 Remote 以及 CIDR 預設值!
- 按下 Add 按鈕!
- 按下 + Add Rule 按鈕,在 Rule 下拉選單中,選擇 HTTPS,按下 Add 按鈕!
- 再做一次上述的步驟,只是換成選擇 HTTP 項目!在 Remote 項目中,下拉選擇 Security Group 項目,在 Security Group 中,選擇 sec1 (current)項目,並且設 Ether Type 為IPv4,再按下 Add 按鈕!(來源來自 sec1 時,做這樣子的改變!)
- 回到 Compute 標籤下,選擇 Access & Security 子標籤!
- 選擇 Key Pairs 項目,並且按下 +Create Key Pair 按鈕!
- 在 Key Paris Name 中,輸入 key1 ,並且按下 Create Key Pair 按鈕
- 在跳出視窗中,選擇 Save File 選項,並按下 OK 按鈕,以便存下 key1.pem 檔案!
- key1.pem 檔案應存放在 Downloads 目錄下!
- 建立實體
- 使用 Compute 標籤,再選擇 Images 子標籤!
- 按下 + Create Image 按鈕,在 name 欄位中,輸入 images1 !在 Image Location 欄位中,輸入下載系統影像檔的網址!
- 設定影像檔的格式是 QCOW2 - QEMU Emulator ,並且按下 Create Image 按鈕!(等到 active 為止)
- 檢查主機是否支援巢狀式虚擬化技術: # ls /dev/kvm !如果有該檔案,表示可以使用巢狀式虚擬化技術!(下一步驟是開始 kvm 的方式,如果沒有,就跳過下一步驟)
- 修改 /etc/nova/nova.conf 檔案內容:
virt_type=kvm =>可用指令改:crudini --set /etc/nova/nova.conf libvirt virt_type kvm
#openstack-service restart nova - 使用 Compute 下的 Instances 子標籤!
- 按下 Launch Instance 按鈕!在 Details 標籤中,輸入 Instance Name 為 small ,並且選擇 m1.tiny Flavor !
- 在 Instance Boot Source 下拉式選單中,選擇 Boot from images 項目
- 選擇 images1 做為 Image Name
- 在 Access & Security 標籤中,確認金鑰對是 key1!
- 選擇 sec1 為 security group ,反勾選 default security group
- 在 Networking 標籤中,按下 + 按鈕到 private 網路
- 按下 Launch 按鈕
- 當 small 項目列表中的 Status 為 Active 時,即可按 Actions 內的下拉選單,選擇 Associate Floating IP
- 在 IP Adress 欄位中,選擇 10.1.1.26,並且在 Port to be associated 欄位中,選擇 small: 192.168.0.2,按下 Associate 按鈕!
- 在 small 項目中,在 small名稱上按右鍵,選擇 Open Link in New Tab
- 在 firefox 新的標籤中,選擇 Console 標籤,再按下 Click here to show only console 的超連結,並且同意接受憑證!
- 可利用 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
- 可以利用 ping 的方式,ping 一下已經啟動的實體!(應該 ping 不到,該要如何處理?)
- 增加儲存卷冊:增加logical volume、快照以及附加卷冊給實體!
- 在 Compute 下拉選單中,選擇 Volumes 子標籤,並按下 + Create Volume 按鈕
- 輸入 Volume Name 為 myvol1 ,description 欄位內,輸入 myvol1 volume,size 為 2GB!其他保留預設值,按下 Create Volume 按鈕
- 建完 volume 之後,即可建立快照!在 Volumes 標籤中,在 Actions 欄位中,下拉選單,選擇 Create Snapshot!
- 在 name 欄位中,輸入 myvol1-snap1 ,在 description 欄位內,輸入 myvol1-snap1 snapshot ,按下 Create Volume Snapshot 按鈕!
- 附加 volume 到執行中的實體!前往 Volumes 標籤,下拉 Actions 欄位內的選單,選擇 Edit Attachments 項目!
- 在 Attach to Instance 欄位中,下拉選擇 small 實體,再按下 Attach Volume 按鈕!
- 使用 ssh 登入 small 實體,利用 lsblk 查看硬碟空間!
- 移除方式
- 在 Instances 子標籤中,勾選 small 項目,按下 Terminate Instances 按鈕
- 在彈出式視窗中,再按下 Terminate Instances 按鈕,進行確認
- 切換至 Volumes 標籤,選擇 Volume Snapshots 標籤!勾選快照項目,按下 Delete Volume Snapshots 按鈕!
- 在彈出式視窗中,再按下 Delete Volume Snapshots 按鈕,進行確認
- 回到 Volumes 標籤,勾選券冊項目,按下 Delete Volumes 按鈕!
- 在彈出式視窗中,再按下 Delete Volumes 按鈕,進行確認