# HW04-安裝Openstack並建置一個CirrOS虛擬機 ## 緣由 使用Openstack建置虛擬機有以下的好處: 1.是一個開放的平台,可以與其他開源和商業軟體集成。這樣可以提高系統的靈活性和擴展性,同時降低了成本和風險。 2.可以快速地擴展虛擬機的規模,以滿足不斷變化的需求。這樣可以提高應用程式的可用性和性能,同時減少資源的浪費。 3.提供自動化的管理工具,可以幫助管理員自動化虛擬機的部署、配置和管理。這樣可以節省大量的時間和精力,並且降低人為錯誤的風險。 ## 系統簡介 使用的設備: 嘉義大學電算中心 220教室的h7伺服器 伺服器的OS: Ubuntu 22.04 LTS (伺服器版) 伺服器的IP: 10.2.200.205 ## 安裝步驟 ### 一、安裝Openstack 1.安裝好Ubuntu([參考作法](https://hackmd.io/@jonathan900509/ByXFSFQNj)) 2.依照順序輸入以下指令: ```javascript= $ sudo useradd -s /bin/bash -d /opt/stack -m stack #創建一個名為stack的使用者 $ sudo chmod +x /opt/stack #讓所有user都具有執行/opt/stack裡所有檔案的權限 $ echo "stack ALL=(ALL) NOPASSWD: ALL" | sudo tee /etc/sudoers.d/stack #設定stack使用sudo指令時不用輸入密碼 $ sudo -u stack -i #切換user為stack $ git clone https://opendev.org/openstack/devstack #從github上把devstack抓回來 $ cd devstack $ sudo nano local.conf #創建local.conf,將以下設定檔寫進去 ``` ```= [[local|localrc]] ADMIN_PASSWORD=secret DATABASE_PASSWORD=$ADMIN_PASSWORD RABBIT_PASSWORD=$ADMIN_PASSWORD SERVICE_PASSWORD=$ADMIN_PASSWORD ``` 3.執行"stack.sh"(這個步驟時間會較久,大約需要30分鐘) ``` $ ./stack.sh ``` 4.在瀏覽器搜尋:http://你的伺服器IP/dashboard ,若是成功的話則會連到openstack的登入畫面  預設的帳號是"admin",密碼是ubuntu的帳號。登入成功後如下圖所示。  ### 二、建置一個CirrOS虛擬機 #### 設定public網路 到預設的public網路中新增一個子網路  IP配置儲存區要看教室配置的網路區段扣掉原本實體伺服器使用的IP DNS設置為8.8.8.8 注意這邊DHCP不能啟用  #### 創建路由器 道路由器的葉面點選新增路由器,設置一端連外網(選PUBLIC),點新增路由器; 在剛剛串建路由器內新增網路卡設置連接到子網(SHARED)。 #### 改變安全性群組的規則 預設群組的規則僅允許所有對外連線,對內連線則是全部禁止。因此我們需要新增規則,允許SSH以及ping連入。 在選單中選擇 “Security group”,按下"Add new rule",新增允許所有TCP port 22 (SSH) 連入。 同上,新增允許所有ICMP連入。 #### 新增可用的浮動IP 若要允許非雲端上的機器連入虛擬機,則需要為虛擬機連結浮動 IP。因此,我們需要新增可用的浮動 IP。 在選單中選擇 “Floating IP”,按下 “Allocate floating IP to project”,並按下 “Allocate IP”。 #### 使用openstack建置虛擬機 在選單中選擇 “Instance”,按下 “Launch instance”,為此虛擬機取名。 按下 “Source”,選擇由映像檔新增虛擬硬碟。 按下 “Flavor”,選擇合適的硬體配置模板。 其他頁面依照原本設定即可,按下 “Launch instance”。 #### 設定虛擬機連結浮動IP #### 開始使用虛擬機  #### 設定虛擬機網路連到外網 虛擬外網要能夠連通實體網域的話,需要在實體主機建立bridge,openstack已經提供一個bridge了(br-ex),我們只需要把主機的網卡(目前在用的那個)加進去這個bridge即可,指令如下: ```= $sudo ovs-vsctl add-port br-ex eno1 $sudo ip addr flush dev eno1 $sudo ip addr add 10.2.200.176/25 dev br-ex $sudo ip link set br-ex up ``` 之後進/etc/netplan更改網路設定檔(照下圖,將addresses改為你伺服器的IP)   做到這裡已經可以ping 8.8.8.8成功 但要對DNS文件做修改才能成功ping到google 這邊要注意cirros很難安裝nano 但有內建vi可以用 sudo vi /etc/resolv.conf 刪除原有的nameserver並加入 nameserver 8.8.8.8 nameserver 8.8.4.4 按esc然後按:wq儲存並離開 再次ping google看是否成功 #### 遠端連線到OPENSTACK上的虛擬機 ssh cirros@虛擬機的IP 密碼則是cirros預設的gocubsgo  成功之後的網路拓譜會呈現類似這樣:  ## 結論 這次的作業和之前的Azure上建立虛擬機在概念上十分相似,但是在實際操作上卻不是如此,之前在Azure上操作時,界面和功能都十分直觀,也有許多的教學文章可以參考,但是這次在實作時就連最基礎的安裝openstack都遇到了很多問題,更不用說之後設定虛擬機的網路環境,花了不少時間去研究,部過幸好最後還是有做出點東西,也讓我熟悉了更多雲多計算平台的使用方式。 --- ## 參考 https://ithelp.ithome.com.tw/articles/10132123 https://hackmd.io/@zlQHp-D8R3uG9eJTFh2iVA/Sk5EFQfD9
×
Sign in
Email
Password
Forgot password
or
By clicking below, you agree to our
terms of service
.
Sign in via Facebook
Sign in via Twitter
Sign in via GitHub
Sign in via Dropbox
Sign in with Wallet
Wallet (
)
Connect another wallet
New to HackMD?
Sign up