---
# System prepended metadata

title: 雲端技術實務 HW6
tags: [雲端技術實務]

---


# 雲端技術實務 HW6
## 系統簡介
* **伺服器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.155
## 建置虛擬機的前置作業
### 1. 下載[Ubuntu Server 24.04 LTS](https://docs.openstack.org/image-guide/obtain-images.html#ubuntu)
:::info
**Ubuntu 雲端下載：** https://cloud-images.ubuntu.com/
:::
![image](https://hackmd.io/_uploads/H1yXu5SVR.png)
### 2. 進入[http://10.2.200.142/dashboard](http://10.2.200.142/dashboard)將此映像檔上傳至 openstack
:::info
Project(專案) -> Compute(運算) -> Image(映像檔) -> Create Image(建立映像檔)
:::
:::success
**可見性**
**私有：** 僅自己可見可用
**已分享：** 所有人可見，僅自己可用
**公開：** 所有人可見可用
:::
![image](https://hackmd.io/_uploads/SJeaxcSNR.png)

![image](https://hackmd.io/_uploads/H1i36c-V0.png)
### 3.改變安全性群組的規則
:::success
預設群組的規則僅允許所有對外連線，對內連線則是全部禁止。因此我們需要新增規則，允許SSH以及ping連入。
:::
:::info
Project(專案) -> Network(網路) -> 安全性群組 -> 管理規則 -> 加入規則
:::
![image](https://hackmd.io/_uploads/B18y4kMQR.png)

![image](https://hackmd.io/_uploads/S1OBZ5HEC.png)

### 4.新增可用的浮動 IP
:::info
Project(專案) -> Network(網路) -> Floating IPs(浮動 IP) -> Allocate IP To Project(分配IP到專案)
:::

![image](https://hackmd.io/_uploads/SkQ_JsWVA.png)

### 5.新增 SSH key pairs
:::success
由於剛建好的 instance 並沒有可用的使用者帳密以登入，僅能使用 SSH key pairs 登入，因此我們需要新增 SSH key pairs。
:::

:::info
Project(專案) -> Compute(運算) -> Key Pairs(密鑰對) -> add Key Pairs
:::
![image](https://hackmd.io/_uploads/Hk2aZib4C.png)

![image](https://hackmd.io/_uploads/rk91XoWVR.png)

> 私鑰將會自動下載，檔名為 "key1.pem"，將此私鑰放在安全的地方保管。
![image](https://hackmd.io/_uploads/HyelOiZEA.png)

## OpenStack網路設定
### 1.建立虛擬外網(須與實體內網網段一樣)
:::info
**在現有public上，直接新增一子網路**

Project(專案) -> Network(網路) -> Networks(網路) -> public -> 子網域 -> 新增子網域
:::
![image](https://hackmd.io/_uploads/Sykk0T-X0.png)

![image](https://hackmd.io/_uploads/HJJgRTWmA.png)

![image](https://hackmd.io/_uploads/rJWQLH4XA.png)

### 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  #會斷網
```
![image](https://hackmd.io/_uploads/BJT-FGiGC.png)

**到server修改00-installer-config.yaml**
![image](https://hackmd.io/_uploads/H13DmzjzA.png)
```
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
  
```
![image](https://hackmd.io/_uploads/BJRTqMiMC.png)

**更新網路配置：**
```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
```
![image](https://hackmd.io/_uploads/rkDX6zizC.png)

### 3.使用預設網路(虛擬內網)(shared)
![image](https://hackmd.io/_uploads/S13Vyh-VC.png)

### 4.建立虛擬 router 連接虛擬內網和外網
:::info
Project(專案) -> Network(網路) -> Routers(路由器) -> Create Router(新增路由器)
:::
![image](https://hackmd.io/_uploads/HkFdyhZV0.png)

:::info
Admin(管理員)|Project(專案) -> Network(網路) -> Routers(路由器) -> router -> 網路卡 -> 加入網路卡
:::

> 使用預設網路(虛擬內網)(shared)
> 
![image](https://hackmd.io/_uploads/Syp2kh-V0.png)

:::warning
**若無法連接shared，則可另外創建虛擬內網**
之前有用router連接過shared，之後砍掉了就連接不上了
![image](https://hackmd.io/_uploads/Hkm68crVC.png)

Project(專案) -> Network(網路) -> Networks(網路) -> Create Network(新增網路)

![image](https://hackmd.io/_uploads/SkAK8qrVR.png)
> 虛擬內網網段可以自訂，不要跟實體網路一樣就好

![image](https://hackmd.io/_uploads/rJSkwRZXA.png)

![image](https://hackmd.io/_uploads/B1wgv0Z70.png)
:::
## 建立虛擬機
### 1.建立虛擬機
:::info
Project(專案) -> Compute(運算) -> Instances(雲實例) -> Launch Instance(發動雲實例)
:::
![image](https://hackmd.io/_uploads/ByWEcqHNR.png)
![image](https://hackmd.io/_uploads/SJDr5qrV0.png)
![image](https://hackmd.io/_uploads/SJIP5qB4R.png)

![image](https://hackmd.io/_uploads/BJqYc9HNA.png)
![image](https://hackmd.io/_uploads/By_2cqHVA.png)
### 2.檢查網路拓樸並配對 floating IP 到虛擬機的虛擬內網 IP
:::info
Project(專案) -> Network(網路) -> Network Topology(網路拓撲)
:::
![image](https://hackmd.io/_uploads/BJLjAor4A.png)

:::info
Project(專案) -> Network(網路) -> Floating IPs(浮動 IP) -> 找到剛才產生的 floating IP -> Associate(連結)
:::

![image](https://hackmd.io/_uploads/SyAgsqBE0.png)
![image](https://hackmd.io/_uploads/BkrEoqS40.png)


## 檢查連線狀態並連入虛擬機
### 1.使用 SSH 私鑰連入虛擬機
> 剛建好的 instance 並沒有可用的使用者帳密以登入，僅能使用 SSH key pairs 登入
```
ssh -i D:\Downloads\key1.pem ubuntu@10.2.200.155
```
### 2.添加使用者(X 可能不必要)
```cmd=
sudo adduser s1092915 # 建立使用者
sudo adduser s1092915 sudo # 將剛剛新建立的使用者添加到sudo
```
![image](https://hackmd.io/_uploads/HJmnsoHE0.png)
![image](https://hackmd.io/_uploads/rk14niHER.png)
### 3.網路設定
![image](https://hackmd.io/_uploads/Hkd8M2SEC.png)

![image](https://hackmd.io/_uploads/SJBHZ2SER.png)
![image](https://hackmd.io/_uploads/r1-d-2BE0.png)

### 4.ping google
![image](https://hackmd.io/_uploads/r1GpuhH4C.png)
# 檢視重點
## Hostname
![image](https://hackmd.io/_uploads/HkbHK2SVR.png)

## IP
![image](https://hackmd.io/_uploads/ByXzFnSNC.png)

## ping www.google.com
![image](https://hackmd.io/_uploads/r1GpuhH4C.png)


https://leesonhsu.blogspot.com/2021/03/ssh-key-windows-permission-denied.html





