Install and configure Azure CLI following these steps.
Using the Azure CLI, run the following commands to create a service principal
# Enter your Microsoft account credentials when prompted az login # Set current subscription to create a service principal az account set --subscription <Subscription-id> # Create an AD application with your information. az ad app create --display-name <name> --password <password> --homepage <home-page> --identifier-uris <identifier-uris> # For example: az ad app create --display-name "jcloudsarm" --password abcd --homepage "https://jcloudsarm" --identifier-uris "https://jcloudsarm" # Output will include a value for `Application Id`, which will be used for the live tests # Create a Service Principal az ad sp create --id <Application-id> # Output will include a value for `Object Id`, to be used in the next step
Run the following commands to assign roles to the service principal
# Assign roles for this service principal az role assignment create --role Contributor --assignee <ObjectId>
Look up the the tenant Id
az account show # output will be a JSON which will include the `Tenant id`
Verify service principal
az login -u <Application-id> -p <password> --service-principal --tenant <Tenant-id>
Use the following to run one live test:
mvn -Dtest=<name of the live test> \ -Dtest.azurecompute-arm.identity="<Application-id>" \ -Dtest.azurecompute-arm.credential="<password>" \ -Dtest.azurecompute-arm.endpoint="https://management.azure.com/subscriptions/<Subscription-id>" \ -Dtest.oauth.endpoint="https://login.microsoftonline.com/<Tenant-id>/oauth2/token" integration-test -Plive
Use the following to run all the live tests:
mvn clean verify -Plive \ -Dtest.azurecompute-arm.identity="<Application-id>"" \ -Dtest.azurecompute-arm.credential="<password>"" \ -Dtest.azurecompute-arm.endpoint="https://management.azure.com/subscriptions/<Subscription-id>"" \ -Dtest.oauth.endpoint=https://login.microsoftonline.com/<Tenant-id>/oauth2/token
Azure Compute ARM provider works exactly as any other jclouds provider. Notice that as Azure supports dozens of locations, operations like listImages can be really time-consuming. To limit the scope of such operations there are some additional properties you may want to use:
jclouds.azurecompute.arm.publishers
which is by default Canonical,RedHat
and
jclouds.regions
which is by default null
. If you want to target only the north europe
region, you can use
jclouds.regions="northeurope"