You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@brooklyn.apache.org by drigodwin <gi...@git.apache.org> on 2017/01/19 14:31:59 UTC

[GitHub] brooklyn-docs pull request #140: Add Azure Classic and ARM docs

GitHub user drigodwin opened a pull request:

    https://github.com/apache/brooklyn-docs/pull/140

    Add Azure Classic and ARM docs

    Adds Azure Classic and Azure ARM usage details to the documented locations.

You can merge this pull request into a Git repository by running:

    $ git pull https://github.com/drigodwin/brooklyn-docs azure-updates

Alternatively you can review and apply these changes as the patch at:

    https://github.com/apache/brooklyn-docs/pull/140.patch

To close this pull request, make a commit to your master/trunk branch
with (at least) the following in the commit message:

    This closes #140
    
----
commit c60e337f280c58ff68fede032785b9da3cae024b
Author: Duncan Godwin <du...@cloudsoftcorp.com>
Date:   2017-01-19T14:30:36Z

    Add Azure Classic and ARM docs

----


---
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 infrastructure@apache.org or file a JIRA ticket
with INFRA.
---

[GitHub] brooklyn-docs pull request #140: Add Azure Classic and ARM docs

Posted by Graeme-Miller <gi...@git.apache.org>.
Github user Graeme-Miller commented on a diff in the pull request:

    https://github.com/apache/brooklyn-docs/pull/140#discussion_r96874537
  
    --- 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. 
    +  This is the maximum size supported by Azure Windows VMs.
    +
    +* `winrm.useHttps` tells Apache Brooklyn to configure the WinRM client to use HTTPS.
    +  
    +  This is currently not supported in the default configuration for other clouds, where
    +  Apache Brooklyn is deploying Windows VMs.
    +
    +  If the parameter value is `false` the default WinRM port is 5985; if `true` the default port 
    +  for WinRM will be 5986. Use of default ports is stongly recommended.
    +
    +* `winrm.useNtlm` tells Apache Brooklyn to configure the WinRM client to use NTLM protocol.
    +
    +  For Azure, this is mandatory.
    +  
    +  For other clouds, this value is used in the cloud init script to configure WinRM on the VM.   
    +  If the value is `true` then Basic Authentication will be disabled and the WinRM client will only use Negotiate plus NTLM.  
    +  If the value is `false` then Basic Authentication will be enabled and the WinRM client will use Basic Authentication.
    +
    +  NTLM is the default Authentication Protocol.
    +
    +  The format of this configuration option is subject to change: WinRM supports several 
    +  authentication mechanisms, so this may be changed to a prioritised list so as to
    +  provide fallback options.
    +
    +* `user` tells Apache Brooklyn the user to login as (in this case using WinRM).  
    --- End diff --
    
    "in this case" not sure I understand what the case is here?


---
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 infrastructure@apache.org or file a JIRA ticket
with INFRA.
---

[GitHub] brooklyn-docs pull request #140: Add Azure Classic and ARM docs

Posted by Graeme-Miller <gi...@git.apache.org>.
Github user Graeme-Miller commented on a diff in the pull request:

    https://github.com/apache/brooklyn-docs/pull/140#discussion_r96874644
  
    --- 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. 
    +  This is the maximum size supported by Azure Windows VMs.
    +
    +* `winrm.useHttps` tells Apache Brooklyn to configure the WinRM client to use HTTPS.
    +  
    +  This is currently not supported in the default configuration for other clouds, where
    +  Apache Brooklyn is deploying Windows VMs.
    +
    +  If the parameter value is `false` the default WinRM port is 5985; if `true` the default port 
    +  for WinRM will be 5986. Use of default ports is stongly recommended.
    +
    +* `winrm.useNtlm` tells Apache Brooklyn to configure the WinRM client to use NTLM protocol.
    +
    +  For Azure, this is mandatory.
    +  
    +  For other clouds, this value is used in the cloud init script to configure WinRM on the VM.   
    +  If the value is `true` then Basic Authentication will be disabled and the WinRM client will only use Negotiate plus NTLM.  
    +  If the value is `false` then Basic Authentication will be enabled and the WinRM client will use Basic Authentication.
    +
    +  NTLM is the default Authentication Protocol.
    +
    +  The format of this configuration option is subject to change: WinRM supports several 
    +  authentication mechanisms, so this may be changed to a prioritised list so as to
    +  provide fallback options.
    +
    +* `user` tells Apache Brooklyn the user to login as (in this case using WinRM).  
    +  For Windows on Azure, the value should match that supplied in the `overrideLoginUser` of 
    +  the `templateOptions`.
    +
    +* `password`: tells Apache Brooklyn the password to use when connecting (in this case using WinRM).  
    --- End diff --
    
    same as above comment, don't understand the sue of case


