The Will Will Web

記載著 Will 在網路世界的學習心得與技術分享

拯救 Azure Linux 虛擬機器大作戰:透過執行命令緊急修復問題

最近幫客戶在 Azure 雲端服務架設一台 Linux 主機,當所有服務設定完成後,請客戶登入接著進行後續設定調整。結果在開帳號給客戶的過程中,卻不小心把 sudoers 的格式寫壞,導致連我自己都無法 sudo 成管理者,整台機器完全無法管理,當場傻眼!本篇文章要來分享一個急救良藥,在 Azure 上管理 Linux VM 有絕招,任何錯誤的設定都可以輕鬆解決!

先來看看發生錯誤的畫面,我可以成功登入自己的帳號,但無法變身為 root 權限:

所有在 Azure 上執行的 Linux VM 都會安裝一個 VM 代理程式,這個代理程式會以最高權限身分執行著,所以我們可以透過 Azure 提供的 執行命令 (Run command) 功能,在 Linux VM 中執行任意指令碼,而且是以 root 身分執行。如此一來,我們就可以用來快速診斷和修復虛擬機器存取和網路問題,並使虛擬機器恢復正常狀態。

我後來找到 使用執行命令在 Linux VM 中執行殼層指令碼 這篇文章,講解的十分清楚,以下我大概示範幾種執行方法。

  1. 透過 Azure 入口網站操作

  1. 透過 Azure CLI 進行操作

    透過 az vm run-command 命令,也可以做到相同的動作,執行任意命令。

    az vm run-command invoke -g myResourceGroup -n myVm --command-id RunShellScript --scripts "sudo apt-get update && sudo apt-get install -y nginx"
    


相關連結

留言評論