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
の作成などなどやっていきますぞ