Github user Graeme-Miller commented on a diff in the pull request: https://github.com/apache/brooklyn-docs/pull/140#discussion_r96874259 --- Diff: guide/ops/locations/_azure-classic.md --- @@ -0,0 +1,235 @@ +--- +section: Azure Compute Classic +section_type: inline +section_position: 2.1 +--- + +### Azure Compute Classic + +Azure is a cloud computing platform and infrastructure created by Microsoft. Apache Brooklyn includes support for both Azure Classic and Azure ARM, as +one of the [Apache jclouds](http://jclouds.org) supported clouds `Microsoft Azure Compute`. + +The two modes of using Azure are the "classic deployment" model and the newer "resource manager deployment" (ARM) +model. See https://azure.microsoft.com/en-gb/documentation/articles/resource-manager-deployment-model/ +for details. + + +#### Setup the Azure credentials + +Microsoft Azure requests are signed by SSL certificate. You need to upload one into your account in order to use an Azure +location. + +{% highlight bash %} +# create the certificate request +mkdir -m 700 $HOME/.brooklyn +openssl req -x509 -nodes -days 365 -newkey rsa:1024 -keyout $HOME/.brooklyn/azure.pem -out $HOME/.brooklyn/azure.pem +# create the p12 file, and note your export password. This will be your test credentials. +openssl pkcs12 -export -out $HOME/.brooklyn/azure.p12 -in $HOME/.brooklyn/azure.pem -name "brooklyn :: $USER" +# create a cer file +openssl x509 -inform pem -in $HOME/.brooklyn/azure.pem -outform der -out $HOME/.brooklyn/azure.cer +{% endhighlight %} + +Finally, upload .cer file to the management console at https://manage.windowsazure.com/@myId#Workspaces/AdminTasks/ListManagementCertificates to authorize this certificate. + +Please note, you can find the "myId" value for this link by looking at the URL when logged into the Azure management portal. + +**Note**, you will need to use `.p12` format in the `brooklyn.properties`. + + +#### How to configure Apache Brooklyn to use Azure Compute + +First, in your `brooklyn.properties` define a location as follows: + +{% highlight properties %} +brooklyn.location.jclouds.azurecompute.identity=$HOME/.brooklyn/azure.p12 +brooklyn.location.jclouds.azurecompute.credential=<P12_EXPORT_PASSWORD> +brooklyn.location.jclouds.azurecompute.endpoint=https://management.core.windows.net/<YOUR_SUBSCRIPTION_ID> +brooklyn.location.jclouds.azurecompute.vmNameMaxLength=45 +brooklyn.location.jclouds.azurecompute.jclouds.azurecompute.operation.timeout=120000 +brooklyn.location.jclouds.azurecompute.user=<USER_NAME> +brooklyn.location.jclouds.azurecompute.password=<PASSWORD> +{% endhighlight %} + +During the VM provisioning, Azure will set up the account with `<USER_NAME>` and `<PASSWORD>` automatically. +Notice, `<PASSWORD>` must be a minimum of 8 characters and must contain 3 of the following: a lowercase character, an uppercase +character, a number, a special character. + +To force Apache Brooklyn to use a particular image in Azure, say Ubuntu 14.04.1 64bit, one can add: + + brooklyn.location.jclouds.azurecompute.imageId=b39f27a8b8c64d52b05eac6a62ebad85__Ubuntu-14_04_1-LTS-amd64-server-20150123-en-us-30GB + +From $BROOKLYN_HOME, you can list the image IDs available using the following command: + + ./bin/client "list-images --location azure-west-europe" + +To force Brooklyn to use a particular hardwareSpec in Azure, one can add something like: + + brooklyn.location.jclouds.azurecompute.hardwareId=BASIC_A2 + +From $BROOKLYN_HOME, you can list the hardware profile IDs available using the following command: + + ./bin/client "list-hardware-profiles --location azure-west-europe" + +At the time of writing, the classic deployment model has the possible values shown below. +See https://azure.microsoft.com/en-us/documentation/articles/virtual-machines-size-specs/ +for further details, though that description focuses on the new "resource manager deployment" +rather than "classic". + + * `Basic_A0` to `Basic_A4` + * `Standard_D1` to `Standard_D4` + * `Standard_G1` to `Standard_G5` + * `ExtraSmall`, `Small`, `Medium`, `Large`, `ExtraLarge` + + +##### Named location + +For convenience, you can define a named location, like: + +{% highlight properties %} +brooklyn.location.named.azure-west-europe=jclouds:azurecompute:West Europe +brooklyn.location.named.azure-west-europe.displayName=Azure West Europe +brooklyn.location.named.azure-west-europe.imageId=b39f27a8b8c64d52b05eac6a62ebad85__Ubuntu-14_04_1-LTS-amd64-server-20150123-en-us-30GB +brooklyn.location.named.azure-west-europe.hardwareId=BASIC_A2 +brooklyn.location.named.azure-west-europe.user=test +brooklyn.location.named.azure-west-europe.password=MyPassword1! +{% endhighlight %} + +This will create a location named `azure-west-europe`. It will inherit all the configuration +defined on `brooklyn.location.jclouds.azurecompute`. It will also augment and override this +configuration (e.g. setting the display name, image id and hardware id). + +On Linux VMs, The `user` and `password` will create a user with that name and set its password, +disabling the normal login user and password defined on the `azurecompute` location. + + +#### Windows VMs on Azure + +The following configuration options are important for provisioning Windows VMs in Azure: + +* `osFamily: windows` tells Apache Brooklyn to consider it as a Windows machine + +* `useJcloudsSshInit: false` tells jclouds to not try to connect to the VM + +* `vmNameMaxLength: 15` tells the cloud client to strip the VM to maximum 15 characters. --- End diff -- should say "strip the VM name"
--- If your project is set up for it, you can reply to this email and have your reply appear on GitHub as well. If your project does not have this feature enabled and wishes so, or if the feature is enabled but not working, please contact infrastructure at infrastruct...@apache.org or file a JIRA ticket with INFRA. ---