ライトウェルブログ

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

の作成などなどやっていきますぞ

トップページに戻る