---
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 infrastructure@apache.org or file a JIRA ticket
with INFRA.
---

[GitHub] brooklyn-docs pull request #140: Add Azure Classic and ARM docs

Posted by Graeme-Miller <gi...@git.apache.org>.
Github user Graeme-Miller commented on a diff in the pull request:

    https://github.com/apache/brooklyn-docs/pull/140#discussion_r96876124
  
    --- Diff: guide/ops/locations/_azure-ARM.md ---
    @@ -0,0 +1,92 @@
    +---
    +section: Azure Compute ARM
    +section_type: inline
    +section_position: 2.1.1
    +---
    +
    +### Azure Compute ARM
    +
    +Azure Resource Manager (ARM) is a framework for deploying and managing applications across resources and managing groups of resources as single logical units on the Microsoft Azure cloud computing platform.
    +
    +#### Setup the Azure credentials
    +
    +Firstly, install and configure Azure CLI following [these steps](http://azure.microsoft.com/en-us/documentation/articles/xplat-cli/).
    +
    +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 "myappname"  --password abcd --home-page "https://myappwebsite" --identifier-uris "https://myappwebsite"
    +    
    +    # 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>
    +
    +#### Using the Azure ARM Location
    +
    +Below is an example Azure ARM location in YAML which will launch a Ubuntu instance in south east asia:
    +
    +    brooklyn.catalog:
    +      id: my-azure-arm-location
    +      name: "My Azure ARM location"
    +      itemType: location
    +      item:
    +        type: jclouds:azurecompute-arm
    +        brooklyn.config:
    +          identity: <Application-id>
    +          credential: <Password>
    +          endpoint: https://management.azure.com/subscriptions/<Subscription-id>
    +          oauth.endpoint: https://login.microsoftonline.com/<Tenant-id>/oauth2/token
    +      
    +          jclouds.azurecompute.arm.publishers: OpenLogic
    +          region: southeastasia
    +          loginUser: brooklyn
    +          templateOptions:
    +            overrideAuthenticateSudo: true 
    +
    +Fill the values `<Application-id>`, `<Password>`, `<Subscription-id>` and `<Tenant-id>` in from the values generated when 
    +setting up your credentials. In addition; several keys, not required in other locations need to be specified in order to 
    +use the Azure Compute ARM location. These are:
    +
    +    jclouds.azurecompute.arm.publishers: OpenLogic
    +
    +The publishers is any item from the list available here: [https://docs.microsoft.com/en-us/azure/virtual-machines/virtual-machines-linux-cli-ps-findimage](https://docs.microsoft.com/en-us/azure/virtual-machines/virtual-machines-linux-cli-ps-findimage)
    +    
    +    region: southeastasia    
    +
    +The region is any region from the list available here: [https://azure.microsoft.com/en-us/regions/](https://azure.microsoft.com/en-us/regions/)
    +
    +    loginUser: brooklyn
    +    templateOptions:
    +        overrideAuthenticateSudo: true
    +        
    +The loginUser can be anything, as long as it's specified.
    --- End diff --
    
    should mention what overrideAuthenticateSudo does


---
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 infrastructure@apache.org or file a JIRA ticket
with INFRA.
---

[GitHub] brooklyn-docs pull request #140: Add Azure Classic and ARM docs

Posted by asfgit <gi...@git.apache.org>.
Github user asfgit closed the pull request at:

    https://github.com/apache/brooklyn-docs/pull/140


---
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 infrastructure@apache.org or file a JIRA ticket
with INFRA.
---

[GitHub] brooklyn-docs pull request #140: Add Azure Classic and ARM docs

Posted by drigodwin <gi...@git.apache.org>.
Github user drigodwin commented on a diff in the pull request:

    https://github.com/apache/brooklyn-docs/pull/140#discussion_r96877239
  
    --- Diff: guide/ops/locations/_azure-ARM.md ---
    @@ -0,0 +1,92 @@
    +---
    +section: Azure Compute ARM
    +section_type: inline
    +section_position: 2.1.1
    +---
    +
    +### Azure Compute ARM
    +
    +Azure Resource Manager (ARM) is a framework for deploying and managing applications across resources and managing groups of resources as single logical units on the Microsoft Azure cloud computing platform.
    +
    +#### Setup the Azure credentials
    +
    +Firstly, install and configure Azure CLI following [these steps](http://azure.microsoft.com/en-us/documentation/articles/xplat-cli/).
    +
    +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 "myappname"  --password abcd --home-page "https://myappwebsite" --identifier-uris "https://myappwebsite"
    +    
    +    # 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>
    +
    +#### Using the Azure ARM Location
    +
    +Below is an example Azure ARM location in YAML which will launch a Ubuntu instance in south east asia:
    +
    +    brooklyn.catalog:
    +      id: my-azure-arm-location
    +      name: "My Azure ARM location"
    +      itemType: location
    +      item:
    +        type: jclouds:azurecompute-arm
    +        brooklyn.config:
    +          identity: <Application-id>
    +          credential: <Password>
    +          endpoint: https://management.azure.com/subscriptions/<Subscription-id>
    +          oauth.endpoint: https://login.microsoftonline.com/<Tenant-id>/oauth2/token
    +      
    +          jclouds.azurecompute.arm.publishers: OpenLogic
    +          region: southeastasia
    +          loginUser: brooklyn
    +          templateOptions:
    +            overrideAuthenticateSudo: true 
    +
    +Fill the values `<Application-id>`, `<Password>`, `<Subscription-id>` and `<Tenant-id>` in from the values generated when 
    --- End diff --
    
    I think that's a scroll bar, what browser/OS are you using?


---
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 infrastructure@apache.org or file a JIRA ticket
with INFRA.
---

[GitHub] brooklyn-docs issue #140: Add Azure Classic and ARM docs

Posted by geomacy <gi...@git.apache.org>.
Github user geomacy commented on the issue:

    https://github.com/apache/brooklyn-docs/pull/140
  
    Looks good at a quick scan for general issues (can't comment on the specifics of the settings/config for Azure as such), so if Graeme is happy then I'm happy to merge.


---
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 infrastructure@apache.org or file a JIRA ticket
with INFRA.
---

[GitHub] brooklyn-docs pull request #140: Add Azure Classic and ARM docs

Posted by Graeme-Miller <gi...@git.apache.org>.
Github user Graeme-Miller commented on a diff in the pull request:

    https://github.com/apache/brooklyn-docs/pull/140#discussion_r96873514
  
    --- 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)
    --- End diff --
    
    maybe use "Azure resource manager" rather than "resource manager deployment" so the acronym makes sense?


---
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 infrastructure@apache.org or file a JIRA ticket
with INFRA.
---

[GitHub] brooklyn-docs pull request #140: Add Azure Classic and ARM docs

Posted by Graeme-Miller <gi...@git.apache.org>.
Github user Graeme-Miller commented on a diff in the pull request:

    https://github.com/apache/brooklyn-docs/pull/140#discussion_r96876434
  
    --- Diff: guide/ops/locations/_azure-ARM.md ---
    @@ -0,0 +1,92 @@
    +---
    +section: Azure Compute ARM
    +section_type: inline
    +section_position: 2.1.1
    +---
    +
    +### Azure Compute ARM
    +
    +Azure Resource Manager (ARM) is a framework for deploying and managing applications across resources and managing groups of resources as single logical units on the Microsoft Azure cloud computing platform.
    +
    +#### Setup the Azure credentials
    +
    +Firstly, install and configure Azure CLI following [these steps](http://azure.microsoft.com/en-us/documentation/articles/xplat-cli/).
    +
    +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 "myappname"  --password abcd --home-page "https://myappwebsite" --identifier-uris "https://myappwebsite"
    +    
    +    # 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>
    +
    +#### Using the Azure ARM Location
    +
    +Below is an example Azure ARM location in YAML which will launch a Ubuntu instance in south east asia:
    +
    +    brooklyn.catalog:
    +      id: my-azure-arm-location
    +      name: "My Azure ARM location"
    +      itemType: location
    +      item:
    +        type: jclouds:azurecompute-arm
    +        brooklyn.config:
    +          identity: <Application-id>
    +          credential: <Password>
    +          endpoint: https://management.azure.com/subscriptions/<Subscription-id>
    +          oauth.endpoint: https://login.microsoftonline.com/<Tenant-id>/oauth2/token
    +      
    +          jclouds.azurecompute.arm.publishers: OpenLogic
    +          region: southeastasia
    +          loginUser: brooklyn
    +          templateOptions:
    +            overrideAuthenticateSudo: true 
    +
    +Fill the values `<Application-id>`, `<Password>`, `<Subscription-id>` and `<Tenant-id>` in from the values generated when 
    --- End diff --
    
    I'm getting weird paragraph breaks when viewing this locally. See attached screen shot. It doesn't look like the examples are in the same section as the explanation underneath them.
    <img width="851" alt="screen shot 2017-01-19 at 14 56 28" src="https://cloud.githubusercontent.com/assets/3742990/22111553/8fe3c2f6-de57-11e6-8ea5-bdfdd79288da.png">



---
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 infrastructure@apache.org or file a JIRA ticket
with INFRA.
---

[GitHub] brooklyn-docs pull request #140: Add Azure Classic and ARM docs

Posted by Graeme-Miller <gi...@git.apache.org>.
Github user Graeme-Miller commented on a diff in the pull request:

    https://github.com/apache/brooklyn-docs/pull/140#discussion_r96904988
  
    --- Diff: guide/ops/locations/_azure-ARM.md ---
    @@ -0,0 +1,92 @@
    +---
    +section: Azure Compute ARM
    +section_type: inline
    +section_position: 2.1.1
    +---
    +
    +### Azure Compute ARM
    +
    +Azure Resource Manager (ARM) is a framework for deploying and managing applications across resources and managing groups of resources as single logical units on the Microsoft Azure cloud computing platform.
    +
    +#### Setup the Azure credentials
    +
    +Firstly, install and configure Azure CLI following [these steps](http://azure.microsoft.com/en-us/documentation/articles/xplat-cli/).
    +
    +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 "myappname"  --password abcd --home-page "https://myappwebsite" --identifier-uris "https://myappwebsite"
    +    
    +    # 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>
    +
    +#### Using the Azure ARM Location
    +
    +Below is an example Azure ARM location in YAML which will launch a Ubuntu instance in south east asia:
    +
    +    brooklyn.catalog:
    +      id: my-azure-arm-location
    +      name: "My Azure ARM location"
    +      itemType: location
    +      item:
    +        type: jclouds:azurecompute-arm
    +        brooklyn.config:
    +          identity: <Application-id>
    +          credential: <Password>
    +          endpoint: https://management.azure.com/subscriptions/<Subscription-id>
    +          oauth.endpoint: https://login.microsoftonline.com/<Tenant-id>/oauth2/token
    +      
    +          jclouds.azurecompute.arm.publishers: OpenLogic
    +          region: southeastasia
    +          loginUser: brooklyn
    +          templateOptions:
    +            overrideAuthenticateSudo: true 
    +
    +Fill the values `<Application-id>`, `<Password>`, `<Subscription-id>` and `<Tenant-id>` in from the values generated when 
    --- End diff --
    
    looks like this might be specific to me. This looks good to merge


---
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 infrastructure@apache.org or file a JIRA ticket
with INFRA.
---

[GitHub] brooklyn-docs pull request #140: Add Azure Classic and ARM docs

Posted by Graeme-Miller <gi...@git.apache.org>.
Github user Graeme-Miller commented on a diff in the pull request:

    https://github.com/apache/brooklyn-docs/pull/140#discussion_r96873539
  
    --- 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/
    --- End diff --
    
    should be a link


---
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 infrastructure@apache.org or file a JIRA ticket
with INFRA.
---

[GitHub] brooklyn-docs pull request #140: Add Azure Classic and ARM docs

Posted by Graeme-Miller <gi...@git.apache.org>.
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 infrastructure@apache.org or file a JIRA ticket
with INFRA.
---