parent
27cd6ce4d8
commit
e7f855c76d
@ -1,177 +0,0 @@ |
||||
from azure.common.credentials import ServicePrincipalCredentials |
||||
from azure.mgmt.resource import ResourceManagementClient |
||||
from azure.mgmt.compute import ComputeManagementClient |
||||
from azure.mgmt.network import NetworkManagementClient |
||||
from azure.mgmt.compute.models import DiskCreateOption |
||||
|
||||
SUBSCRIPTION_ID = '8f969b5c-f8cb-4483-8252-354a929962e0' |
||||
GROUP_NAME = 'myResourceGroup' |
||||
LOCATION = 'westus' |
||||
VM_NAME = 'myomyVM' |
||||
|
||||
def get_credentials(): |
||||
credentials = ServicePrincipalCredentials( |
||||
client_id = '3b75dccc-f500-4195-99df-8da994541d03', |
||||
secret = 'Nj44R21IECrg8Vp/+3MBsXcmQrHcl0SEIpLjPIeOYc4=', |
||||
tenant = '6d22d644-2eec-4dac-9715-7147563a9fe5' |
||||
) |
||||
return credentials |
||||
|
||||
def create_resource_group(resource_group_client): |
||||
resource_group_params = { 'location':LOCATION } |
||||
resource_group_result = resource_group_client.resource_groups.create_or_update( |
||||
GROUP_NAME, |
||||
resource_group_params |
||||
) |
||||
|
||||
def create_availability_set(compute_client): |
||||
avset_params = { |
||||
'location': LOCATION, |
||||
'sku': { 'name': 'Aligned' }, |
||||
'platform_fault_domain_count': 3 |
||||
} |
||||
availability_set_result = compute_client.availability_sets.create_or_update( |
||||
GROUP_NAME, |
||||
'myAVSet', |
||||
avset_params |
||||
) |
||||
|
||||
def create_public_ip_address(network_client): |
||||
public_ip_addess_params = { |
||||
'location': LOCATION, |
||||
'public_ip_allocation_method': 'Dynamic' |
||||
} |
||||
creation_result = network_client.public_ip_addresses.create_or_update( |
||||
GROUP_NAME, |
||||
'myIPAddress', |
||||
public_ip_addess_params |
||||
) |
||||
return creation_result.result() |
||||
|
||||
def create_vnet(network_client): |
||||
vnet_params = { |
||||
'location': LOCATION, |
||||
'address_space': { |
||||
'address_prefixes': ['10.0.0.0/16'] |
||||
} |
||||
} |
||||
creation_result = network_client.virtual_networks.create_or_update( |
||||
GROUP_NAME, |
||||
'myVNet', |
||||
vnet_params |
||||
) |
||||
return creation_result.result() |
||||
|
||||
def create_subnet(network_client): |
||||
subnet_params = { |
||||
'address_prefix': '10.0.0.0/24' |
||||
} |
||||
creation_result = network_client.subnets.create_or_update( |
||||
GROUP_NAME, |
||||
'myVNet', |
||||
'mySubnet', |
||||
subnet_params |
||||
) |
||||
return creation_result.result() |
||||
|
||||
def create_nic(network_client): |
||||
subnet_info = network_client.subnets.get( |
||||
GROUP_NAME, |
||||
'myVNet', |
||||
'mySubnet' |
||||
) |
||||
publicIPAddress = network_client.public_ip_addresses.get( |
||||
GROUP_NAME, |
||||
'myIPAddress' |
||||
) |
||||
nic_params = { |
||||
'location': LOCATION, |
||||
'ip_configurations': [{ |
||||
'name': 'myIPConfig', |
||||
'public_ip_address': publicIPAddress, |
||||
'subnet': { |
||||
'id': subnet_info.id |
||||
} |
||||
}] |
||||
} |
||||
creation_result = network_client.network_interfaces.create_or_update( |
||||
GROUP_NAME, |
||||
'myNic', |
||||
nic_params |
||||
) |
||||
|
||||
return creation_result.result() |
||||
|
||||
def create_vm(network_client, compute_client): |
||||
nic = network_client.network_interfaces.get( |
||||
GROUP_NAME, |
||||
'myNic' |
||||
) |
||||
avset = compute_client.availability_sets.get( |
||||
GROUP_NAME, |
||||
'myAVSet' |
||||
) |
||||
vm_parameters = { |
||||
'location': LOCATION, |
||||
'os_profile': { |
||||
'computer_name': VM_NAME, |
||||
'admin_username': 'azureuser', |
||||
'admin_password': 'Azure12345678' |
||||
}, |
||||
'hardware_profile': { |
||||
'vm_size': 'Standard_DS1' |
||||
}, |
||||
'storage_profile': { |
||||
'image_reference': { |
||||
'publisher': 'MicrosoftWindowsServer', |
||||
'offer': 'WindowsServer', |
||||
'sku': '2012-R2-Datacenter', |
||||
'version': 'latest' |
||||
} |
||||
}, |
||||
'network_profile': { |
||||
'network_interfaces': [{ |
||||
'id': nic.id |
||||
}] |
||||
}, |
||||
'availability_set': { |
||||
'id': avset.id |
||||
} |
||||
} |
||||
creation_result = compute_client.virtual_machines.create_or_update( |
||||
GROUP_NAME, |
||||
VM_NAME, |
||||
vm_parameters |
||||
) |
||||
return creation_result.result() |
||||
|
||||
if __name__ == '__main__': |
||||
credentials = get_credentials() |
||||
resource_group_client = ResourceManagementClient( |
||||
credentials, |
||||
SUBSCRIPTION_ID |
||||
) |
||||
network_client = NetworkManagementClient( |
||||
credentials, |
||||
SUBSCRIPTION_ID |
||||
) |
||||
compute_client = ComputeManagementClient( |
||||
credentials, |
||||
SUBSCRIPTION_ID |
||||
) |
||||
create_resource_group(resource_group_client) |
||||
print('Resource group created....') |
||||
create_availability_set(compute_client) |
||||
print('Availability set created') |
||||
creation_result = create_public_ip_address(network_client) |
||||
print('Public IP created') |
||||
creation_result = create_vnet(network_client) |
||||
print('Virtual Net Created') |
||||
creation_result = create_subnet(network_client) |
||||
print('Subnet created') |
||||
creation_result = create_nic(network_client) |
||||
print('NIC Created') |
||||
creation_result = create_vm(network_client, compute_client) |
||||
print("------------------------------------------------------") |
||||
print("VM Created") |
||||
print(creation_result) |
Loading…
Reference in new issue