---
# System prepended metadata

title: Windows WSL 安裝 III-DevOps 教學
tags: [III-DevOps]

---

# DevOps Lite On Windows WSL


## 相關需求

- 作業系統
    - Windows 10 (2004 版本以上)
- 硬體需求
    - 2 個虛擬 CPU
    - 16 GB RAM 記憶體
    - 60 GB 硬碟空間（建議使用 SSD）
- 資料需求
    - [ ] 電腦的 IP ( 可以是 DHCP、LocalHost 或是標準的固定 IP)
    - [ ] 具有 Root 權限的使用者帳號 ( 不可以是 Root )
## 安裝 WSL 與 Docker 管理套件

### 步驟 1：提供 Windows 執行權限
- 開啟「程式與功能」
    ```
    Windows10 Path : 
    [開始] → [Windows 系統] 下的 [控制台] → [程式集] 下的 [程式和功能]。
    Windows11 : 
    [開始] → [所有應用程式] → [Windows 工具] 下的 [控制台] → [程式集] 下的 [程式和功能]。
    ```
- 將 「 Windows子系統Linux版 」與 「 Hyper-V 」打勾後重新啟動電腦
    ```
    如果沒有 Hyper-V 的打勾選項、則進入 Bios 將其開啟
    通常在於 「高級、CPU 」分區。查找 AMD-V、SVM、VT-d、VT-x 等關鍵字
    ```

### 步驟 2： 安裝 WSL 與 Ubuntu 版本
- 打開 cmd (命令提示字元) 下載 WSL (會花費一小段時間)
    ```shell
  wsl --install -d Ubuntu
  ```
- 安裝完成後，輸入且設定使用者名稱、密碼

- wsl 版本相關指令 (選用)
    ```shell
  wsl -l  # 確認 wsl2 版本
  wsl -h  # 列出 wsl2 所有指令
  wsl --update  #更新 wsl 版本到最新
  wsl --unregister Ubuntu #更換成自己安裝的 Ubuntu 版本(需要有下載)
  wsl --set-default-version 2  # 將 WSL 版本預設改成 wsl2
  ```
- 備註：如果要下載其他 Ubuntu 版本，可以開啟 Microsoft Store 後選擇要的版本下載

### 步驟 3： 安裝 Docker 與 Dokcer Desktop 與相關設定
- 更新 Ubuntu
    ```shell
  apt update
  apt upgrade
  ```
- 安裝 Docker
    ```shell
  sudo apt install docker.io
  ```
- 設定 UserGroup
    ```shell
  sudo usermod -aG docker $USER
  ```
- 執行 HelloWorld 測試
    ```shell
  docker run hello-world
  ```
- Docker 設定
    ```shell
  vim ~/.profile
  export DOCKER_HOST = 127.0.0.1:$port
  docker version # 確認版本
  ```
  
