【Microsoft Azure 的1024種玩法】六、使用Azure Cloud Shell對Linux VirtualMachines 進行生命週期管理

一直特立獨行的兔先生發表於2021-11-23

【文章簡介】

Azure Cloud Shell 是一個用於管理 Azure 資源的、可通過瀏覽器訪問的互動式經驗證 shell。 它使使用者能夠靈活選擇最適合自己工作方式的 shell 體驗,本篇文章主要針對Linux VirtualMachines 進行生命週期管理(包括啟動、停止、重啟等)

【前期文章】

【Microsoft Azure 的1024種玩法】一.一分鐘快速上手搭建寶塔管理皮膚
【Microsoft Azure 的1024種玩法】二.基於Azure雲平臺的安全攻防靶場系統構建
【Microsoft Azure 的1024種玩法】三.基於Azure雲平臺構建Discuz論壇
【Microsoft Azure 的1024種玩法】四. 利用Azure Virtual machines 打造個人專屬雲盤,速度吊打某雲盤
【Microsoft Azure 的1024種玩法】五.基於Azure Cloud Shell 一站式建立Linux VM
【Microsoft Azure 的1024種玩法】六、使用Azure Cloud Shell對Linux VirtualMachines 進行生命週期管理

【Azure Cloud Shell功能介紹及限制】

  1. 功能介紹
    Azure Cloud Shell 是一個用於管理 Azure 資源的、可通過瀏覽器訪問的互動式經驗證 shell。 它使使用者能夠靈活選擇最適合自己工作方式的 shell 體驗,無論是 Bash 還是 PowerShell。

  2. 條件限制

  • Cloud Shell 在按會話按使用者提供的臨時主機上執行
  • Cloud Shell 在 20 分鐘沒有互動活動後將超時
  • Cloud Shell 需要裝載 Azure 檔案共享
  • Cloud Shell 對 Bash 和 PowerShell 使用相同的 Azure 檔案共享
  • 將針對每個使用者帳戶為 Cloud Shell 分配一臺計算機
  • Cloud Shell 使用檔案共享中儲存的 5-GB 映像持久儲存 $HOME
  • 在 Bash 中許可權是按常規 Linux 使用者設定的

【操作步驟】

一.通過Azure Cloud Shell查詢Azure公共映像

①我們若要是查詢可用的公共映像列表,可以通過在Azure Cloud Shell使用az vm image list 命令進行查詢,命令格式如下:
az vm image list --output table
②執行回顯如下程式碼

ma@Azure:~$ az vm image list --output table
You are viewing an offline list of images, use --all to retrieve an up-to-date list
Offer                         Publisher               Sku                 Urn                                                             UrnAlias             Version
----------------------------  ----------------------  ------------------  --------------------------------------------------------------  -------------------  ---------
CentOS                        OpenLogic               7.5                 OpenLogic:CentOS:7.5:latest                                     CentOS               latest
debian-10                     Debian                  10                  Debian:debian-10:10:latest                                      Debian               latest
flatcar-container-linux-free  kinvolk                 stable              kinvolk:flatcar-container-linux-free:stable:latest              Flatcar              latest
openSUSE-Leap                 SUSE                    42.3                SUSE:openSUSE-Leap:42.3:latest                                  openSUSE-Leap        latest
RHEL                          RedHat                  7-LVM               RedHat:RHEL:7-LVM:latest                                        RHEL                 latest
SLES                          SUSE                    15                  SUSE:SLES:15:latest                                             SLES                 latest
UbuntuServer                  Canonical               18.04-LTS           Canonical:UbuntuServer:18.04-LTS:latest                         UbuntuLTS            latest
WindowsServer                 MicrosoftWindowsServer  2019-Datacenter     MicrosoftWindowsServer:WindowsServer:2019-Datacenter:latest     Win2019Datacenter    latest
WindowsServer                 MicrosoftWindowsServer  2016-Datacenter     MicrosoftWindowsServer:WindowsServer:2016-Datacenter:latest     Win2016Datacenter    latest

