Install and configure Azure CLI following these steps.
Using the Azure CLI, run the following commands to create a service principal
# Set mode to ARM azure config mode arm # Enter your Microsoft account credentials when prompted azure login # Set current subscription to create a service principal azure account set <Subscription-id> # Create an AAD application with your information. azure ad app create --name <name> --password <password> --home-page <home-page> --identifier-uris <identifier-uris> # For example: azure ad app create --name "jcloudsarm" --password abcd --home-page "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 azure ad sp create <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 azure role assignment create --objectId <Object-id> -o Contributor -c /subscriptions/<Subscription-id>/
Look up the the tenant Id
azure account show -s <Subscription-id> --json # output will be a JSON which will include the `Tenant id`
Verify service principal
azure 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"