開始使用 Azure CLI

如果您有微軟 Azure 帳戶,而且仍然只通過 Azure Portal 管理資源,那您就錯過了。 減少點擊並提高生產力的最佳方法之一是使用 Azure CLI。

Azure CLI 是一個跨平台的工具集,用 Python 編寫,允許您從命令行管理幾乎所有的 Azure 資源。 無論您使用什麼操作系統,Azure CLI 都能提供一致的體驗。

在本教程中,您將學習如何開始使用 Azure CLI。 您將學習如何進行初始配置,並使用各種 Azure CLI 命令創建和刪除一些常見資源。

先決條件

本文將是一個教程。 如果您計劃一步一步地跟隨,您至少需要以下其中之一:

  • Azure CLI – 本教程將在 Docker 容器上使用 v2.20.0,但這些命令在其他平台上同樣有效。
  • 一個 Azure 雲帳戶 – 這個教程可以使用免費帳戶完成。
  • 通過微軟帳戶創建 Azure 資源的權限,也許可以使用 服務主體

使用 az help 獲取幫助

在執行 Azure CLI 中的任何命令之前,請先學會使用 az help 命令。Azure CLI 提供了豐富且充足的幫助。本教程不可能涵蓋所有命令,因此學會如何使用 az help 是至關重要的。

首先,讓我們在幫助系統中導航,看看如何查找各種命令的更多信息。

導航典型幫助示例

示例是最好的學習材料。讓我們通過查找在 Azure 中創建 資源組 所需命令的示例來介紹如何使用 Azure CLI 幫助系統。

打開您的終端:

1. 執行 az help 命令。此命令返回兩種類型的輸出;組和子組。

命令按組進行組織。通常會看到教程(甚至是文檔)將組稱為“命令”。組以階層方式分解,每個組代表一個 Azure 服務。

output of az help

2. 向下滾動,直到找到名為 group 的子組。您可以從下面的描述中看到,此子組負責管理資源組。組按字母順序排列。

scrolling down to find group

3. 一旦找到所需的命令,使用 --help 参数运行它。使用 --help 参数不会进行任何更改;它会返回组或命令的所有帮助文档。

az group --help

您可以在下面看到 group 组和一个单独的子组 (lock),其中包含各种命令。

output of az group help

4. 由于您想要创建资源组,因此 create 命令似乎是正确的命令。现在,通过在原始 az group 引用后添加一个更细粒度的命令并查找帮助来继续获取更多具体信息。

az group create --help

在任何命令上引用 --help 参数以查看其帮助文档。

现在,--help 参数显示有关 create 命令的信息。命令有如下所示的参数。在此示例中,您现在具有指定资源组和所需 location 的参数。

help parameter

使用 az find 查找语法示例

如果您无法轻松地使用 --help 参数找到所需的组或命令,请尝试使用 az find 命令。此命令会使用组/命令引用搜索语法示例,如下所示。

例如,与上述使用 --help 导航帮助系统相反,使用单行命令 az find 执行相同的任务。

az find "az group create"
output of find command

使用 az configure 分配默认配置

Azure CLI 具有許多命令和功能。每個功能都有各種配置,例如日誌記錄和數據收集偏好設置。在首次設置 Azure CLI 時,您應該完成的第一項任務之一是運行 az configure 命令。

在一個命令中,az configure 命令將引導您完成三種不同的設置:

  • 輸出格式 – Azure CLI 返回輸出的七種不同方式
  • 日誌記錄 – 將所有 Azure CLI 活動記錄到文件的能力
  • 遙測 – 啟用或禁用將有關如何使用 Azure CLI 的信息發送給 Microsoft

要開始,假設您已經安裝了 Azure CLI

1. 開啟終端(Bash 或 PowerShell)。

2. 輸入命令 az configure。系統將提示您一個簡單的菜單,告知您所有設置將存儲在 .azure/config 文件中。按 Y 繼續。

output from azconfigure

3. 這個命令首先會提示您選擇所需的默認輸出格式。在此處,選擇您需要的輸出格式。默認輸出格式設置了在執行命令或收到錯誤消息後屏幕上顯示的輸出方式。

If you’re unsure, below you’ll find some examples.

下面的示例使用了 output 參數。無論您選擇了哪種格式作為默認值,您都可以始終使用 output 參數覆蓋默認輸出。

JSON(Java 物件表示法)

json output

JSONC(帶有註釋\著色的 Java 物件表示法)