WindowsServer                 MicrosoftWindowsServer  2012-R2-Datacenter  MicrosoftWindowsServer:WindowsServer:2012-R2-Datacenter:latest  Win2012R2Datacenter  latest
WindowsServer                 MicrosoftWindowsServer  2012-Datacenter     MicrosoftWindowsServer:WindowsServer:2012-Datacenter:latest     Win2012Datacenter    latest
WindowsServer                 MicrosoftWindowsServer  2008-R2-SP1         MicrosoftWindowsServer:WindowsServer:2008-R2-SP1:latest         Win2008R2SP1         latest

③同時,我們可以通過執行az vm image list --offer CentOS --all --output table命令來過濾出含有“Centos”作業系統的映像(查詢的時間會在1分鐘-3分鐘之間)

CentOS                                           OpenLogic                           7.7                                              OpenLogic:CentOS:7.7:7.7.2020111300                                     7.7.2020111300
CentOS                                           OpenLogic                           7.7                                              OpenLogic:CentOS:7.7:7.7.2021020400                                     7.7.2021020400
php-7-3-with-centos-7-8                          cognosys                            php-7-3-with-centos-7-8                          cognosys:php-7-3-with-centos-7-8:php-7-3-with-centos-7-8:1.2019.1010                                     1.2019.1010
CentOS                                           OpenLogic                           7_4                                              OpenLogic:CentOS:7_4:7.4.20200220                                     7.4.20200220
CentOS                                           OpenLogic                           7_4-gen2                                         OpenLogic:CentOS:7_4-gen2:7.4.20200220                                     7.4.20200220
php-7-3-with-centos-7-9                          cognosys                            php-7-3-with-centos-7-9                          cognosys:php-7-3-with-centos-7-9:php-7-3-with-centos-7-9:1.2019.1010                                     1.2019.1010
CentOS                                           OpenLogic                           7_5-gen2                                         OpenLogic:CentOS:7_5-gen2:7.5.20200214                                     7.5.20200214
CentOS                                           OpenLogic                           7_6-gen2                                         OpenLogic:CentOS:7_6-gen2:7.6.20200213                                     7.6.20200213

④後續若要使用特定的映像來部署虛擬機器,可以通過指定映像的版本號的方式來指定您所需要的的映象,若您這邊想要使用當前最新版本的映象,您可以通過增加“latest”的引數獲取最新的發行版本,舉個例子,假設我們這邊要建立一臺Linux虛擬機器,Linux虛擬機器資訊如下:

  1. 虛擬機器名為:myVM2
  2. 虛擬機器映像為Centos 7.7最新發行版本
  3. 遠端連線認證方式為generate-ssh-keys

⑤根據要求資訊執行下述命令
az vm create --resource-group myResourceGroupVM --name myVM2 --image OpenLogic:CentOS:7.7:latest --generate-ssh-keys
⑥執行完畢如下圖所示

⑦返回VM控制檯檢視相關資訊,發現與我們執行建立的版本資訊一致

二.通過Azure Cloud Shell查詢Azure VM例項規格引數

2.1例項引數規格對比

一般我們在選擇使用Auzre VM之前都會對配置引數進行選型,比如說我們要購買多少CPU、多少記憶體的虛擬機器,要去承載我們的業務需要什麼型別引數的虛擬機器等等,我們在選擇購買前必須要做的一個配置選型工作,去選擇不同例項規格的伺服器,下述列出了針對不同業務場景Azure VM型別

規格簇 例項規格 適合的業務場景
通用型 B, Dsv3, Dv3, DSv2, Dv2, Av2, DC 主要適合搭建web應用前後端、中介軟體、開發測試的場景
計算型 Fsv2 擁有高CPU、高記憶體佔比,主要適用於中等流量的應用程式
記憶體增強型 Esv3、Ev3、M、DSv2、Dv2 擁有較高的記憶體,主要適用於中到大型的快取資料庫、關係型資料庫
儲存增強型 Lsv2、Ls 擁有高磁碟吞吐量和IO,主要適用於搭建各種大資料、Nosql資料庫場景
GPU型 NV、NVv2、NC、NCv2、NCv3、ND 針對視訊、圖片、音訊處理、GPU加速的圖形渲染場景
高效能 H CPU處理能力極強、具有可選的高吞吐網路介面,適合用於深度學習等業務場景

