予測不可能な決定系

決定論的なのに予測が不可能……つまり, そういうことだよ

Docker コンテナの Azure CLI で Azure VM を作成する

はじめに

いろいろな方法で Azure VM を作成してみようと思い、ポータル上で作成する分にはブラウザ上でポチポチするだけですぐに作成できるので次に Azure CLI で作成しようと思った

ただし、Azure CLI をそのままローカルにインストールするのではなくせっかくなので Docker コンテナを使うことにした

Azure CLI

Azure CLI コマンドラインで Azure のリソース情報などを取得・作成するためのツール

ローカルにインストールして使用することもできるが公式から Docker コンテナが提供されている

hub.docker.com

Docker がインストールされている環境であれば以下のコマンドで取得可能

docker pull mcr.microsoft.com/azure-cli

アカウントと紐づけ

以下の Docker コマンドでコンテナ内に入る (イメージを未取得なら最初に取得する)

docker run -it mcr.microsoft.com/azure-cli

コンテナに入ったら以下のコマンドで自身のアカウントにログインする

az login

コンテナ内から上記コマンドを実行した場合はデバイスコードフローが開始されるので、規定のブラウザが起動した後にターミナルに表示されているコードを入力してからアカウント情報を入力してログインする

VM の作成

ログイン後は以下のチュートリアルに沿ってコマンドを実行していくだけ

learn.microsoft.com

チュートリアルではブラウザ上でそのまま体験できるようにもなっているが、ローカルで試す場合は表示されているコマンドをコピーしてコンテナ内のターミナル上で実行していくだけ

上記のチュートリアルは概要の説明から必要なリソースや VM の作成、削除まで一通り体験できるようになっている

所感

以上の内容で Azure CLI を使った VM の作成は体験できるが、以降は実際にやってみた所感

最初は以下のようなエイリアスを作成してあたかもローカル上で az コマンドを実行しているようにできないかと考えていた

alias az=docker run -it mcr.microsoft.com/azure-cli az

しかし、その方法だと az login したコンテナと以降の操作をやりたいコンテナが別になるので思ったような操作ができなかった

(VM に関する操作をやりたいコンテナではログイン情報を持っていないためと思われる)

最初に az login したコンテナに名前をつけて以降の操作をそのコンテナを指定して実行するようにすれば あたかもローカルに az コマンドが存在するかのように操作できるかとも思うが、それはそれでスマートなやり方ではないように思う

やはりコンテナを使って Azure CLI を使用する場合は一つコンテナを作成し以降の操作はその中でログインして操作していくのがまっとうなやり方なのかもしれない