Terraform Bootcampに参加しました

Azure Infrastructure as Code 隊 Terraform Bootcampに参加してきました。

(当日の資料はこちら

会場は渋谷のヒカリエの8階にあるAzure Antenna、こんな格好いいフロアの奥の方にあります。スケジュールが提示されているので見てみると、何と、通年でここのスペースを借りているようです。(成果が出るかどうかで続くかどうかが決まるそうなので、是非これからも色々と活用していきたいと思います)
  

4名掛けのテーブルが2つ。こんな感じの場所でMicrosoftの真壁さんのハンズオンという、何とも贅沢な内容でした。

さて、ここから本題。

私自身はTerraformはマルチクラウド対応のInfrastructure as Codeのツールとして、回りで使っている人がいるので、「概要くらいは知っているけど使った事は無い」という感じでした。自分的にもなかなかこういったハンズオンとか無いと触るきっかけがないので、今回のハンズオンは正に渡りに船という感じでしたので、案内を見た瞬間に申込みをさせて頂きました。

ハンズオン受講前はTerraformに対する印象として「便利そうだけど、本当に商用で本格的に使っていって大丈夫なのだろうか…」という漠然とした不安を頂いておりましたが、受講後の感想は…

絶対来る、間違いない。
AzureのIaaSのエンジニアとしては習得必須の技術。

まあ、理由はあの真壁さんが言っているのだから…という一言に尽きるのですが、少しだけ言うなら以下の理由により、今後Azure管理のデファクトになっていくだろうな、と感じました。

  • マルチクラウド環境実現できるOpen Sourceだが、AWSとAzureはかなり動きが活発
  • Cloud Shellを立ち上げるだけで認証が済んだ状態でTerraformが使える
  • HashiCorpの日本法人もできて、Microsoftとも協業を発表している
  • ARMからTerraformリソースプロバイダ経由でAzure外のリソースをいじれるなど連携している

ちなみに、「ファイルの分割規則」「ARMテンプレートとの使い分け」「認証方式は?」とか、色々選択肢がある中でどれを選択すれば良いのかという疑問に関しては、ほとんどがスライド中で述べられていました。

真壁さん自身も、日本語のまとまった情報が殆ど無く、この資料を作成していく中で自分の中でも色々と整理することができたというコメントが有ったのですが、本当にTerraformはまとまったドキュメントが少ないので、当日のスライドはとても有意義な内容でした。

CSPパートナーがユーザーのAzureテナントにPowerShellで接続する

CSPパートナーがテナントを新規作成してAzureサブスクリプションを払い出した場合、CSPはユーザーテナントに対する代理管理者の権限を与えられます。この権限により、CSPはユーザーテナントの全体管理者として各種作業を代行することができます。

パートナーポータルからAzureポータルやOffice 365ポータルにも接続することができますが、PowerShellからも接続ができます。

通常アカウントと同じように、Login-AzureRmAccountでログインした後、Select-AzureRmSubscriptionにTenantIDとSubscriptionIDを指定しただけだと、Your Azure credentials have not been set up or have expired, please run Login-AzureRmAccount to set up your Azure Credentials.とエラーが表示されてしまいます。

よくよく見ると、Select-AzureRmSubscriptionの結果のContextにSubscriptionIDは入っていますが、SubscriptionNameが入っていないですね。正しく接続先の情報が渡せていないことが分かります。ここは、

Get-AzureRmSubscription -TenantId $TenantID -SubscriptionId $SubscriptionID | Set-AzureRmContext

としてあげれば、正しく接続することができるようになります。