Tag: ESXi

  • VMware ESXi 手動更新版本

    最近因為碰到 ESXi 8.0 U2 bug 的問題,要將原本的主機更新為 ESXi 8.0 U2b。本來想要重新裝一台主機再將 VM 過去,但伺服器原廠並未提供對應的 Custom ESXi 安裝包。再從VMware 的版本對應表 ( Build numbers and versions of VMware ESXi/ESX (2143832) )確認改版的 release 形式為 Patch,原則上也不會有伺服器原廠整合好的安裝包,故即便新安裝也還是要再手動進行升級。

    先登入 VMware 官網後,連到下載 Patch 的頁面,下載ESXi 8.0 U2b 的 Depot 包 Zip 壓縮檔,並複製到 ESXi 主機的儲存區中:https://my.vmware.com/group/vmware/patch#search

    確認 ESXi Server 有開啟 SSH 後,使用 Putty 等 SSH 溝通工具連線並登入至 ESXi。

    參考官方的 ESXCLI 指令說明 ( Update a Host with Individual VIBs ) 先查詢 Depot 包內的 VIB 清單:

    esxcli –server=<server_name> software sources vib list –depot=absolute_path_to_depot_zip_file

    再從列出來的清單中找出要用來更新VIB (通常會最新版本號的 standard )後,下指令更新即可:

    esxcli software vib update –depot=absolute_path_to_depot_zip_file

    另外,如果有需要也可在指令後面加入 –no-hardware-warning,以忽略硬體警告。

    跑完確認無誤後重啟主機,透過指令來確認版本是否已更新:vmware -vl

  • ESXi – 自動化重置 VM 虛擬機器

    ESXi – 自動化重置 VM 虛擬機器

    在 VM 的應用上,有時候需要定期將 VM 環境到特定的狀態,如設定還原、連線數量清零 … 等等的維護。下面為透過 crontab 自動還原 VM 狀態並啟動的做法。

    使用軟體:ESXi管理工具 (ex: VMware Host Client, VMware Workstation, … )、SSH Client (ex: putty)

    Automatic Reset ESXi VM State (Snapshot)

    1. 確保 ESXi 的 SSH 服務已啟用

    2. 設定 VM 重啟後自動還原到最後一個快照 snapshots。這裡可以透過 VMware Workstation 設定 VM 選項裡的快照設定,或是透過VMware Host Client 在 VM 編輯設定的組態參數中,直接新增參數:
    anapshot.action : autoRevert

    3. 使用 putty 等工具連線登入到 ESXi (由於屬於系統的核心設定,建議用 root 身分操作)

    4. 登入後透過內建的 vim ,建立關閉指定 VM 的 script 執行檔
    (進入vim 後按[A]即可編輯, 按[Esc]退出編輯模式, 按[Shift]+[:]後輸入 wq 即可存檔離開)

    vi /power-off.sh
    chmod 755 /power-off.sh
    vmname=”您的虛擬機器名稱”
    vmid=$(vim-cmd vmsvc/getallvms | grep “$vmname” | awk ‘{print$1}’)
    stat1=$(vim-cmd vmsvc/power.getstate “$vmid” | grep “on”)
    if [ “$stat1” == “Powered on” ]
    then
    vim-cmd vmsvc/power.off “$vmid”
    fi

    5 建立啟動指定 VM 的 script 執行檔,並於編輯完成後授予執行的權限

    vi /power-on.sh
    chmod 755 /power-on.sh
    vmname=”您的虛擬機器名稱”
    vmid=$(vim-cmd vmsvc/getallvms | grep “$vmname” | awk ‘{print$1}’)
    stat1=$(vim-cmd vmsvc/power.getstate “$vmid” | grep “off”)
    if [ “$stat1” == “Powered off” ]
    then
    vim-cmd vmsvc/power.on “$vmid”
    fi
    6. 編輯 crontab 排程設定檔,以設定定期執行的時間。這裡以每天晚上10點02分執行 power-off.sh 關閉 VM,並每隔16分鐘確保 VM 開啟為例。
    vi /var/spool/cron/crontabs/root
    2 14 * * * /power-off.sh
    */16 * * * * /power-on.sh

    7. 為了讓排程設定生效,需要重啟 crontab 服務。先確認目前 crontab 執行中的 process id,刪除後重新執行即可。

    cat /var/run/crond.pid
    kill {找到的process id}
    crond

    8. 上述步驟便能讓目前 ESXi 上的 VM 自動重置狀態並啟動,但由於 ESXi 開機時會重置 crontab 設定,故還需要透過 ESXi 開機執行的 script 檔來自動加上設定。

    /bin/kill ${cat /var/run/crond.pid}
    /bin/echo ‘2 14 * * * /power-off.sh’ >> /var/spool/cron/crontabs/root
    /bin/echo ‘*/16 * * * * /power-on.sh’ >> /var/spool/cron/crontabs/root
    crond

    以上,便能自動化的讓 VM 虛擬機器定期重置。

  • ESXi – 自動化 Reset Evaluation License 評估授權

    ESXi – 自動化 Reset Evaluation License 評估授權

    Reset Evaluation License 評估授權的方法就如同網上大神們分享的方法一樣,將原始自動產生的授權檔案置換到當前的授權檔案即可。而這裡會再附上自動化定期執行的搭配。(操作上不需重啟 ESXi 伺服器)

    使用軟體:ESXi管理工具 (ex: VMware Host Client, vSphere Client, … )、SSH Client (ex: putty)

    Automatic Reset ESXi Evaluation License

    1. 確保 ESXi 的 SSH 服務已被執行、其對應的防火牆 Port 22已開啟

    2. 使用 putty 等工具連線登入到 ESXi (由於屬於系統的核心設定,建議用 root 身分操作)

    3. 登入後透過內建的 vim 建立重置授權的 script 執行檔,並於編輯完成後授予執行的權限
    (進入vim 後按[A]即可編輯, 按[Esc]退出編輯模式, 按[Shift]+[:]後輸入 wq 即可存檔離開)

    vi /reset-lic.sh
    chmod 755 reset-lic.sh
    rm -r /etc/vmware/license.cfg
    cp /etc/vmware/.#license.cfg /etc/vmware/license.cfg
    /etc/init.d/vpxa restart
    4. 編輯 crontab 排程設定檔,以設定定期執行的時間。這裡以每隔15天執行 reset-lic.sh 為例。
    vi /var/spool/cron/crontabs/root
    * * */15 * * /reset-lic.sh

    5. 為了讓排程設定生效,需要重啟 crontab 服務。先確認目前 crontab 執行中的 process id,刪除後重新執行即可。

    cat /var/run/crond.pid
    kill {找到的process id}
    crond

    6. 到此,上述步驟都沒問題的話,目前的 ESXi 便已經能自動重置評估授權了。但由於 crontab 的設定在 ESXi 重啟後會被重置,因此,還需要編輯開機時自動執行的 script 檔,以便在開機時將剛才的排程設定自動加上去。

    vi /etc/rc.local.d/local.sh
    /bin/kill $(cat /var/run/crond.pid)
    /bin/echo ‘* * */15 * * /reset-lic.sh’ >> /var/spool/cron/crontabs/root
    crond

    以上,便是自動化執行重置評估授權的方式。