jsonc output

表格

table output

TSV(以制表符分隔的值)

tsv output

YAML(YAML 不是標記語言)

yaml output

YAMLC(帶有註釋\著色的 YAML)

yamlc output

無 – Azure CLI 只會返回錯誤或警告。

4. 設置輸出格式後,Azure CLI 將提示您啟用日誌記錄。在這裡,選擇Y以將所有命令和輸出記錄到文件中。

Output Format

在這裡選擇Y將創建一個日誌,其中包含使用 CLI 時收集的所有命令和輸出。此日誌位於 Linux 和 macOS 中的$HOME/.azure/logs目錄中,而在 Windows 中則位於%USERPROFILE%\.azure\logs

下面您可以看到日誌的示例。

Log file contents after executing az login

5. 然後,Azure CLI 將要求您向 Microsoft 發送遙測數據。在這裡選擇Y將向 Microsoft 發送有關您如何使用 Azure CLI 的匿名信息。

Telemetry Data

有關微軟收集的信息,請參閱從 Azure CLI 收集匿名數據的Microsoft 的隱私信息

最後,az configure 將要求設置 CLI 對象緩存存活時間值。您應該將此設置為默認值 10。

cli object cache setting

只有在微軟建議時,當您使用 Azure CLI 解決問題時,才更改 CLI 對象 TTL。

設置默認參數值

Azure CLI 具有相同參數的各種命令,例如位置和組。與其每次為每個命令輸入這些參數的值,不如設置默認參數值。

要設置參數默認值,請使用 --defaults 參數在 az configure 上。此參數允許您定義參數及其默認值。例如,也許您已經厭倦了為各種命令輸入 locationgroup。沒問題。設置一些默認值。

以下示例將默認區域(location)設置為 westus2,並將資源組(group)設置為 MyResourceGroup。現在,每當您運行任何具有 locationgroup 參數的 Azure CLI 命令時,Azure CLI 將自動將值傳遞給這些參數。

az configure --defaults location=westus2 group=MyResourceGroup

如果您正在使用容器,您可以設置單獨的容器來管理特定區域、訂閱或資源群組,方法是在每個容器實例中設置默認值。您可以使用 az configure 在每個容器中創建 4 個容器,並使用上述命令設置默認區域和默認資源群組。

使用瀏覽器進行身份驗證

您現在已經了解了使用 Azure CLI 的基本知識,但實際上還沒有做任何事情。現在讓我們邁出這一步,創建一些資源!但首先,您必須使用以下命令登錄到 Azure:az login

如果您有多個 Azure 訂閱,運行 az account list 命令查找所有訂閱。找到訂閱後,運行 az account set --subscription <subscription name> 將訂閱設置為會話中使用的訂閱。您也可以使用全局 subscription 參數明確指定訂閱。

1. 打開終端並運行 az login。此命令會打開一個瀏覽器窗口,將您帶到一個頁面以提供您的用戶名和密碼。

az login in Powershell session

2. 提供您的 Azure 帳戶憑據,或按如下所示點擊現有的用戶帳戶。

authenticate with Microsoft

3. 一旦 Azure 驗證您的帳戶,關閉您的網頁瀏覽器,返回到您的 Azure CLI 會話。 az login 命令會返回有關您的訂閱的信息,以確認您現在具有驗證令牌。

Output from az login, once authenticated

使用設備代碼進行身份驗證

如果您在沒有瀏覽器的系統上,或想在另一台電腦上下載認證令牌,請使用--use-device-code參數。此參數允許用戶使用從其他設備提供的代碼來進行身份驗證。

要使用設備代碼進行身份驗證,請打開終端並:

運行az login使用--use-device-code參數。這次,az login命令將不會打開瀏覽器。相反,它將提供一個代碼供在另一台計算機上的設備登錄頁面使用。

az login --use-device-code
output of az-login —use-device-code

2. 在另一台計算機上,瀏覽至https://microsoft.com/devicelogin,粘貼提供的代碼,然後點擊下一步

Enter code to authenticate

3. 現在輸入您的憑據以進行Azure身份驗證,並關閉您的瀏覽器(如果不需要)。

choosing an account to authenticate with

回到Azure CLI會話中,az login將返回您的訂閱信息。

verification your session is logged on to azure

Azure CLI輸出選項

如前所述,Azure CLI可以以不同的方式返回輸出。您可以定義默認輸出並使用output參數即時更改它。但是output參數並不是改變輸出行為的唯一參數。

