AzureのCLIコマンドをローカルのCentOS7へインストールする。(ただそれだけ)
yum
を使ってインストールするので簡単。
2020.07.28時点でver 2.9.1をインストールした時の作業ログです。
インストールする際は、最新の情報を確認して作業しましょう。
環境
CentOS 7で確認。
Pythonバージョン(python3
)はこの通り。
(baseのpython3.x86_64を使用)
[zaki@cloud-dev ~]$ python3 --version Python 3.6.8
OS標準のpython
も入っている状態
[zaki@cloud-dev ~]$ python --version Python 2.7.5
インストール
AzureのCLIコマンドはYumのリポジトリ設定を行いyum
でインストールするようになっている。
リポジトリ設定before
[zaki@cloud-dev ~]$ ls -l /etc/yum.repos.d/ 合計 48 -rw-r--r--. 1 root root 1664 9月 5 2019 CentOS-Base.repo -rw-r--r--. 1 root root 1309 9月 5 2019 CentOS-CR.repo -rw-r--r--. 1 root root 649 9月 5 2019 CentOS-Debuginfo.repo -rw-r--r--. 1 root root 630 9月 5 2019 CentOS-Media.repo -rw-r--r--. 1 root root 1331 9月 5 2019 CentOS-Sources.repo -rw-r--r--. 1 root root 6639 9月 5 2019 CentOS-Vault.repo -rw-r--r--. 1 root root 314 9月 5 2019 CentOS-fasttrack.repo -rw-r--r--. 1 root root 2424 10月 19 2019 docker-ce.repo -rw-r--r--. 1 root root 1050 10月 3 2017 epel-testing.repo -rw-r--r--. 1 root root 951 10月 3 2017 epel.repo -rw-r--r--. 1 root root 263 7月 5 13:17 kubernetes.repo
リポジトリキー設定
[zaki@cloud-dev ~]$ sudo rpm --import https://packages.microsoft.com/keys/microsoft.asc
リポジトリ設定
[zaki@cloud-dev ~]$ sudo sh -c 'echo -e "[azure-cli] > name=Azure CLI > baseurl=https://packages.microsoft.com/yumrepos/azure-cli > enabled=1 > gpgcheck=1 > gpgkey=https://packages.microsoft.com/keys/microsoft.asc" > /etc/yum.repos.d/azure-cli.repo'
[zaki@cloud-dev ~]$ ls -l /etc/yum.repos.d/azure-cli.repo -rw-r--r--. 1 root root 163 7月 28 21:27 /etc/yum.repos.d/azure-cli.repo
yum install
[zaki@cloud-dev ~]$ sudo yum install azure-cli
特に問題なくインストールできるはず。
確認
[zaki@cloud-dev ~]$ az version { "azure-cli": "2.9.1", "azure-cli-command-modules-nspkg": "2.0.3", "azure-cli-core": "2.9.1", "azure-cli-nspkg": "3.0.4", "azure-cli-telemetry": "1.0.4", "extensions": {} }
認証設定
az login
を実行すると認証用のキーコードが表示される。
[zaki@cloud-dev ~]$ az login To sign in, use a web browser to open the page https://microsoft.com/devicelogin and enter the code ******** to authenticate.
ので、まずブラウザで表示されているURL(https://microsoft.com/devicelogin)を開く。
そして、az login
の実行で表示されたキーコードを入力すると認証が完了する。
これが表示されると、認証待ち状態で止まっていたaz login
の実行も処理が継続して、設定完了する。
[zaki@cloud-dev ~]$ az login To sign in, use a web browser to open the page https://microsoft.com/devicelogin and enter the code ******** to authenticate. [ { "cloudName": "AzureCloud", "homeTenantId": "****************", "id": "****************", "isDefault": true, "managedByTenants": [], "name": "従量課金", "state": "Enabled", "tenantId": "****************", "user": { "name": "********", "type": "user" } } ]
出力された認証情報は、~/.azure/azureProfile.json
に保存される模様。
お試し
リソースグループ確認
[zaki@cloud-dev ~]$ az group list --query '[].name' [ "vso-rg-e12da7e", "NetworkWatcherRG", "Default-ActivityLogAlerts" ]
同じものが見えてます。
VM作成
ついでなのでVMも作ってみる。
リソースグループを作成
$ az group create --name example-rg --location japaneast
実行するとこの通り。
[zaki@cloud-dev ~]$ az group create --name example-rg --location japaneast { "id": "/subscriptions/****************/resourceGroups/example-rg", "location": "japaneast", "managedBy": null, "name": "example-rg", "properties": { "provisioningState": "Succeeded" }, "tags": null, "type": "Microsoft.Resources/resourceGroups" }
ちなみにコマンドの実行完了とリソースの作成完了はリンクしていないので非同期で処理されているように見える。
VM作成
$ az vm create --resource-group example-rg \ --name sample-vm \ --image UbuntuLTS \ --size Standard_B1s \ --generate-ssh-keys \ --output json \ --verbose
--size
で指定できるインスタンスタイプはaz vm list-sizes
で確認できる。(locationの指定が必要)
[zaki@cloud-dev ~]$ az vm list-sizes --location japaneast
タイプごとのスペックと料金はこちらも参照。
[zaki@cloud-dev ~]$ az vm create --resource-group example-rg \ > --name sample-vm \ > --image UbuntuLTS \ > --size Standard_B1s \ > --generate-ssh-keys \ > --output json \ > --verbose Use existing SSH public key file: /home/zaki/.ssh/id_rsa.pub {- Finished .. "fqdns": "", "id": "/subscriptions/****************/resourceGroups/example-rg/providers/Microsoft.Compute/virtualMachines/sample-vm", "location": "japaneast", "macAddress": "00-**-**-**-**-**", "powerState": "VM running", "privateIpAddress": "10.0.0.4", "publicIpAddress": "**.**.**.**", "resourceGroup": "example-rg", "zones": "" } Command ran in 76.999 seconds (init: 0.027, invoke: 76.971)
time
付け忘れたけど、実行時間が表示される親切設計だった。。。いや、--verbose
付けたからかな?(未確認)
表示されてる通り、パブリックIPアドレスが分かるので、sshする。
[zaki@cloud-dev ~]$ ssh azureuser@**.**.**.** The authenticity of host '**.**.**.** (**.**.**.**)' can't be established. ECDSA key fingerprint is SHA256:3rpvV1bQY0vCOSQPaT7UGOBX0oXqHmhKMJDlCj1ZMRo. ECDSA key fingerprint is MD5:f2:99:e0:69:9c:d5:40:72:f9:56:01:95:d6:a2:8e:30. Are you sure you want to continue connecting (yes/no)? yes Warning: Permanently added '**.**.**.**' (ECDSA) to the list of known hosts. Permission denied (publickey).
あれ?
いろいろ試した結果、az vm create
を実行した実行元ホストのユーザー名でAzure上のVMのユーザー名も作られるっぽい。
なので、ユーザー名は指定なしで
[zaki@cloud-dev ~]$ ssh **.**.**.** Welcome to Ubuntu 18.04.4 LTS (GNU/Linux 5.3.0-1032-azure x86_64) * Documentation: https://help.ubuntu.com * Management: https://landscape.canonical.com * Support: https://ubuntu.com/advantage System information as of Tue Jul 28 13:18:16 UTC 2020 System load: 0.01 Processes: 115 Usage of /: 4.4% of 28.90GB Users logged in: 0 Memory usage: 30% IP address for eth0: 10.0.0.4 Swap usage: 0% 0 packages can be updated. 0 updates are security updates. The programs included with the Ubuntu system are free software; the exact distribution terms for each program are described in the individual files in /usr/share/doc/*/copyright. Ubuntu comes with ABSOLUTELY NO WARRANTY, to the extent permitted by applicable law. To run a command as administrator (user "root"), use "sudo <command>". See "man sudo_root" for details. zaki@sample-vm:~$
なるほど。
zaki@sample-vm:~$ df -h Filesystem Size Used Avail Use% Mounted on udev 427M 0 427M 0% /dev tmpfs 89M 660K 89M 1% /run /dev/sdb1 29G 1.3G 28G 5% / tmpfs 445M 0 445M 0% /dev/shm tmpfs 5.0M 0 5.0M 0% /run/lock tmpfs 445M 0 445M 0% /sys/fs/cgroup /dev/sdb15 105M 3.6M 101M 4% /boot/efi /dev/sda1 3.9G 16M 3.7G 1% /mnt tmpfs 89M 0 89M 0% /run/user/1000 zaki@sample-vm:~$ free -h total used free shared buff/cache available Mem: 889M 211M 409M 672K 268M 537M Swap: 0B 0B 0B
チュートリアルには、VM作成以外にVM情報の取得や環境変数の設定やVMの追加などあるのでチェック。
削除(クリンナップ)
リソースグループを削除することで、ネットワーク等含めて関連リソースが全て削除される。
$ az group delete --name example-rg
--no-wait
を付与すると、非同期で処理される模様。(コマンドはすぐに完了する)
[zaki@cloud-dev ~]$ az group delete --name example-rg Are you sure you want to perform this operation? (y/n): y - Running ..
削除が始まると、状態が「削除中」になる。
完了すればこの通り。
[zaki@cloud-dev ~]$ az group delete --name example-rg Are you sure you want to perform this operation? (y/n): y [zaki@cloud-dev ~]$
またまたtime
つけ忘れたけど、create
に比べてかなり時間かかりました。