# 雲端技術實務 HW6 :::info **補充問題** https://hackmd.io/@whitefir473/B1lUqeszC ::: ## 系統簡介 * **伺服器OS:** Ubuntu 22.04 LTS Server Vision * **Cloud Image:** ubuntu-24.04-live-server-amd64.iso * **伺服器IP:** 10.2.200.142 * **對外IP:** 10.2.200.150 ## 建置虛擬機的前置作業 ### 1. 下載[Ubuntu Server 24.04 LTS](https://docs.openstack.org/image-guide/obtain-images.html#ubuntu) :::info **Ubuntu 雲端下載:** https://cloud-images.ubuntu.com/ :::  ### 2. 進入[http://10.2.200.142/dashboard](http://10.2.200.142/dashboard)將此映像檔上傳至 openstack :::info Project(專案) -> Compute(運算) -> Image(映像檔) -> Create Image(建立映像檔) ::: :::success **可見性** **私有:** 僅自己可見可用 **已分享:** 所有人可見,僅自己可用 **公開:** 所有人可見可用 :::   ### 3.改變安全性群組的規則 :::success 預設群組的規則僅允許所有對外連線,對內連線則是全部禁止。因此我們需要新增規則,允許SSH以及ping連入。 ::: :::info Project(專案) -> Network(網路) -> 安全性群組 -> 管理規則 -> 加入規則 :::   ### 4.新增可用的浮動 IP :::info Project(專案) -> Network(網路) -> Floating IPs(浮動 IP) -> Allocate IP To Project(分配IP到專案) :::  ### 5.新增 SSH key pairs :::success 由於剛建好的 instance 並沒有可用的使用者帳密以登入,僅能使用 SSH key pairs 登入,因此我們需要新增 SSH key pairs。 ::: :::info Project(專案) -> Compute(運算) -> Key Pairs(密鑰對) -> add Key Pairs :::   > 私鑰將會自動下載,檔名為 "key1.pem",將此私鑰放在安全的地方保管。  ## OpenStack網路設定 ### 1.建立虛擬外網(須與實體內網網段一樣) :::info **在現有public上,直接新增一子網路** Project(專案) -> Network(網路) -> Networks(網路) -> public -> 子網域 -> 新增子網域 :::    ### 2.橋接虛擬網卡到實體網卡 :::info 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 //啟用虛擬網卡 ::: ```cmd= sudo ovs-vsctl add-port br-ex eno1 #可能需安裝ovs-vsctl sudo ip addr flush dev eno1 #會斷網 ```  **到server修改00-installer-config.yaml**  ``` network: version: 2 renderer: networkd ethernets: br-ex: dhcp4: no addresses: [10.2.200.142/25] gateway4: 10.2.200.239 nameservers: search: [] addresses: [8.8.8.8,8.8.4.4] eno1: dhcp4: no eno2: dhcp4: true ```  **更新網路配置:** ```cmd= sudo netplan try ``` 接著繼續 ```cmd= sudo ip addr add 10.2.200.142/25 dev br-ex sudo ip link set br-ex up ip route ```  ### 3.使用預設網路(虛擬內網)(shared)  ### 4.建立虛擬 router 連接虛擬內網和外網 :::info Project(專案) -> Network(網路) -> Routers(路由器) -> Create Router(新增路由器) :::  :::info Admin(管理員)|Project(專案) -> Network(網路) -> Routers(路由器) -> router -> 網路卡 -> 加入網路卡 ::: > 使用預設網路(虛擬內網)(shared) >  :::warning **若無法連接shared,則可另外創建虛擬內網** 之前有用router連接過shared,之後砍掉了就連接不上了  Project(專案) -> Network(網路) -> Networks(網路) -> Create Network(新增網路)  > 虛擬內網網段可以自訂,不要跟實體網路一樣就好   ::: ## 使用OpenStack建立虛擬機 ### 1.建立虛擬機 :::info Project(專案) -> Compute(運算) -> Instances(雲實例) -> Launch Instance(發動雲實例) :::     ### 2.檢查網路拓樸並配對 floating IP 到虛擬機的虛擬內網 IP :::info Project(專案) -> Network(網路) -> Network Topology(網路拓撲) :::  :::info Project(專案) -> Network(網路) -> Floating IPs(浮動 IP) -> 找到剛才產生的 floating IP -> Associate(連結) :::   ## 檢查連線狀態並連入虛擬機 ### 1.使用 SSH 私鑰連入虛擬機 > 剛建好的 instance 並沒有可用的使用者帳密以登入,僅能使用 SSH key pairs 登入 ``` ssh -i C:\Users\fiona\Downloads\key1.pem ubuntu@10.2.200.150 ```   ### 2.添加使用者(X 可能不必要 但主控台可用熟悉帳號登入) ```cmd= sudo adduser s1092960 # 建立使用者 sudo adduser s1092960 sudo # 將剛剛新建立的使用者添加到sudo ```  ### 3.網路設定 :::info addresses: - 10.0.10.25/24 # 内網IP - 10.2.200.150/32 # 浮動IP gateway4: 10.0.10.1 # 根據實際情况修改 ... nameservers: addresses: - 8.8.8.8 - 8.8.4.4 :::     ### 4.ping www.google.com  :::warning ***若出現ping: www.google.com: Temporary failure in name resolution,表示DNS沒有設好***  **解決方法:** https://blog.csdn.net/donaldsy/article/details/119973990 https://askubuntu.com/questions/886359/ping-8-8-8-8-works-but-ping-www-google-com-doesnt ***若遇到sudo: unable to resolve host [hostname]: Temporary failure in name resolution,表示系統在解析機器的主機名時遇到了問題。***  **解決方法:** 檢查 /etc/hosts 文件:確保's1092960'是正確的主機名。如果缺失,請添加它。 > 該文件應該包含將你的主機名映射到 127.0.0.1 或 127.0.1.1 的條目。 ```cmd= sudo nano /etc/hosts ```  **ssh key 問題,Windows連接SSH報錯permissions for are too open** https://blog.csdn.net/asd123pwj/article/details/128087367 ::: # 檢視重點 ## Hostname  ## IP  ## ping www.google.com 
×
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