要更改冗長性、過濾輸出或修改錯誤輸出行為,請使用以下參數。

  • query – 使用 JMESPath 查询语言来过滤所有命令的输出。参考 this article 了解更多信息。
  • verbose – 返回有关在Azure中创建的资源以及有关这些资源的扩展信息。
  • debug – 返回有关用于调试的CLI操作的低级信息。
  • only-show-errors – 显示错误并抑制警告。

创建资源组

现在,您已经通过Azure进行了身份验证,可以自由地管理您有权限的所有资源。让我们首先运行创建资源组的常见示例。

假设您在安装了Azure CLI的计算机上,并且已经使用CLI进行了Azure身份验证:

使用以下命令创建一个名为 TESTGrpresource-group,该命令将在北欧 location 中创建资源组,并返回所有 verbose 输出。

az group create --location northeurope --resource-group TESTGrp --verbose
output of az group create

2. 确认Azure是否已创建资源。 az group list

az group list

注意您已经创建了名为 TESTGrp 的资源组。

output of az group list

3. 或許您有許多資源群組需要篩選。不必捲動,可使用query參數來縮小列表。以下命令僅使用JMESPath來返回北歐location中的資源群組。

az group list --query "[?location=='northeurope']"
output of a JMESPath query

創建一個 Linux 虛擬機

對於這個最後的示例,學習如何使用 Azure CLI 創建一個Azure VM。創建虛擬機以及其周圍的配置是一個很好的技能。創建 Azure VM 是您在雲旅程中可能反复執行的常見任務。

在這個練習中,您將使用默認設置創建一個 Azure Linux VM,並將其部署到上一節中創建的資源群組中。

Azure VM 由許多 Azure 資源組成,彼此協同工作,如磁碟映像、虛擬網路適配器、虛擬機器等。

要使用 Azure CLI 創建 Azure VM:

1.執行az vm image list命令,查找 VM 的所有可用映像。此命令返回所有的快取/離線映像。az vm image list

az vm image list

對於此演示,選擇下面突出顯示的UbuntuLTS映像。

Cached list of images available

Azure CLI 會維護所有 VM 映像的快取列表。如果 UbuntuLTS 映像沒有顯示出來,請使用all參數獲取更新的列表。

2. 一旦您知道要用於虛擬機的磁碟映像,請使用 az vm create 創建該虛擬機。下面的程式碼片段創建了一個名為 name 的 VM ATAVM1,使用了 UbuntuLTS imageresource-group TESTGrp 中。當 Azure 創建虛擬機時,它將生成 SSH 金鑰(generate-ssh-keys)以便以後連接,並以 JSON (output) 返回輸出。

az vm create --resource-group TESTGrp \
   --name ATAVM1 \ ## 虛擬機的主機名稱
   --image UbuntuLTS \ ## 使用 az vm image list 收集的映像名稱
   --generate-ssh-keys \ ## 自動生成用於 VM 的 SSH 金鑰
   --output json \ ## 覆蓋格式輸出以返回 JSON
   --verbose ## 額外輸出

使用尾隨反斜杠將單個較長的 Azure CLI 命令分隔為多行。

az vm create 命令有許多配置建立 VM 的方法。請記住,幫助系統是您的朋友!az vm create --help

如果命令成功初始化,您應該會看到類似下面截圖的內容。

VM being created

使用 verbose 參數,您將看到實際的 REST API 方法和參數以綠色顯示。

3. 當部署完成時,輸出的最後一部分將顯示有關您的 VM 的信息。對於此演示,最重要的是複製公共 IP 地址。您將需要此地址以通過互聯網連接到 VM。

output from vm creation

此時,請使用上面找到的VM公共IP地址通過SSH連接到Ubuntu VM。要這樣做,打開您喜歡的SSH客戶端,如下所示連接到VM,使用azureuser用戶。默認情況下,az vm create命令創建一個名為azureuser的本地用戶。

connected to the vm created

您能夠無需密碼通過SSH連接到VM,是因為在創建VM時使用了generate-ssh-keys參數。這將私鑰下載到您的~/.ssh目錄,並將公鑰上傳到VM,使您能夠進行身份驗證。

5. 現在清理VM和資源組。

az group delete --name TestGRP

下一步

您現在應該已經準備好使用Azure CLI。您現在可以開始管理一些資源了!那麼接下來呢?

Source:
https://adamtheautomator.com/azure-cli/