我水也

われみずなり

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」というリソースグループが作成されます!

次の記事では仮想ネットワークの作成を行いたいと思います。