# 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 語法變成網頁語法的錯誤問題,是否需要如同上次一樣開議題委派陳述進行回報。
×
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