Created
August 19, 2019 16:08
-
-
Save Gorgoras/5aa181157f6f8bb13ffde62259443495 to your computer and use it in GitHub Desktop.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
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