Amazon Linux2@Cloud9にPowershell+Azモジュールを入れてAzureを操作する話
はじめに
先日のAWSのアップデートで、Cloud9でAmazon Linux2がサポート対象になりました。
私は普段AWS関連の開発はCloud9で、Azure関連の開発はWindows+VSCodeでということが多いのですが、
Amazon Linux2ならPowershellも使えるようになるはずで、じゃあAzureの操作もCloud9からいけるじゃん!ということで導入手順をまとめてみました。
Cloud9のところを無視すれば、普通のLinuxからAzureの操作をする手順ですので、普通の人は後半だけでも読んでもらえれば意味があると思います。
環境作成
Cloud9の環境作成
まずCloud9の環境を作成します。
といっても、環境作成時にOSを指定するだけです。
なお、シングルコアだとあまりにも動作が遅いので(体感)、t3.smallくらい以上にすることをお勧めします。
Powershell+Azモジュール導入
導入するのは2つだけです。
Linux版のPowershellと、PowershellのAzモジュールです。
Powershellのインストール
Powershellの導入はClassmethodさんのブログにとても分かりやすくまとまっていました。
こちらを参考に実行してみます。curl https://packages.microsoft.com/config/rhel/7/prod.repo | sudo tee /etc/yum.repos.d/microsoft.repo
yum -y install powershell
おっと。yum installに失敗しましたね。ということでやり直します。
sudo yum -y install powershell
(中略)
という形で、特に問題なく導入できました。
続けてPowershellを起動して、実行テスト。
何のコマンドでもよいのですが、タイムゾーンを取ってみました。
東京リージョンで立ち上げたEC2で動いてると思いますが、GMTですね。
以上の通り、Powershellのコマンドが実行できました。
Azモジュールの導入
こちらは公式ドキュメントから手順を確認します。
念のためPowershellのバージョンを確認してから、
Install-Module -Name Az
を実行します。
こちらも特に問題なくインストールが進みました。
動作確認
ということで操作してみます。
ログイン
ユーザープリンシパルを使ってログインしてみます。
サインインのやり方はいくつかありますが、ここではユーザープリンシパルを用いた対話的なログインを行います。
ログイン確認は以下の通り。
まずConnect-AzAccountを実行すると、トークン文字列が表示されるので、
別ブラウザを立ち上げて、指定されたURLにアクセス。トークン文字列を叩きこみます。
すると元のコンソール(Powershell)上でログインが完了しています。
操作例
さて、ログインできたところで動作確認です。ログインできているのであとは情報の取得を試してみます。ちなみにこのユーザープリンシパル、いろんなAzureADテナントにゲストユーザーとして招待しており、またいくつかサブスクリプションの情報も取れるのですが、一部Warningが出ていてうまく取得できていません。メイン以外のテナントでMFAが必要になってるからかなぁ…と思いながらも未確認。
ストレージアカウントの情報を取ってみるとこんな感じです。ストアカ名やRG名に人の名前とか入っちゃってたのでマスクマスク。
情報取得もしっかりできています。ログインに使ったアカウントに権限さえあれば、リソース作成や更新操作も問題なく可能ですね。
おわりに
Cloud9からAzureを操作することができました。これで開発が捗るというほどではないですが、端末ごとのバージョン差異など開発時の困りごとを減らせそうです。
Discussion