Azure仮想ネットワークをRubyで作る
事前準備
前回の記事(Azureリソースグループの作成)を行います。
matcu.hatenablog.com
仮想ネットワークとは?
クラウド内にユーザー独自のネットワーク環境が作成出来、仮想マシンなどはこのネットワーク内に配置されます。
azure.microsoft.com
仮想ネットワークを作る
では、Azure SDK for Rubyを使って仮想ネットワークを作ってみます。
今回は以下の構成でネットワークを作成します。
- SampleVNet 192.168.0.0/16
- FrontSubnet 192.168.1.0/24
- BackSubnet 192.168.2.0/24
利用環境
- ruby 2.2.5p292
- Bundler version 1.11.2
Rubyスクリプトの作成
前回の記事で作成したプロジェクトに移動します。
cd azure_sample
仮想ネットワークを作成するスクリプトを作成します。
実際に利用する場合には、設定情報などはyamlで外出しすると使いやすくなります。
$:.unshift File.expand_path(File.join(File.dirname(__FILE__))) require 'bundler/setup' require 'azure_mgmt_network' require 'dotenv' # Include SDK modules to ease access to compute classes. include Azure::ARM::Network include Azure::ARM::Network::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 a virtual network. # client = NetworkManagementClient.new(credentials) client.subscription_id = ENV['AZURE_SUBSCRIPTION_ID'] vn_props = VirtualNetworkPropertiesFormat.new # アドレス設定 address_space = AddressSpace.new address_space.address_prefixes = '192.168.0.0/16' vn_props.address_space = address_space # サブネット設定 subnets = [] # FrontSubnet設定 subnet_prop = SubnetPropertiesFormat.new subnet_prop.address_prefix = '192.168.1.0/24' subnet = Subnet.new subnet.name = 'FrontSubnet' subnet.properties = subnet_prop subnets << subnet # BackSubnet設定 subnet_prop = SubnetPropertiesFormat.new subnet_prop.address_prefix = '192.168.2.0/24' subnet = Subnet.new subnet.name = 'BackSubnet' subnet.properties = subnet_prop subnets << subnet vn_props.subnets = subnets # SampleVNet設定 params = VirtualNetwork.new params.location = 'japanwest' params.properties = vn_props promise = client.virtual_networks.create_or_update('sample-group', 'SampleVNet', params) result = promise.value!
スクリプトを実行すると「SampleVNet」という仮想ネットワークと「FrontSubnet/BackSubnet」というサブネットが作成されます!