Azure CLIをMacにインストールして認証まで

# 背景

新しいMacBook Airを買って、仕事でAzureを使うことになったのでAzureCLIをインストールしなきゃいけなくなった。

普段AWSとGCPしか使わないので勝手がわからないがとりあえずbrewのインストールから始める。

# 環境

* MacOS Monterey v12.5
* Apple M2
* メモリ8GB

前提として、個人のMicrosoftアカウントでAzurePortalにすでにサインインできる状態であるとする。

### memo

開発業務をする想定でないのでProでもなくましてやメモリ8GBを買ってしまった。。。
進めてみて無理そうならまた買い換えるか。。

# やったこと

基本的にまっさらなmacであればこの手順でやればいい(はず)

## Homebrewのインストール

すでにbrewが入っているなら飛ばしてよし。

インストール前に環境確認しておく

```bash
$ uname -m                             
arm64
```

私はarm64のアーキテクチャなので、`/opt/`にインストールされるはず。

もし`x86_64`とかになってたら後々PATHを通す時に気をつけなきゃいけない。

この辺とか参考になると思う。
<https://www.karakaram.com/install-homebrew-mac/#path>

確認した所で、インストールコマンドを実行する。
<https://brew.sh/>
```bash
/bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install.sh)"
```

てやると、パスワードを求められるのと、Enter押させられるのでそれ入力したら数分待つとインストールが終わる。

### PATHを通す

ただ、インストールしただけでは実行ファイルを直接指定しないと実行してくれないので、PATHを通す必要がある。
(PATHを通す = コマンドを実行するときにshellが実行ファイルを検索する場所として追加するみたいな感じ)

パスが通っていない状態だと以下のようになる。
```bash
$ brew -v 
zsh: command not found: brew
```

実行ファイルを直接指定してやると、ちゃんと動く。
```bash
$ /opt/homebrew/bin/brew -v
Homebrew 3.6.12
Homebrew/homebrew-core (git revision bab068d6452; last commit 2022-11-23)
```

なので、`/opt/homebrew/bin/`にPATHを通してやれば良い。

下記のコマンドを実行するとPATHが通る。
```bash
$ export PATH="/opt/homebrew/bin/:$PATH"
```
```bash
$ brew -v
Homebrew 3.6.12
Homebrew/homebrew-core (git revision bab068d6452; last commit 2022-11-23)
```

ただ、毎度毎度PATHを通すのもめんどくさいので、`~/.zshrc`に追加して、ターミナルを開いたらPATHが通っている状態にしておく。
```bash
$ echo 'export PATH="/opt/homebrew/bin/:$PATH"' >> ~/.zshrc
$ source ~/.zshrc
```

再度別ウィンドウでターミナルを開いてみて、`brew -v`が成功すればok.

## AzureCLIのインストール

```bash
$ brew update && brew install azure-cli
```

```bash
$ az -v
azure-cli                         2.42.0

core                              2.42.0
telemetry                          1.0.8

Dependencies:
msal                              1.20.0
azure-mgmt-resource             21.1.0b1

....
...

Your CLI is up-to-date.
```

よし。

## 認証

公式のページを参考にやってく
<https://learn.microsoft.com/ja-jp/cli/azure/authenticate-azure-cli>

```bash
$ az login
```

実行すると、ブラウザが立ち上がってMicrosoftのサインインページが現れる。

![スクリーンショット 2022-11-23 13.52.01.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2984939/3fecb010-79ee-08a4-b5b0-07d73170cb1f.png)


そこでサインインすると、下記のようなページに遷移する(消して良し)。

![スクリーンショット 2022-11-23 13.52.10.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2984939/8a1f590f-689a-4496-9dfa-53d08be3b0e6.png)


ターミナルに戻ると、こんな感じで出力されてた。

```bash
$ az login
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`.
[
  {
    "cloudName": "AzureCloud",
    "homeTenantId": "*************",
    "id": "*******-****-****-*****-******",
    "isDefault": true,
    "managedByTenants": [],
    "name": "Azure subscription 1",
    "state": "Enabled",
    "tenantId": "*******-****-****-****-********",
    "user": {
      "name": "***********@gmail.com",
      "type": "user"
    }
  }
]
```

繋がってるか確認。
```bash
$ az account list --output table
Name                  CloudName    SubscriptionId                        TenantId                              State    IsDefault
--------------------  -----------  ------------------------------------  ------------------------------------  -------  -----------
Azure subscription 1  AzureCloud   *******-****-****-****-*************  ********-****-****-****-************  Enabled  True
```
うん、繋がってるっぽい。

# まとめ

* brew入れる
* brewからインストールする
* loginする

# 感想

そんなに面倒臭いことはなかったけど、ここからの勉強が骨が折れるなあ