LoginSignup
9
5

More than 3 years have passed since last update.

Linux上で使えるAzureの便利ツール

Posted at

はじめに

Linux 環境で利用できるAzureのUtility Toolsについて公式・非公式問わず整理します。
加えてマニュアルでセットアップするのは面倒なので、Azure上のLinux VM にCloud-initで全部セットアップしてみます。

Tools For Linux

1. Azure CLI

Cross Platform(Mac, Windows, Linux)で利用できるAzureリソースをシェルベースで操作できるコマンドラインツール。(ポータルやPowerShellでできることをシェルで書けるツール)。Open Sourceでgithub上にリポジトリがありpythonベースで作られています。

Azure/azure-cli :https://github.com/Azure/azure-cli

通常Linuxにインストールする場合は、aptやyumなどのパッケージ管理ソフトでインストールします。
Azure CLI のインストール

Dokcer Imageもあるので、環境を独立させたい場合はこちらを使えます。

microsoft/azure-cli : https://hub.docker.com/r/microsoft/azure-cli

※公式ドキュメントにはなかったがsnapでも使える模様 > Azure CLI Snap

2. Azcopy v10

Azure Storageに対するデータ操作を実行できるGoベースのツール。2019/4にGAされました。

AzCopy v10 を使用してデータを転送する
https://docs.microsoft.com/ja-jp/azure/storage/common/storage-use-azcopy-v10

こちらもOpen Sourceでgithub上にリポジトリが公開されている。
Azure/azure-storage-azcopy : https://github.com/Azure/azure-storage-azcopy

ローカル<=>Azure Storage、
Azure Storage<=>Azure Storage,
AWS S3 =>Azure Storage
でデータ操作ができる。

個人的には、azcopy loginでAzure サブスクリプションへのユーザアカウントでログインして使える点が便利(以前のv8などはストレージアカウントのキーベースで認証する必要があった)。Data Lake Storage Gen2も扱えます。

3. armclient-go

Azureリソースを管理するREST-APIをLinux環境から叩きやすくしてくれるツール。
ツール自体は非公式だが、一応作っている人はMSの中の人

元々、Windows環境でChocolatey経由でインストールできる、ARM-clientがあったので、それのLinux版として作っているという位置づけ。

Azure CLI も実体はREST APIを発行して管理しているだけなので、できることはかぶっている。
ただ、直接RESTにリクエストしたいとき、認証ヘッダとかの処理が面倒だったりするので、さくっと試したいときには便利だと思う。

Azure REST API Reference
https://docs.microsoft.com/en-us/rest/api/azure/

Azure VMに全部インストールしてデプロイする。

環境を作っては削除し作っては削除するタイプの人間なので、手作業でセットアップしたくない。Ubuntu VM上にcloud-initで上のツールをインストールして作成するスクリプトを作成してみた。

まず端末にAzure CLIだけは動作するようにしておき、cloud_init_config.txt の同一階層で以下のコマンドを実行する。
作成されるUbuntu VMの初期ユーザは、コマンドを実行したユーザとなり、sshのキーペアは自動的に生成されて公開鍵が初期ユーザに紐づいている。秘密鍵はローカルの.ssh配下に配置されるなので実行して、VMが作成できたらそのままsshすればOK。

Azure CLI Script

az group create --name DevTools --location japaneast
az vm create --resource-group DevTools --name ubuntu-dev-server --image UbuntuLTS --custom-data cloud_init_config.txt --generate-ssh-keys

Cloud-init-config

package_upgrade: true
packages:
  - tree
runcmd:
  - sudo apt-get install apt-transport-https lsb-release software-properties-common dirmngr -y
  - AZ_REPO=$(lsb_release -cs)
  - echo "deb [arch=amd64] https://packages.microsoft.com/repos/azure-cli/ $AZ_REPO main" | sudo tee /etc/apt/sources.list.d/azure-cli.list
  - sudo apt-key --keyring /etc/apt/trusted.gpg.d/Microsoft.gpg adv --keyserver packages.microsoft.com --recv-keys BC528686B50D79E339D3721CEB3E94ADBE1229CF
  - sudo apt-get update
  - sudo apt-get install azure-cli
  - sudo apt-get install liblttng-ust0 libcurl3 libssl1.0.0 libkrb5-3 zlib1g libicu60 -y
  - sudo wget https://aka.ms/downloadazcopylinux64 -O /opt/azcopy.tar.gz -r
  - sudo tar -xf /opt/azcopy.tar.gz -C /opt/
  - sudo /opt/install.sh
  - sudo wget https://aka.ms/downloadazcopy-v10-linux -O /opt/azcopyv10.tar.gz -r
  - sudo tar -xzf /opt/azcopyv10.tar.gz -C /opt/
  - sudo apt-get install curl -y
  - sudo curl -sL https://github.com/yangl900/armclient-go/releases/download/v0.2.3/armclient-go_macOS_64-bit.tar.gz | sudo tar xz -C /opt/
9
5
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
9
5