Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #!/usr/bin/ruby
- require 'azure_mgmt_compute'
- require 'azure_mgmt_storage'
- require 'azure_mgmt_network'
- require 'azure_mgmt_resources'
- include Azure::ARM::Compute
- include Azure::ARM::Compute::Models
- include Azure::ARM::Storage
- include Azure::ARM::Storage::Models
- include Azure::ARM::Network
- include Azure::ARM::Network::Models
- include Azure::ARM::Resources
- include Azure::ARM::Resources::Models
- tenant_id = "my_tenant_id"
- client_id = "my_client_id"
- secret = "path_to_my_secret"
- subscription_id = "my_subscription_id"
- token_provider = MsRestAzure::ApplicationTokenProvider.new(tenant_id, client_id, secret)
- credentials = MsRest::TokenCredentials.new(token_provider)
- ########################### Resource Group creation #########################################
- client = Azure::ARM::Resources::ResourceManagementClient.new(credentials)
- client.subscription_id = subscription_id
- # Create a model for resource group.
- resource_group = Azure::ARM::Resources::Models::ResourceGroup.new()
- resource_group.location = 'westus'
- promise = client.resource_groups.create_or_update('ali-test-rgrp-01', resource_group)
- result = promise.value!
- resource_group = result.body
- p "Resource Group name is: - #{resource_group.name}" # 'new_test_resource_group'
- p "Resource Group ID is:- #{resource_group.id}" # the id of resource group
- #############################################################################################
- ########################### Virtual Machine creation #########################################
- client = ComputeManagementClient.new(credentials)
- client.subscription_id = subscription_id
- # Create a model for new virtual machine
- props = VirtualMachineProperties.new
- windows_config = WindowsConfiguration.new
- windows_config.provision_vmagent = true
- windows_config.enable_automatic_updates = true
- os_profile = OSProfile.new
- os_profile.computer_name = 'ali-test-vm-01'
- os_profile.admin_username = 'azure'
- os_profile.admin_password = 'azure@123'
- os_profile.windows_configuration = windows_config
- os_profile.secrets = []
- props.os_profile = os_profile
- hardware_profile = HardwareProfile.new
- hardware_profile.vm_size = 'Standard_A0'
- props.hardware_profile = hardware_profile
- # create_storage_profile it is hypotetical helper method which creates storage
- # profile by means of ARM Storage SDK.
- props.storage_profile = create_storage_profile
- # create_storage_profile it is hypotetical helper method which creates network
- # profile my means of ARM Network SDK.
- props.network_profile = create_network_profile
- params = VirtualMachine.new
- params.type = 'Microsoft.Compute/virtualMachines'
- params.properties = props
- params.location = 'westus'
- promise = client.virtual_machines.create_or_update('ali-test-rgrp-01', 'ali-test-vm-01', params)
- result = promise.value!
- vm = result.body
- p "VM name is: - #{vm.name}" # name of the new vm
- p "VM ID is:- #{vm.id}" # id of the new vm
- #############################################################################################
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement