AzureリソースグループをRubyで作る
事前準備
前回の記事に書いた事前準備を実施すると、RubyでAzureを触る準備は完璧です。あとはRubyで書くだけでOK。
matcu.hatenablog.com
リソースグループとは?
Azure Resource Managerでは、全てのリソースをグループとして管理します。
そのため、まずはこのリソースグループを作成する必要があります。
azure.microsoft.com
リソースグループを作る
では、Azure SDK for Rubyを使ってリソースグループを作ってみます。
利用環境
- ruby 2.2.5p292
- Bundler version 1.11.2
プロジェクトの準備
まずはプロジェクトを作ります。
gem install bundler -v '1.11.2' mkdir azure_sample cd azure_sample bundle init
作成されたGemfileに必要なgemを追加します。
dotenvは前回記事でゲットした3つの情報を設定するために使います。
source 'https://rubygems.org' gem 'dotenv' gem 'azure_mgmt_resources'
上記で追加したgemをプロジェクトのbundleディレクトリにインストールします。
bundle install --path bundle
.envファイルに認証に必要な情報を書きます。
AZURE_TENANT_ID="00000000-0000-0000-0000-000000000000" AZURE_CLIENT_ID="00000000-0000-0000-0000-000000000000" AZURE_CLIENT_SECRET="00000000000000000000000000000000000000000000" AZURE_SUBSCRIPTION_ID="00000000-0000-0000-0000-000000000000"
最後にリソースグループを作成するスクリプトを作成します。
$:.unshift File.expand_path(File.join(File.dirname(__FILE__))) require 'bundler/setup' require 'azure_mgmt_resources' require 'dotenv' include Azure::ARM::Resources include Azure::ARM::Resources::Models Dotenv.load # Create authentication objects. token_provider = MsRestAzure::ApplicationTokenProvider.new(ENV['AZURE_TENANT_ID'], ENV['AZURE_CLIENT_ID'], ENV['AZURE_CLIENT_SECRET']) credentials = MsRest::TokenCredentials.new(token_provider) # Create resource group. client = ResourceManagementClient.new(credentials) client.subscription_id = ENV['AZURE_SUBSCRIPTION_ID'] resource_group = ResourceGroup.new() resource_group.location = 'centralus' promise = client.resource_groups.create_or_update('sample-group', resource_group) result = promise.value!
スクリプトを実行すると「sample-group」というリソースグループが作成されます!
次の記事では仮想ネットワークの作成を行いたいと思います。
Azure(Resource Manager)をRubyで触るための準備
Azure SDK for Ruby(Resource Manager版)
Azureには従来のクラシックとリソースマネージャーという2つのモデルがあり、現行で開発が進んでいるのがリソースマネージャーになります。
まだまだ開発中であったりすることもあり、SDKはありますが未対応であったりしたため、Windows PowerShellで頑張っていたのですが、先日「Microsoft Azure SDK for Ruby」のARM対応版があることを見つけました。(まだプレビュー版です)
github.com
プレビューとは言いつつ結構な範囲が触れそうでしたので、これは使ってみないとと思い、使ってみましたので、その際の事前準備を紹介します。
使うには?
After creating the service principal, you should have three pieces of information, a client id (GUID), client secret (string) and tenant id (GUID) or domain name (string).
ということなので、サービスプリンシパルを作成し、Client ID/Client Secret/Tenant IDをゲットします。
サービスプリンシパルの作成
このページにやり方が載っていましたので、詳細は省きます。
azure.microsoft.com
Client ID/Client Secret/Tenant IDこの3つの情報をゲットすれば、準備はOKです。
続きは次の記事で。。。