2.2例項引數查詢

我們要想查詢某一個地域下面可用的VM例項型別列表,可通過az vm list-sizes命令進行查詢,舉個例子下述引數查詢美國東部地域可用的例項規格,並通過表格的方式進行輸出,可通過如下命令進行查詢
az vm list-sizes --location eastus --output table

查詢命令輸出如下(美國東部地域可用的例項規格):

MaxDataDiskCount    MemoryInMb    Name                       NumberOfCores    OsDiskSizeInMb    ResourceDiskSizeInMb
------------------  ------------  -------------------------  ---------------  ----------------  ----------------------
2                   512           Standard_B1ls              1                1047552           4096
2                   2048          Standard_B1ms              1                1047552           4096
2                   1024          Standard_B1s               1                1047552           4096
4                   8192          Standard_B2ms              2                1047552           16384
4                   4096          Standard_B2s               2                1047552           8192
8                   16384         Standard_B4ms              4                1047552           32768
16                  32768         Standard_B8ms              8                1047552           65536
16                  49152         Standard_B12ms             12               1047552           98304
32                  65536         Standard_B16ms             16               1047552           131072
32                  81920         Standard_B20ms             20               1047552           16384

三.通過Azure Cloud Shell對Azure VM例項規格動態變配

3.1 檢視當前VM大小

az vm show --resource-group myResourceGroupVM --name myVM --query hardwareProfile.vmSize

調整之前 需查詢Azure叢集是否可用
az vm list-vm-resize-options --resource-group myResourceGroupVM --name myVM --query [].name

大小可用,可以從開機狀態直接調整
az vm resize --resource-group myResourceGroupVM --name myVM --size Standard_DS4_v2

大小不可用,需要解除分配VM,再進行調整大小
az vm deallocate --resource-group myResourceGroupVM --name myVM

四.通過Azure Cloud Shell對Azure VM例項狀態進行管理

4.1 Azure VM例項狀態

一個VM例項狀態分為不同的狀態(正在啟動、執行中、正在停止、已停止、正在解除分配、已解除分配),下述表格是針對VM例項生命週期的不同狀態的解釋描述

例項狀態 描述
正在啟動 虛擬機器正在啟動
執行 虛擬機器正在執行
正在停止 虛擬機器正在停止
已停止 虛擬機器已停止
正在解除分配 虛擬機器正在解除分配
已解除分配 虛擬機器已從虛擬機器監控程式中刪除,但仍在控制皮膚中使用
- 虛擬機器狀態未知

4.2 查詢Auzre VM狀態

通過az vm get-instance-view 命令查詢當前虛擬機器狀態,執行命令如下

az vm get-instance-view \
    --name myVM2 \
    --resource-group myResourceGroupVM \
    --query instanceView.statuses[1] --output table

執行完畢以後,如下圖所示:

4.3 停止Auzre VM

若要停止當前已經啟動的虛擬機器,或者將虛擬機器由啟動狀態改變為停止狀態,可通過"az vm stop "命令進行將虛擬機器停止

az vm stop --resource-group 資源組名稱 --name 虛擬機器名稱

舉個例子:將虛擬機器名為myVM2由執行狀態變更為停止狀態,可執行如下命令,進行操作

az vm stop --resource-group myResourceGroupVM --name myVM2

執行完畢以後,如下圖所示

通過VM的門戶進行檢視當前虛擬機器狀態為stopped已停止狀態,如下圖所示

4.4 啟動Auzre VM

若要將已停止的Auzre VM狀態變更為執行中,則可以通過“az vm start”命令進行啟動Azure VM虛擬機器

舉個例子:將虛擬機器名為myVM2由停止狀態變更為啟動狀態,可執行如下命令,進行操作

az vm start --resource-group myResourceGroupVM --name myVM2

執行完畢以後,如下圖所示

通過VM的門戶進行檢視當前虛擬機器狀態為由之前的stopped已停止狀態變更為執行狀態,如下圖所示

以上內容就是使用Azure Cloud Shell對Linux VirtualMachines 進行生命週期管理全部內容教程了,你學會了麼?

相關文章