Skip to content

Instantly share code, notes, and snippets.

@Gorgoras
Created August 19, 2019 16:08
Show Gist options
  • Save Gorgoras/5aa181157f6f8bb13ffde62259443495 to your computer and use it in GitHub Desktop.
Save Gorgoras/5aa181157f6f8bb13ffde62259443495 to your computer and use it in GitHub Desktop.
from azure.mgmt.resource import ResourceManagementClient
from azure.mgmt.datafactory import DataFactoryManagementClient as adf
from azure.mgmt.keyvault import KeyVaultManagementClient as keyvault
from azure.mgmt.storage import StorageManagementClient as blobacc
from azure.mgmt.datafactory.models import Factory as adf_model
from azure.mgmt.storage.models import StorageAccountCreateParameters as blob_model
from azure.mgmt.storage.models import (Sku, SkuName, Kind)
from azure.mgmt.sql import SqlManagementClient
import azure.mgmt.subscription as subs
import azure.common.credentials as cred
#Needed parameters
user = ""
pasw = ""
subsID = ""
tenantID = ""
objectID = ""
RGName = ""
location = ""
adf_name = ""
storageName = ''
sql_svname = ''
sql_dbname = ''
dbuser = ''
dbpass = ''
keyvault_name = ''
#Create general credentials
credentials = cred.UserPassCredentials(user, pasw, verify=True)
#Create resource group
#Login
credentials = cred.UserPassCredentials(user, pasw, verify=True)
resource_client = ResourceManagementClient(credentials, subsID)
#Create
resource_client.resource_groups.create_or_update(resource_group_name=RGName, parameters={'location': location})
#Create an Azure Sql Server
#login
sql_client = SqlManagementClient(credentials=credentials, subscription_id=subsID)
resource_client = ResourceManagementClient(credentials, subsID)
#Create sql server
server = sql_client.servers.create_or_update(
RGName,
sql_svname,
{
'location': location,
'version': '12.0', # Required for create
'administrator_login': dbuser, # Required for create
'administrator_login_password': dbpass # Required for create
}
)
async_db_create = sql_client.databases.create_or_update(
RGName,
sql_svname,
sql_dbname,
{
'location': location
}
)
# Wait for completion and return created object
database = async_db_create.result()
#Create a storage account
#login
storage_client = blobacc(credentials,subsID)
#Create
#Check name availavility
availability = storage_client.storage_accounts.check_name_availability(storageName)
if availability.name_available:
print("Name available!")
#Create storage
storage_async_operation = storage_client.storage_accounts.create(RGName, storageName, blob_model(sku=Sku(name=SkuName.standard_ragrs),
kind=Kind.storage,
location=location))
else:
print("Name not available!")
#Create Data Factory
#Login
adf_client = adf(credentials, subsID)
#Create
model = adf_model(location=location)
adf_client.factories.create_or_update(resource_group_name=RGName, factory_name=adf_name, factory=model)
#Create a key vault
#Login
keyvault_client = keyvault(credentials, subsID)
#Create
keyvault_params = {
'location': 'eastus',
'properties': {
'sku': {
'name': 'standard'
},
'tenant_id': tenantID,
'access_policies': [{
'object_id': objectID,
'tenant_id': tenantID,
'permissions': {
'keys': ['all'],
'secrets': ['all']
}
}]
}
}
keyvault_client.vaults.create_or_update(resource_group_name=RGName, vault_name="VaultPython", parameters= keyvault_params)
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment