Microsoft Azure CLI を Ubuntu にインストールする

# Microsoft Azure CLI を Ubuntu にインストールする

こんにちは、@studio_meowtoon です。今回は、WSL の Ubuntu 22.04 に Microsoft Azure CLI をインストールする手順を紹介します。
![azure_on_ubuntu.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3206449/f72c3ee1-efde-10a8-4bb4-f8c8e624216a.png)

## 目的

Windows 11 の Linux でクラウド開発します。

こちらから記事の一覧がご覧いただけます。

https://qiita.com/studio_meowtoon/items/6119ab05d8b13527efd8

## 実現すること

Windows 11 の WSL Ubuntu 22.04 に Microsoft Azure CLI をインストールします。

:::note alert
**Microsoft Azure** を操作する場合、Web ブラウザ上のポータルサイト **Azure Portal** を使用する方法があり、そちらが一般的です。 しかし、この記事では Azure CLI を使用して **Azure 環境を直接コマンドから操作する**ことで、Azure CLI の基礎的な使い方を学習することを目的としています。ご注意ください。
:::

## 技術トピック

### Microsoft Azure CLI とは？  

<details>
<summary>こちらを展開してご覧いただけます。</summary>

### [Microsoft Azure CLI](https://learn.microsoft.com/ja-jp/cli/azure/what-is-azure-cli)

:::note info
Microsoft Azure CLI は、Microsoft Azure のクラウドプラットフォームを操作するための**コマンドラインインターフェース**です。  

Azure CLI を使うことで、仮想マシンの管理やストレージの操作、デプロイの自動化などをコマンドで行うことができます。Python で実装されており、Windows、macOS、Linux などのプラットフォームで動作します。また、Azure CLI は、Azure PowerShell や Azure Portal と並んで、Azure を操作するための主要なツールの一つです。
:::

</details>

## 開発環境

+ Windows 11 Home 22H2 を使用しています。 

:::note info
[WSL](https://learn.microsoft.com/ja-jp/windows/wsl/about) の Ubuntu を操作していきますので macOS の方も参考にして頂けます。  
:::  

<details>

WSL (Microsoft Store アプリ版) [※ こちらの関連記事からインストール方法をご確認いただけます](https://qiita.com/studio_meowtoon/items/2aaa6579cb8e4fa1d874)

```sh
> wsl --version
WSL バージョン: 1.0.3.0
カーネル バージョン: 5.15.79.1
WSLg バージョン: 1.0.47
```

Ubuntu [※ こちらの関連記事からインストール方法をご確認いただけます](https://qiita.com/studio_meowtoon/items/2aaa6579cb8e4fa1d874)

```sh
$ lsb_release -a
No LSB modules are available.
Distributor ID: Ubuntu
Description:    Ubuntu 22.04.1 LTS
Release:        22.04
```

</details>

:::note warn
この記事では基本的に Ubuntu のターミナルで操作を行います。
:::

## Azure CLI インストール

Microsoft Azure CLI のリポジトリを登録します。

```sh
$ echo "deb [arch=amd64] https://packages.microsoft.com/repos/azure-cli/ $(lsb_release -cs) main" | sudo tee /etc/apt/sources.list.d/azure-cli.list
```

<details>
<summary>説明を開きます。</summary>

:::note info
このコマンドは、Linux 上で Azure CLI を使用できるように、Azure CLI のパッケージが含まれている **Microsoft のリポジトリ**を **Ubuntu に登録**するためのものです。

|コマンド|内容|
|:--|:--|
|echo|指定された文字列を表示します。**"deb [arch=amd64] https://packages.microsoft.com/repos/azure-cli/ $(lsb_release -cs) main"** 追加するリポジトリのURLを示します。|
|\||左側のコマンドの出力を右側のコマンドの入力に渡します。|
|sudo|スーパーユーザー権限でコマンドを実行するためのものです。|
|tee|標準入力から受け取ったデータを、標準出力に表示すると同時に、ファイルに書き込むことができます。 **/etc/apt/sources.list.d/azure-cli.list** 書き込むファイルのパスを示します。|

具体的には、**echo** コマンドを使ってリポジトリの情報を表示し、**tee** コマンドを使ってその情報を **/etc/apt/sources.list.d/azure-cli.list** というファイルに書き込んでいます。**$(lsb_release -cs)** は、現在の Ubuntu のバージョンを表すコードで、この部分は実行環境に応じて自動的に置き換えられます。そして最後に、**sudo** を使ってスーパーユーザー権限で実行しています。
:::

</details>

パッケージ署名キーをインポート

```sh
$ curl -L https://packages.microsoft.com/keys/microsoft.asc | sudo apt-key add -
```

<details>
<summary>説明を開きます。</summary>

:::note info
このコマンドは、Microsoft が提供するリポジトリからパッケージをインストールするために必要な公開鍵を取得し、システムに追加しています。

|コマンド|内容|
|:--|:--|
|curl|URL https://packages.microsoft.com/keys/microsoft.asc からデータをダウンロードします。-L オプションを使用することで、リダイレクトがあった場合にも自動的にたどります。|
|\||ダウンロードしたデータを **sudo apt-key add -** コマンドに渡します。このコマンドは、ダッシュ **-** を引数として渡しています。ダッシュを引数として渡すことで、標準入力からデータを受け取るように指定しています。つまり、先ほど **curl** コマンドでダウンロードしたデータを **apt-key add** コマンドに渡しています。|
|sudo apt-key add|コマンドを root 権限で実行しています。このコマンドは、**/etc/apt/trusted.gpg.d/** ディレクトリに Microsoft の公開鍵を追加するために使用されます。これにより、後続の apt コマンドが Microsoft のパッケージを信頼できるものとして扱うことができます。|
:::

</details>

Azure CLI インストール

```sh
$ sudo apt update
$ sudo apt install azure-cli
```

:::note info
**sudo apt install** コマンドを使用して、Azure CLI のパッケージをインストールします。
:::

Azure CLI のバージョンを確認します。

```sh
$ az --version
azure-cli                         2.45.0
core                              2.45.0
telemetry                          1.0.8
Dependencies:
msal                              1.20.0
azure-mgmt-resource             21.1.0b1
```

## Microsoft Azure のアカウントを取得

https://azure.microsoft.com/ja-jp/free/

:::note warn
Azure を利用するには、アカウントの作成とクレジットカードの登録が必要です。登録すると、最初の1か月間は無料で利用できるクレジットが提供されます。初心者の方でも安心して始められるので、ぜひアカウントを作成してみてください。
:::

## Azure にサインイン

Azure アカウントにサインインします。

```sh
$ az login
```

WEBブラウザが立ち上がりますのでそちらでログインします。
![azure_1ed.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3206449/62481247-cd85-ccf1-191a-761a2353b5a9.png)
ログインが成功した場合、以下のようにターミナルに出力されます。

````sh
A web browser has been opened at https://login.microsoftonline.com/organizations/oauth2/v2.0/authorize. Please continue the login in the web browser. If no web browser is available or if the web browser fails to open, use device code flow with `az login --use-device-code`.
The following tenants don't contain accessible subscriptions. Use 'az login --allow-no-subscriptions' to have tenant level access.
xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx 'AWESOME'
[
  {
    "cloudName": "AzureCloud",
    "homeTenantId": "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx",
    "id": "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx",
    "isDefault": true,
    "managedByTenants": [],
    "name": "AWESOME",
    "state": "Enabled",
    "tenantId": "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx",
    "user": {
      "name": "awesome@company.com",
      "type": "user"
    }
  }
]
````

※ Azure CLI を最新バージョンに更新する場合は、以下のコマンドを入力します。  

```sh
$ az upgrade
```

## Azure 環境の操作

:::note info
Azure CLI を使って、簡単な Azure 環境の操作方法をご紹介します。
:::

### リソースグループの操作

:::note alert
**Azure リソースの命名規則と制限**について、Microsoft は公式ドキュメントで公開しています。学習者の方々が現時点で気にする必要はありませんが、最初から規則に従ってリソースを作成することで、将来の業務でも混乱を避けることができます。
:::

https://learn.microsoft.com/ja-jp/azure/azure-resource-manager/management/resource-name-rules

リソースグループを作成してみます。

```sh:Microsoft.Resources/resourceGroups
$ az group create \
    --name rg-hello \
    --location japaneast
```

成功した時のレスポンスは以下のようになります。  

```json
{
  "id": "/subscriptions/xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx/resourceGroups/rg-hello",
  "location": "japaneast",
  "managedBy": null,
  "name": "rg-hello",
  "properties": {
    "provisioningState": "Succeeded"
  },
  "tags": null,
  "type": "Microsoft.Resources/resourceGroups"
}
```

リソースグループを表示してみます。

```sh
$ az group show \
    --name rg-hello
```

:::note info
リソースグループを作成した時と同じレスポンスが返ります。  
:::

※ リソースグループを削除する場合は以下のコマンドです。  

```sh
$ az group delete -n <group>
```

:::note warn
これで Ubuntu に Azure CLI をインストールして初歩的な操作をしてみることができました。この記事では Azure CLI のインストールが目的ですので、今後の記事でより詳細な操作方法を紹介していきます。
::: 

Microsoft 公式リファレンスはこちらです。  

https://learn.microsoft.com/ja-jp/cli/azure/

## まとめ

+ Window 11 の WSL Ubuntu 22.04 LTS に、Azure CLI をインストールして初歩的な Azure 環境の操作をすることができました。

どうでしたか？ WSL Ubuntu に、Azure CLI を手軽にインストールすることができます。ぜひお試しください。今後も、開発に必要な環境構築手順などを紹介していきますので、お楽しみに。それでは失礼します。

## 推奨コンテンツ

https://qiita.com/studio_meowtoon/items/cbcfe1433885bae514db