Linux - 打造輕巧 Linux 練習 Lab
1. 練習環境介紹
- 主控端虛擬化 bastion Server 。
- 4 台巢狀式虛擬式機器 (練習區)。
- 所有均為無圖形化伺服器,減少無用資源消耗及硬碟空間。
- 可以透過主控端隨時快速還原 4 台虛擬式機器 (練習區) 為初始設定。
- 非常羽量化 (佔用較低的硬碟空間 )。
- 已經配置好 Ansible 環境可以直接使用。
2. 環境需求
-
需具備 VMware player 16.x (含)以上 或 VirtualBox 虛擬軟體 (建議使用 VMware)。
-
建議執行所需資源(含以上):
CPU Memory Disk 4 Cores 8G 40G -
極限最小執行資源(效能較差):
CPU Memory Disk 2 Cores 4G 20G
3. 練習環境下載點
* 載點為 Google Drive ,下載連結請點我
檔案壓縮後約 12 GB
建議使用新版 Lab 練習環境(強化功能跟優化),連結請點我
Google Drive 雲端硬碟下載速度較其它空間來的快速,下載後解壓縮後,請依下方安裝步驟執行。
建議將檔案放置 SSD 硬碟分區內,執行速度會比較快。
Google Drive 下載圖例。
4. 環境安裝方式
4.1 VMware 安裝方式
-
解壓縮後雙擊 howhow-bastion.ovf 檔案並使用 VMware 開啟,匯入機器名稱及路徑可以自行定義。
-
編輯虛擬機並確保下圖紅框(巢狀式虛擬化功能有開啟),另可以依實際狀況調整 CPU 或是 Memory
-
儲存後即可開啟機器
-
機器開啟後,虛擬機畫面會提示連線的 IP 及帳號密碼訊息。
- 帳號 : student
- 密碼 : student
1. 預設使用 NAT 網路,VMware 可以直接從宿主機器 SSH 訪問 bastion 虛擬機,如要使用其它機器訪問請修改為 Bridged 橋接模式。
2. 建議登入 Bastion 使用任何可以支援 SSH 連線工具 (Putty 、 GitBash 、 Terminal、Xshell ) 等登入練習,比較方便使用複製貼上等功能。
3. Windows 10 新版本使用者可以直接使用 CMD 中 ssh 功能。
4.1 VirtuallBox 安裝方式
-
開啟 VirtuallBox 並點擊新增。
- 名稱 : howhow8-mini-base 。
- 機器資料夾 : 預設或是可以自訂定義 。
- 類型 : Linux 。
- 版本 : Red Hat (64-bit) 。
-
選擇使用現有虛擬硬碟檔案。
-
點擊加入虛擬硬碟檔案。
-
選取練習環境下載解壓縮後的 rhowhow-bastion-disk1.vmdk 。
-
選取上一步加入的硬碟。
-
建立後請勿開機,請先點擊設定選項。
-
查看 系統-處理器下方紅框 “啟用 Nested VT-x/AMD-v” 選項是否呈現不可點選狀態。
- 如出現上一步狀態,需切換至 VirtuallBox 資料夾(VirtuallBox檔案安裝路徑)後透過命令列方式啟動巢狀式虛擬化,指令如下 :
|
|
- 輸入完上一步指令後即可點選啟用巢狀式虛擬,並依需求調整 CPU 及 Memory。
- 修改虛擬機網路介面卡,將介面卡1 NAT 改為橋接介面卡 。
- 儲存後即可開啟機器。
- 機器開啟後,虛擬機畫面會提示連線的 IP 及帳號密碼訊息。
- 帳號 : student
- 密碼 : student
1. 建議登入 Bastion 使用任何可以支援 SSH 連線工具 (Putty 、 GitBash 、 Terminal、Xshell ) 等登入練習,比較方便使用複製貼上功能。
2. Windows 10 新版本使用者可以直接使用 CMD 中 ssh 功能。
5. 練習環境操作
5.1 Bastion 主控機
5.1.1 rht-vmctl 管理工具介紹
Bastion 主控機主要為啟停四台虛擬機或還原四台虛擬機初始設定。
透過 HowHow 的工具可以快速協助使用者可以簡單操作,以 student 帳號,並透過 rht-vmctl 腳本進行相關作業,可以使用 <TAB> 鍵自動補齊。
|
|
- start - 啟動虛擬機 ( VMname / all )
- status - 查看虛擬機狀態 ( VMname / all )
- poweroff - 停止虛擬機 ( VMname / all )
- stop - 強制關閉虛擬機 ( VMname / all )
- reset - 還原虛擬機至初始狀態 ( VMname / all / worker )
- display - 顯示虛擬機 VNC 連線方式及訊息 ( VMname )
- version - 顯示該程式版本
5.1.1 啟動虛擬機
5.1.1.1 啟動全部虛擬機器
- 透過工具開啟全部機器。
|
|
|
|
- 持續 ping 直到 workstation 機器開機。
|
|
- 登入 workstation 機器。
|
|
- 帳號: student
- 密碼: student
5.1.1.2 啟動指定虛擬機器
- 透過工具開啟指定機器。
|
|
- 持續 ping 直到 servera 機器開機。
|
|
- 登入 servera 機器。
|
|
- 帳號: student
- 密碼: student
5.1.2 查看虛擬機狀態
5.1.2.1 查看全部虛擬機器
- 透過工具查看全部機器。
|
|
|
|
5.1.3 停止虛擬機
5.1.3.1 停止全部虛擬機器
- 透過工具停止全部機器。
|
|
|
|
5.1.3.2 關閉指定虛擬機器
- 透過工具關閉指定機器。
|
|
|
|
5.1.4 重置虛擬機
5.1.4.1 重置全部虛擬機器
- 透過工具重置全部機器。
|
|
|
|
5.1.4.2 重置指定虛擬機器
- 透過工具重置指定機器。
|
|
|
|
5.1.5 顯示虛擬機 VNC 連線方式及訊息
-
需求 :
- 使用 VNC Viewer Client 端軟體並安裝,載點請點我
-
透過工具顯示指定機器。
|
|
|
|
- 開啟 VNC Viewer Client , 並工具提示的連線地址進行連接。
-
輸入連線地址後即可操作機器。
-
也可以透過 VNC 進行 reboot重新開機,並請查看開機進度或是至 GRUB 設定。
每一次連線的 Port 都是隨機的,不一定是上一次的 Port,使用前請先檢查。
5.1.6 建立代理,查看虛擬機網路服務
-
囿於 4台虛擬機是透過 NAT 網路方式連線,本身宿主機的瀏覽器是無法直接訪問的,必須要透過建立代理方式。
-
假設 Servera 啟動 httpd 服務在 80 port,且防火牆已經開放規則或是停用,如下圖。
-
使用瀏覽器嘗試訪問 servera ip (172.25.250.10) ,是無法正常顯示。
5.1.6.1 建立代理步驟:
-
選擇任意可以支援 ssh 工具 ( 以GitBash為例 )建立 ssh 動態傳輸隧道。
1
ssh -vND 127.0.0.1:9453 root@<Your Bastion IP>
- 密碼 : redhat
-
選擇任意瀏覽器配置 Proxy ( 以 Firefox 為例 ),並保存使生效。
-
重新嘗試訪問 servera ip (172.25.250.10),即可順利顯示。
5.1.7 手動新增靜態路由
如果想除了瀏覽器之外也能直接存取虛擬機器,可以透過此方式,直接將手動新增路由表。
此操作需要宿主機器的 Root/Administrator 權限並會修改靜態路由表,請自行判斷並斟酌使用。
- 在宿主機器內新增 172.25.250.0/24 網路路由,並將其流量導入虛擬機器內。
EX. Windows CMD 為例
|
|
- 至 Bastion 機器內清除 iptable 禁止轉發至其它網路規則。
|
|
iptables -nL --line-numbers
指令確保 ID 為 2。- 上述步驟完成,可以直接在宿主機器瀏覽器或是任意設備存取 172.28.250.0/24 網段資源。
5.2 登入 4 台練習虛擬機
-
登入 bastion 主控機後,並完成其內部虛擬機開機,即可使用 ssh 登入。
-
一般使用者
- 帳號: student
- 密碼: student
-
管理者
- 帳號: root
- 密碼: redhat
-
練習 Ansible 請使用 workstaion機器,已經配置指定使用者免密碼認證機制。
- 如要重置該虛擬機,需至 bastion 主控機執行 rht-vmctl reset 指令。
-
Ansible 練習環境已經打造好了,透過 workstation 當作控制端,即可測試 Ansible 功能 :
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15
[student@workstation example]$ ansible-playbook playbook.yaml PLAY [Example] ******************************************************************************************************************************************** TASK [Print Hello Ansible] ******************************************************************************************************************************** ok: [servera.lab.example.com] => { "msg": "Hello Ansible!" } ok: [serverb.lab.example.com] => { "msg": "Hello Ansible!" } ok: [serverc.lab.example.com] => { "msg": "Hello Ansible!" } ...
6. 使用練習環境小技巧
如果因練習不小心誤刪重要檔案,或是機器當機無法啟動的話,直接執行 rht-vmctl reset all
,重置所有機器或是指定單台機器,可以快速恢復初始的練習環境喔。
Bastion 那一台虛擬機請勿隨意更改配置,此機器無法透過指令還原,可能會導致整個環境不可用!!
如果不幸發生 Bastion 無法正常啟用,請在 VMware / VirtuallBox 將機器刪除,重新再將原始機器匯入。
7. 小結
透過 Bastion 機器的 rht-vmctl 腳本能有效控制 KVM 虛擬機器。透過此 Lab 環境可以很快速達成多台機器練習,也不用擔心練習操作誤刪檔案或是操作不當導致機器失效,並且能在每一次 Lab 實驗還原最初的機器狀態,避免影響下一次實驗操作。
如果你還沒有註冊 Like Coin,你可以在文章最下方看到 Like 的按鈕,點下去後即可申請帳號,透過申請帳號後可以幫我的文章按下 Like,而 Like 最多可以點五次,而你不用付出任何一塊錢,就能給我寫這篇文章的最大的回饋!