2020/07/06Azureの操作を自動化する
こんにちわ。私です。
備忘録として、AnsibleからAzureのリソースマネージャ操作を
自動化する設定内容を残します。
まず、AnsibleからAzureを操作するのに必要な要素として
・サブスクリプションID
・テナントID
・アプリケーションID
・アプリケーションパスワード
が必要みたい。
そのIDを調査してきます。
azure_cliと呼ばれるAzureの管理CLIを使ってID情報を取得できるみたい。
こちらのマイクロソフト公式サイトからazure_cliをダウンロードします。
msiファイルがダウンロードされるので、デフォルト設定のままインストール。
その後コマンドプロンプトでaz loginコマンドを実施。
自動的にブラウザが立ち上がりますので、AzureのIDを入力しまする。
C:\WINDOWS\system32>az login

ログインが成功するとaz loginコマンドの出力に以下の様な出力が返って来て、IDを取得できます
C:\WINDOWS\system32>az login
[
{
"cloudName": "AzureCloud",
"homeTenantId": "xxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx",
"id": "zzzzzzz-zzzz-zzzz-zzzz-zzzzzzzzzzzz",
"isDefault": true,
"managedByTenants": [],
"name": "無料試用版",
"state": "Enabled",
"tenantId": "xxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx",
"user": {
"name": "ninjaninja@hogehogeninja.com",
"type": "user"
}
}
]
これで、
・テナントID: xxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx
・サブスクリプションID: zzzzzzz-zzzz-zzzz-zzzz-zzzzzzzzzzzz
が手に入りました。
残りのアプリケーションIDとアプリケーションパスワードは以下のコマンドで入手
C:\WINDOWS\system32>az ad sp create-for-rbac --query [appId,password] [ "yyyyyyy-yyyy-yyyy-yyyy-yyyyyyyyyyyy", "wwwwwww-wwww-wwww-wwww-wwwwwwwwwwww" ]
これで、
・アプリケーションID: yyyyyyy-yyyy-yyyy-yyyy-yyyyyyyyyyyy
・アプリケーションパスワード: wwwwwww-wwww-wwww-wwww-wwwwwwwwwwww
が手に入りました。
Azure関連モジュールの公式ドキュメントを見る限りだと、このIDは
・Ansibleサーバの~/.azure/credentialsに格納
・Ansibleのenvとして定義
のいずれかを実施する必要がありそう。
今回はAnsibleのenvironmentとして定義してあげます。
動作確認として、リソースグループの情報を収集するPlaybookを書いてみまする。
Playbookに先程取得した、ID情報をenvironmentとして書き込みまする。
---
- name: これからAzureをつくるぜい
hosts: localhost
environment:
AZURE_SUBSCRIPTION_ID: "zzzzzzz-zzzz-zzzz-zzzz-zzzzzzzzzzzz"
AZURE_CLIENT_ID: "yyyyyyy-yyyy-yyyy-yyyy-yyyyyyyyyyyy"
AZURE_SECRET: "wwwwwww-wwww-wwww-wwww-wwwwwwwwwwww"
AZURE_TENANT: "xxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx"
connection: local
tasks:
- name: リソースグループを確認するぜい
azure_rm_resourcegroup_info:
このPlaybookをAnsibleTowerから実行してみまする

とりあえず動いた。が、リソースグループもなにもないので全部Nullで返ってきた
次回から本格的にAzureの
・リソースグループ
・VirtualNetwork
・VirtualMachine
の作成などなどやっていきますぞ






