前回 Azureことはじめ - DRYな備忘録 をやったので、今回はCLIをやります。
とりあえずbrewでやるか
% brew update % brew search azure-cli % brew install azure-cli % which az /usr/local/bin/az % az --version pyenv: python3.6: command not found The `python3.6' command exists in these Python versions: 3.6.1
うーん、Python。とりあえずローカルで動くようにしてみるか。
% pyenv install 3.6.0 % cd /tmp % pyenv local 3.6.0 % az --version azure-cli (2.0.22) # 以下略
とりあえずローカルでaz
コマンドがうごくようになった。
というのがだるいので
docker使お?ね?
% docker run -it --rm azuresdk/azure-cli-python Unable to find image 'azuresdk/azure-cli-python:latest' locally latest: Pulling from azuresdk/azure-cli-python # 中略 Status: Downloaded newer image for azuresdk/azure-cli-python:latest bash-4.3# bash-4.3# az --version azure-cli (2.0.23) # 以下略 bash-4.3# exit % docker
これで十分である。
ということで、brew uninstall azure-cli
してめでたしめでたし。
ログインをする必要がある
% docker run -it azuresdk/azure-cli-python bash-4.3# bash-4.3# az login To sign in, use a web browser to open the page https://aka.ms/devicelogin and enter the code XXXXXXX to authenticate.
ほう。gcloud init
とかでは、callback付きのURLを開かせて、ブラウザで表示されたワンタイムトークンをCLIに食わせるタイプだったけど、az login
だと、CLIが表示するワンタイムトークンをブラウザに食わせて認証を完了させるタイプなのか。
で、ブラウザで https://aka.ms/devicelogin
に行き、 XXXXXXX
を食わせると、認証が完了し、
bash-4.3# az account list
で、確認できる。
Computeインスタンスをつくるまでのみちのり
まず、location idのリストがインターネッツに一切無いという...
bash-4.3# az account list-locations | grep -B1 -A6 Japan { "displayName": "Japan West", "id": "/subscriptions/caa7f0e9-5fbf-4ba0-971d-4e038b0deaff/locations/japanwest", "latitude": "34.6939", "longitude": "135.5022", "name": "japanwest", "subscriptionId": null }, { "displayName": "Japan East", "id": "/subscriptions/caa7f0e9-5fbf-4ba0-971d-4e038b0deaff/locations/japaneast", "latitude": "35.68", "longitude": "139.77", "name": "japaneast", "subscriptionId": null },
japaneast
やね。
Resource Groupをつくる
bash-4.3# az group create -n myRG -l japaneast bash-4.3# az group list
できてることが確認できる。
Computeインスタンスつくる。
まずssh keyつくって
bash-4.3# mkdir -p ~/.ssh/azure bash-4.3# ssh-keygen -f ~/.ssh/azure/id_rsa bash-4.3# chmod 600 ~/.ssh/azure/id_rsa.pub
いざ
bash-4.3# az vm create -n TestTestHoge \ -g myRG \ --size Standard_A0 \ --image debian \ --admin-username otiai10 \ --ssh-key-value ~/.ssh/azure/id_rsa.pub
レスポンス↓
{ "fqdns": "", "id": "/subscriptions/xxxxxx/resourceGroups/myRG/providers/Microsoft.Compute/virtualMachines/TestTestHoge", "location": "japaneast", "macAddress": "00-0D-3A-50-66-07", "powerState": "VM running", "privateIpAddress": "10.0.0.4", "publicIpAddress": "52.243.44.159", "resourceGroup": "myRG", "zones": "" }
確認
bash-4.3# az vm list
sshしてみる
bash-4.3# ssh -i ~/.ssh/azure/id_rsa otiai10@52.243.44.159 otiai10@TestTestHoge:~$ otiai10@TestTestHoge:~$ uname -a Linux TestTestHoge 3.16.0-4-amd64 #1 SMP Debian 3.16.43-2+deb8u5 (2017-09-19) x86_64 GNU/Linux otiai10@TestTestHoge:~$ otiai10@TestTestHoge:~$ exit bash-4.3# uname -a Linux 58218864392b 4.9.49-moby #1 SMP Fri Dec 8 13:40:02 UTC 2017 x86_64 Linux bash-4.3#
いい感じ。
あとかたづけ
まずリソース一覧を取得したい
bash-4.3# az resource list -g myRG -l japaneast
つぎに、消せるものから消していく。
まずはVM
bash-4.3# az resource list -g myRG -l japaneast --resource-type=Microsoft.compute/virtualmachines [ {略} ] bash-4.3# az vm delete -g myRG -n TestTestHoge bash-4.3# az resource list -g myRG -l japaneast --resource-type=Microsoft.compute/virtualmachines []
done。
Public IP Address消す。
bash-4.3# az resource list -g myRG -l japaneast --resource-type=Microsoft.Network/publicIPAddresses bash-4.3# az network public-ip list -g myRG [ {略} ] bash-4.3# az network public-ip delete -n TestTestHogePublicIP -g myRG # ネットワークインターフェースを先に削除しろというエラー bash-4.3# az network nic list -g myRG [ {略} ] bash-4.3# az network nic delete -n TestTestHogeVMNic -g myRG bash-4.3# az network nic list -g myRG [] bash-4.3# az network public-ip delete -n TestTestHogePublicIP -g myRG bash-4.3# az network public-ip list -g myRG []
done。
Disk消すか。
bash-4.3# az disk list -g myRG [ {略} ] bash-4.3# az disk delete -n TestTestHoge_OsDisk_1_86297f169b6045618fb6c40fe2172657 -g myRG bash-4.3# az disk list -g myRG []
done。
SecurityGroup消す。
bash-4.3# az resource list -g myRG --resource-type=Microsoft.Network/networkSecurityGroups [ {略} ] bash-4.3# az resource delete -n TestTestHogeNSG -g myRG --resource-type=Microsoft.Network/networkSecurityGroups bash-4.3# az resource list -g myRG --resource-type=Microsoft.Network/networkSecurityGroups []
ラスト、VN消す。
bash-4.3# az resource list -g myRG [ {略} ] bash-4.3# az resource delete -n TestTestHogeVNET -g myRG --resource-type=Microsoft.Network/virtualNetworks bash-4.3# az resource list -g myRG []
これで綺麗になった。
雑感
- azure cli、べんり。というか親切。--helpが充実している。
- 5000兆円とか言わないので、200万円ぐらいほしい。
DRYな備忘録として