Contents

Linux - 打造輕巧 Linux 練習 Lab 第二版

1. 練習環境介紹

https://hackmd.io/_uploads/SyqS49AKs.png
LAB 環境

虛擬主機網路拓樸

https://hackmd.io/_uploads/HJM8V90tj.png
網路拓樸

注: eth0 為管理網路(未列入上圖),各機器有固定 mac address ,並向 DHCP Server 索取對應 IP 及 主機名稱。

  1. 主控端虛擬化 bastion Server 。
  2. 4 台巢狀式虛擬式機器 (練習區)。
  3. 所有均為無圖形化伺服器,減少無用資源消耗及硬碟空間。
  4. 可以透過主控端隨時快速還原 4 台虛擬式機器 (練習區) 為初始設定。
  5. 非常羽量化 (佔用較低的硬碟空間 )。
  6. 已經配置好 Ansible 環境可以直接使用。

2. 環境需求

  1. 需具備 VMware player 16.x (含)以上 或 VirtualBox 虛擬軟體 (建議使用 VMware)。

    • 請務必開啟巢狀虛擬化功能
  2. 建議執行所需資源(含以上):

    CPU Memory Disk
    4 Cores 8G 40G
  3. 極限最小執行資源(效能較差):

    CPU Memory Disk
    2 Cores 4G 20G
Tip
執行速度會依據各電腦 CPU 時脈不同及硬碟 IO 速度有差別。

3. 練習環境下載點

  • 載點為 Google Drive ,下載連結請點我
Success

Google Drive 雲端硬碟下載速度較其它空間來的快速,下載後解壓縮後,請依下方安裝步驟執行。

建議將檔案放置 SSD 硬碟分區內,執行速度會比較快。


4. 環境安裝及操作

請參閱練習 Lab 第一版的安裝流程及操作。


5. 版本差異

  1. 基底 Bastion 主機改用 Redhat Enterprise Linux 8.6 版本。
  2. 新增冗餘網路線及多張網卡( Teaming 練習測試使用 )。
  3. 新增自動配發 IP (172.25.250.0/24) ,及具正反名稱解析功能。
  4. 新增可自行調整內部虛擬機器 CPU 及 Memory 大小( Default : 2 C ,1.5 G)功能。
  5. 新增內部虛擬主機完整 Metadata 還原機制。
  6. 刪除 Workstation 機器,並新增 Worker 機器(ServerD),改用直接由 Bastion 機器操作 Ansible Playbook 管理多台機器。
  7. 增加 Ansbile Playbook Example 能透過 git pull 拉取最新及修訂過的 Playbook 劇本。
  8. 刪除克隆虛擬機器方式,以降低占用機器容量,改用 Base 模板與 DHCP 派發 IP 及 主機名。

6. rht-vmctl 管理工具介紹

rht-vmctl 管理工具介紹

Bastion 主控機主要為啟停四台虛擬機或還原四台虛擬機初始設定。

透過 HowHow 的工具可以快速協助使用者可以簡單操作,以 student 帳號,並透過 rht-vmctl 腳本進行相關作業,可以使用 <TAB> 鍵自動補齊。

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
[root@bastion ~]# rht-vmctl -h
This utility manages  supplied VMs on the local hypervisor.
Usage: rht-vmctl VMCMD VMNAME
  where VMCMD is one of:
    start      - start up VMNAME
    status     - get all status
    poweroff   - poweroff VMNAME
    stop       - if running, force stop VMNAME
    reset      - force poweroff, return to saved or original state, start VMNAME
    fullreset  - poweroff, delete images define, redefine image,
                     recreate overlay, start
    display    - show VMNAME vnc information
    version    - show program's version number
    resize     - reszie VMNAME ( CPU & MEM )
    VMNAME of "all" processes all VMs available in the server[a-d]

    powered by HowHowWen
    Read More from HowHowWen (https://how64bit.com) WebSite ~
  • start - 啟動虛擬機 ( VMname / all )
  • status - 查看虛擬機狀態 ( VMname / all )
  • poweroff - 停止虛擬機 ( VMname / all )
  • stop - 強制關閉虛擬機 ( VMname / all )
  • reset - 還原虛擬機至初始狀態 ( VMname / all )
  • fullreset - 所有虛擬機硬碟及metadata還原至初始狀態
  • display - 顯示虛擬機 VNC 連線方式及訊息 ( VMname )
  • version - 顯示該程式版本
  • resize - 調整虛擬機記憶體大小或CPU大小 ( VMname )
Info
如第一次虛擬機器無法開啟,可使用 fullreset 強制恢復成初始狀態。

7. 進階功能

7.1. 變更虛擬機器 OS 版本為 Ubuntu

  1. 使用 student 帳號登入 Bastion 主機並切換家目錄內的 lab_playbook 目錄
1
cd /data/home/student/lab_playbook
  1. 拉取最新的 Playbook 劇本
1
git stash && git pull
  1. 切換至 00-Ubuntu-Image-Replace 目錄
1
cd 00-Ubuntu-Image-Replace
  1. 執行變更 Base OS 程序

第一次執行需要下載 OS IMAGE 會需要時間,下載完會暫存,除有發布新的 Base 版本

1
bash main.sh
note
執行 Playbook 會檢查所需依賴並於 Waiting For Input To Execute 中任務詢問是否要繼續或是中斷來反悔變更任務
  1. 等待執行完畢後即可登入機器
1
ssh student@servera
  • Ubuntu 也與 RHEL 系列一樣透過 DHCP 及 BIND 固定分配管理網路 IP 及主機名

7.2. 變更虛擬機器 OS 版本為 Rhel

執行步驟同上,僅選擇 00-Rhel-Image-Replace 目錄即可。

8. 小結

Linux 操作熟悉度須多次練習,會越來越熟悉,透過此 Lab 環境可以任意執行,機器損壞或是需要還原乾淨環境,可以一鍵輕鬆達成。



如果你還沒有註冊 Like Coin,你可以在文章最下方看到 Like 的按鈕,點下去後即可申請帳號,透過申請帳號後可以幫我的文章按下 Like,而 Like 最多可以點五次,而你不用付出任何一塊錢,就能給我寫這篇文章的最大的回饋!