###### tags: `雲端技術實務` # 安裝OpenStack並建置虛擬機 ## 緣由 此為李龍盛老師的雲端技術實務課程的HW04。 ## 系統簡介 在實驗伺服器(IP為規定的第一組IP)安裝OpenStack並建置一個CirrOS虛擬機(綁對外IP為伺服器第二組IP)。 ## 安裝過程 ### 一、建立stack並下載OpenStack相關套件 ```yaml= sudo useradd -s /bin/bash -d /opt/stack -m stack sudo chmod +x /opt/stack echo "stack ALL=(ALL) NOPASSWD: ALL" | sudo tee /etc/sudoers.d/stack sudo -u stack -i git clone https://opendev.org/openstack/devstack cd devstack ``` ### 二、創建local.conf ```yaml= sudo nano local.conf ``` #### 打以下文字 ``` [[local|localrc]] ADMIN_PASSWORD=secret DATABASE_PASSWORD=$ADMIN_PASSWORD RABBIT_PASSWORD=$ADMIN_PASSWORD SERVICE_PASSWORD=$ADMIN_PASSWORD ``` ### 三、執行 stack .sh ```yaml= ./stack.sh ``` #### 須等約莫50分鐘 ![](https://hackmd.io/_uploads/rJGgpTdN3.png) ![](https://hackmd.io/_uploads/Sy9Z66ONh.png) ### 四、進入OpenStack ![](https://hackmd.io/_uploads/Bk1v3gq42.png) ### 五、網路設定 1.刪除現有private、shared網路 2.在現有public上,直接新增一子網路 ![](https://hackmd.io/_uploads/ByJJrb94h.png) ![](https://hackmd.io/_uploads/Sy6VrW5V2.png) 3.輸入以下指令(橋接虛擬網卡到實體網卡) ``` sudo microstack.ovs-vsctl add-port br-ex 實體網卡名稱 //把虛擬網卡橋接到實體網卡 sudo ip addr flush dev 實體網卡名稱 //清掉實體網卡的 IP,避免跟虛擬網卡 IP 重複 sudo ip addr add 實體網卡IP/網段數字 dev br-ex //把原本實體網卡的 IP 位址加到虛擬網卡上 sudo ip link set br-ex up //啟用虛擬網卡 ``` ```yaml= sudo ovs-vsctl add-port br-ex eno1 #可能需安裝ovs-vsctl sudo ip addr flush dev eno1 #會斷網 sudo ip addr add 10.2.200.196/25 dev br-ex sudo ip link set br-ex up sudo route add default gw 10.2.200.239 #route command可能不存在 ``` 4.修改00-installer-config.yaml ```yaml= sudo nano /etc/netplan/00-installer-config.yaml ``` ``` network: ethernets: br-ex: dhcp4: false addresses: - 10.2.200.196/25 gateway4: 10.2.200.239 nameservers: addresses: [140.130.81.11, 8.8.8.8] eno1: dhcp4: false eno2: dhcp4: false version: 2 ``` 更新網路配置: sudo netplan try 此時網路會通 ![](https://hackmd.io/_uploads/B1UBTRFE2.png) 5.再到openstack另外新建一網路(內) ![](https://hackmd.io/_uploads/SyeV4bqN3.png) ![](https://hackmd.io/_uploads/ryVuNZ5N2.png) ![](https://hackmd.io/_uploads/Hk6dV-cV2.png) 6.調整安全性群組 ![](https://hackmd.io/_uploads/BkPC1Z5Vh.png) ![](https://hackmd.io/_uploads/rkHylZ9En.png) ### 六、新增可用的浮動 IP 分配IP到專案->分配IP ![](https://hackmd.io/_uploads/Hy60ie5E2.png) ### 七、新增 SSH key pairs ![](https://hackmd.io/_uploads/rkmE-xcVn.png) ### 八、建立instance ![](https://hackmd.io/_uploads/H1akrRKVh.png) ![](https://hackmd.io/_uploads/r1olSRFV3.png) ![](https://hackmd.io/_uploads/HyHZH0F4n.png) ![](https://hackmd.io/_uploads/SkGGHRKNn.png) ![](https://hackmd.io/_uploads/Bybueb9Vn.png) ### 九、檢查網路拓樸並鏈結floating IP及cirrOS public與shared需使用router串接,而instance需與shared串接(不可與public串接) ![](https://hackmd.io/_uploads/B1LHzeq4h.png) ![](https://hackmd.io/_uploads/rkSb30t42.png) ### 十、連線 #### 1.從cirrOS連外網 ##### 1082925 ![](https://hackmd.io/_uploads/ryV8BvkB3.png) #### 2.使用教室電腦cmd連線cirrOS ##### 1082925 ![](https://hackmd.io/_uploads/By6DQDkBh.png) #### 3.使用ubuntu server h06連線cirrOS ##### 1082925 ![](https://hackmd.io/_uploads/Byt-4vySh.png) ## 結論 這次作業的比較難,需要了解的概念比較多,在安裝openstack的部分遇到了難關,不過重灌之後重載就沒事了,幸好我的組員很罩,感謝他們的幫忙。 ## Reference https://hackmd.io/@zlQHp-D8R3uG9eJTFh2iVA/Sk5EFQfD9 https://docs.openstack.org/devstack/latest/ https://hackmd.io/@109213067/BkECVRMbn#%E6%93%8D%E4%BD%9C-Openstack https://hackmd.io/@Chiao-Juan/SJtliJNUu