- Docker Desktop 設定

  1. 安裝 [Docker DeskTop](https://www.docker.com/products/docker-desktop/)
  2. 點選右上角齒輪
  3. 選擇 General -> Use The WSL2 Based Engine

  
## III - DevOps 安裝步驟

### 步驟 1：下載部署程式

- 下載最新版部署程式

  ```shell
  git clone https://github.com/iii-org/deploy-devops-lite.git Lite
  ```

- 或直接下載 [更新腳本](https://raw.githubusercontent.com/iii-org/deploy-devops-lite/master/script/upgrade.sh)

  ```shell
  wget https://raw.githubusercontent.com/iii-org/deploy-devops-lite/master/script/upgrade.sh -O upgrade.sh
  chmod +x upgrade.sh
  
  ./upgrade.sh
  ```

### 步驟 2：設定環境變數

- 如果您希望在執行部署程式之前設定環境變數，請執行以下指令：

  ```shell
  # 切換到專案根目錄
  cd Lite
  cd script
  ./generate_env.sh all
  ```
    - IP_ADDR : 設定目前這台主機的 IP Exp. 61.67.2.30
    - III_ADMIN_LOGIN : 設定預設管理者帳號(不能是 root 或 admin) Exp. sysadmin
    - III_ADMIN_EMAIL : 設定預設管理者電子郵件 Exp. sysadmin@iiidevops.org
    - III_ADMIN_PASSWORD : 設定預設管理者密碼(需要8-20個字同時需要至少1個大寫1個小寫和1個數字)

您可以確認設定的環境變數在 `.env` 檔案中。

或者您也可以跳過此步驟，當您執行部署程式時，它會提示您輸入環境變數。

### 步驟 3：執行部署程式

> 此步驟需耗時至少 10 分鐘。

在此步驟中，我們將執行設定腳本。  
對於我們尚未安裝的套件，腳本將會自動完成安裝及設定。  
對於上一步驟中未設定的環境變數，腳本將會檢查並提示您輸入。

要執行腳本，請確保您在專案根目錄中，然後執行以下命令：

```shell
./setup.sh
```

如果發生任何錯誤，它將顯示以 “[ERROR]” 開頭的訊息並退出腳本。  
如果腳本成功執行，它將顯示以下訊息：

```shell
[NOTICE] Script executed successfully
```

您可以在您的瀏覽器中輸入 `http://<IP_ADDRESS>` 來檢查 DevOps Lite 是否已成功部署。

## 更新

執行 `script/update.sh` 來更新 DevOps Lite。  
此腳本會拉取最新更新並重新啟動 docker compose。



## 錯誤排解

1. Git Repository has been detected as potentially unsafe

```shell
  git config --global --add safe.directory $path
```

2. Install can't init
```shell
  sudo chown -R $user:$user $path
```

[Github](https://github.com/iii-org/deploy-devops-lite




















## 5. 向資策會各位長官詢問與進度報告之事項

#### 1. 關於後續研究方向

    1. 後續仍繼續以 GitLab 與 Rancher 的 CI 為研究方向嗎？
    2. 想要了解一下後續可能的指派工作方向，或是有機會參與並學習的方向(前端/後端/雲端等等)
    
這是本週主要找到並閱讀中的 [GitLab官方文件](https://docs.gitlab.com/ee/ci/)    

#### 2. 關於上次提到的安裝版 MD 重點修改與建議

1. 在 「Partition Disk : use entire disk and set up LVM」跟 「Install the GRUB boot loader on a hard disk :YES」中間會有一個關於詢問總磁碟欲切割之大小的步驟，這邊個人推薦選擇全切

2. 在進行 DNS 安裝步驟可以添加一個 IP 方式的說明，因為同樣也是會自動輸入 IP ，直接一直點擊下一步即可

3. Rancher 跟 GitLab 連接 (第二章最後面) 圖片會多一個 Repo 的回饋告知 (多按一次確認即可)

4. 關於橫向擴展之建議：
    - 可以把第 X 台改成 workerX / 當下操作這台 / Master 等等的比較明確(操作時有被這個搞混一下)
    - 因為在最前面有進行了用 iso 檔進行橫向擴展的教學，而在後面有一個用 Ubuntu 進行擴展的教學 (但有點突然出現)，兩個重複的步驟有可能會誤會成需要對已設定好的 Worker Node 額外進行設定。
    - 可以在 Ubuntu 那邊多補充說明，或是把 Master Node 的安裝也拉過來獨立單元使用。

5. 關於錯誤補充
    - Worker Node 擴充部分
    - 如果 iso 版本在進行擴充安裝的時候，如果發生異常關機(不論是 Master 或是 Worker Node )時可處理方式。
    1. 把 CPU 或是 RAM 加大(如果是用 VM 有可能會遇到這狀況)
    2. 再下載安裝時，如果 Master Node 被關閉，可以先安裝好後，等連線失敗後再開機重新嘗試。
    3. 如果仍無法，則在安裝好連線失敗後，選擇 Cancel 結束，並使用指令「sudo -u rkeuser perl /home/rkeuser/join-k8s-node.pl "MasterNode IP" "WorkerNode IP"」

#### 3. 關於本身 III-PlatForm 使用技術
關於上次有提到的教學簡報，除去功能介紹外也需要介紹到使用之套件 / 專案 / 技術 等內容，同時可能會教學到對其進行開源貢獻，故特地向各位長官詢問自身整理是否有遺漏或是錯誤之部分。

##### 關於 III 平台套件
- Sonaqube / Redmine / Docker / Kubernetes / GitLab / Jenkis

##### 關於 III 平台本身
- **前端** ： Vue / React / Angular
- **後端** ： Flask / Go / RestFul API 
- **資料庫** ： MySQL (Maria / Postgre) / NoSQL (Redis / MongoDB)

##### 其他分類
- 完整版還有使用到 Rancher 
- 是否有 HackMD 尚未介紹到的新功能？



### 其他事項
- 關於上次 提到 MarkDown 語法變成網頁語法的錯誤問題，是否需要如同上次一樣開議題委派陳述進行回報。

