From 78f49a1ee5e76aba295e627925712d262cd775fe Mon Sep 17 00:00:00 2001 From: Arjun Bahreee Date: Thu, 4 Jul 2019 18:57:11 +0530 Subject: [PATCH 01/10] Adding self as new contributing Author --- _data/authors.yml | 16 ++++++++++++++++ images/authors/bahree.jpg | Bin 0 -> 7233 bytes 2 files changed, 16 insertions(+) create mode 100644 images/authors/bahree.jpg diff --git a/_data/authors.yml b/_data/authors.yml index dc58aca..c24df62 100644 --- a/_data/authors.yml +++ b/_data/authors.yml @@ -167,3 +167,19 @@ Dave Placeholder: - label: "Blogsite" icon : "fas fa-fw fa-link" url : "http://monsieurfromageblog.com" # Author details. + +Arjun Bahree: + name : Arjun Bahree + bio : Cloud Architect | Advisor | Developer.
Infrastructure/IaC, Native Apps, Automation, Containers, OSS, DevOps, Networking, Storage, Compute ... + avatar : images/authors/bahree.jpg + email : arjun.bahree@gmail.com + twitter : arjunbahree + github : bahreex + linkedin : bahree + links: + - label: "Blogsite #1" + icon : "fas fa-fw fa-link" + url : "http://azurepost.com" + - label: "Blogsite #2" + icon : "fas fa-fw fa-link" + url : "http://cloudchakra.com" \ No newline at end of file diff --git a/images/authors/bahree.jpg b/images/authors/bahree.jpg new file mode 100644 index 0000000000000000000000000000000000000000..a8a2ac5029a7794eb69c72d2f92b0544e4b83c9f GIT binary patch literal 7233 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 literal 0 HcmV?d00001 From bbb5e51c6676b45cced68125cfdb75d3bd7e20f9 Mon Sep 17 00:00:00 2001 From: Arjun Bahreee Date: Fri, 5 Jul 2019 19:45:54 +0530 Subject: [PATCH 02/10] Fixed 2 broken links for API Versions and language --- automation/arm/lab2.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/automation/arm/lab2.md b/automation/arm/lab2.md index 9c99dfb..d94d705 100644 --- a/automation/arm/lab2.md +++ b/automation/arm/lab2.md @@ -51,11 +51,11 @@ You will find yourself needing to check the most recent ARM reference informatio There are three short URLs that you really need to remember from these labs, and that was the first of them. -The full pathing to take you direct to individual resource type pages is `https://docs.microsoft.com/en-gb/azure/templates/_resource.provider_/_type_`, so you can quickly go straight to the right page. +The full pathing to take you direct to individual resource type pages is `https://docs.microsoft.com/en-gb/azure/templates/`, so you can quickly go straight to the right page. Take a look at the reference page for the [Microsoft.Storage/storageAccounts](https://docs.microsoft.com/en-gb/azure/templates/microsoft.storage/storageaccounts) and you will see that the API version is far newer than June 2015, and includes newer features such as v2 storage accounts. You will find that some of the property values are not usefully described in the reference pages, and the documentation does not always provide good examples. We will see how we can use the resource group level export to work around that later. -Note that only the most recent API version is shown in the reference documentation, and there is sometimes a small lag between a new API being released and the documentation catching up. There is a huge amount of innovation on the Azure platform so this is a neverending task. If you do need to look backwards then there is a full list of the various [API versions](https://docs.microsoft.com/en-us/azure/azure-resource-manager/resource-manager-supported-services#supported-api-versions). You can also look at the [schemas](https://github.com/Azure/azure-resource-manager-schemas/tree/master/schemas) directly on GitHub. If you are feeling masochistic then you can use the schemas to check differences in API releases. +Note that only the most recent API version is shown in the reference documentation, and there is sometimes a small lag between a new API being released and the documentation catching up. There is a huge amount of innovation on the Azure platform so this is a neverending task. If you do need to view valid API versions for a resource type, you can use Azure CLI or Azure PowerShell as demonstrated [here](https://docs.microsoft.com/en-us/azure/azure-resource-manager/resource-manager-supported-services#supported-api-versions). You can also look at the [schemas](https://github.com/Azure/azure-resource-manager-schemas/tree/master/schemas) corresponding to respective API versions directly on GitHub. If you are feeling masochistic then you can use the schemas to check differences in API releases. For Azure Stack there is a new root element called [apiProfile](https://docs.microsoft.com/en-us/azure/azure-stack/user/azure-stack-version-profiles) which can be used to globally set the apiVersion across public Azure Cloud and Azure Stack deployments. When this is used then apiVersion does not need to be specified within the resource objects. From 12ee96da3a3ba31c2228112e447dd659fd2d3b2b Mon Sep 17 00:00:00 2001 From: Arjun Bahreee Date: Sun, 7 Jul 2019 15:12:45 +0530 Subject: [PATCH 03/10] Minor Markdown Adjustments --- _data/authors.yml | 3 ++- automation/arm/lab2.md | 2 +- 2 files changed, 3 insertions(+), 2 deletions(-) diff --git a/_data/authors.yml b/_data/authors.yml index c24df62..19b6351 100644 --- a/_data/authors.yml +++ b/_data/authors.yml @@ -182,4 +182,5 @@ Arjun Bahree: url : "http://azurepost.com" - label: "Blogsite #2" icon : "fas fa-fw fa-link" - url : "http://cloudchakra.com" \ No newline at end of file + url : "http://cloudchakra.com" + \ No newline at end of file diff --git a/automation/arm/lab2.md b/automation/arm/lab2.md index d94d705..9f889c5 100644 --- a/automation/arm/lab2.md +++ b/automation/arm/lab2.md @@ -438,4 +438,4 @@ Clean up your lab2 resource group containing the web app before moving on. From In the next section we will handle secrets and securetext. -[◄ Lab 1: Basics](../lab1){: .btn .btn--inverse} [▲ Index](../#index){: .btn .btn--inverse} [Lab 3: Shh Secrets ►](../lab3){: .btn .btn--primary} \ No newline at end of file +[◄ Lab 1: Basics](../lab1){: .btn .btn--inverse} [▲ Index](../#index){: .btn .btn--inverse} [Lab 3: Shh Secrets ►](../lab3){: .btn .btn--primary} From 98028811b9f539bff90086dda768329e2d3f65a9 Mon Sep 17 00:00:00 2001 From: Arjun Bahreee Date: Sun, 7 Jul 2019 18:04:48 +0530 Subject: [PATCH 04/10] Correction and Changes to Links --- automation/arm/lab2.md | 16 ++++++---------- 1 file changed, 6 insertions(+), 10 deletions(-) diff --git a/automation/arm/lab2.md b/automation/arm/lab2.md index 9f889c5..578a860 100644 --- a/automation/arm/lab2.md +++ b/automation/arm/lab2.md @@ -65,8 +65,8 @@ For Azure Stack there is a new root element called [apiProfile](https://docs.mic We'll now look at different places to source templates and we'll start with exporting templates directly out of the Azure portal itself. There are a couple of ways of doing this: -1. viewing the _automation options_ prior to resource deployment -1. creating a full export of a whole resource group +1. Viewing the ARM generated Template prior to resource deployment (The link for viewing the generated templates is labeled either _Download a template for automation_ or _Automation options_ across different resource blades) +2. Creating a full export of a whole resource group Both have their benefits and limitations and the labs will hopefully illustrate this. This is also a good lab to talk about API versions and to start utilising the reference documentation. @@ -92,7 +92,7 @@ OK, let's export an example template and parameters file. * Location: **West Europe** * Pricing tier: **F1 Free** -**_DO NOT CLICK ON THE CREATE BUTTON!_** Click on the _Automation Options_ link instead. +**_DO NOT CLICK ON THE CREATE BUTTON!_** Click on the _Download a template for automation_ link instead. This will open up the template that the portal has created on the fly. If you tab through the Template, Parameters, CLI, PowerShell, .NET and Ruby tabs then you will see the two JSON templates, plus deployment code for the various CLIs and key SDKs. @@ -176,8 +176,6 @@ Here are the example initial files: } ``` -> You may find that the portal has created the template based on the `2014-04-01-preview` version of the ARM schema. If this is the case then change it to `2015-01-01` (as above). You may also want to change the API version of the `Microsoft.Web/sites` resource to `2016-08-01` which is the current API version at the time of writing. This will remove any of the "problems" as triggered by the ARM Tools extension. - Configure VS Code to have both the azuredeploy.json and the azuredeploy.parameters.json side by side. (Use either `CTRL`+`ALT`+`<|>`, or drag the parameters tab towards the right hand side until the snap area is shown.) ![vscode](/automation/arm/images/lab2-3-vscode.png) @@ -214,7 +212,7 @@ Here is the resulting azuredeploy.json: ```json { - "$schema": "http://schema.management.azure.com/schemas/2014-04-01-preview/deploymentTemplate.json#", + "$schema": "http://schema.management.azure.com/schemas/2015-01-01/deploymentTemplate.json#", "contentVersion": "1.0.0.0", "parameters": { "webAppName": { @@ -260,8 +258,6 @@ Here is the resulting azuredeploy.json: } ``` -> Note that we could also change the schema from _2014-04-01-preview_ to _2015-01-01_ - And the matching azuredeploy.parameters.json file should only have one parameter: ```json @@ -297,13 +293,13 @@ You will also see implicit dependencies, where resource properties in one resour It is possible to export a whole resource group definition as ARM JSON. This is very verbose and it will hardcode many of the property values. Frankly it is not pretty and is of limited use. However, one thing it is very useful for is to compare the files before and after a manual change to see how that can be driven using ARM. 1. Open up the blade for the lab2 resource group once it has successfully deployed -1. Click on Export Template in the Settings section +1. Click on _Export Template_ in the Settings section 1. Copy out the JSON into a new file within VS Code 1. Open up the Web App blade 1. Select CORS in the API section 1. Enter in a valid origin site and port, e.g. `http://azurecitadel.github.io:1976` into the Allowed Origins field 1. Click on Save -1. Go back up to the resource group and click on Export Template again +1. Go back up to the resource group and click on _Export Template_ again 1. Copy out the "after" version of the JSON and paste it into another new file in VS Code 1. Type `CTRL-SHIFT-P` to bring up the Command Palette 1. Use the 'File: Compare Active File With...' to see the difference From 74a5e7355276a063570bb3d88cdca221b3731706 Mon Sep 17 00:00:00 2001 From: Arjun Bahreee Date: Sun, 7 Jul 2019 21:33:22 +0530 Subject: [PATCH 05/10] Added missing Info --- automation/arm/lab3.md | 16 +++++++++------- 1 file changed, 9 insertions(+), 7 deletions(-) diff --git a/automation/arm/lab3.md b/automation/arm/lab3.md index dd0808e..fd42af3 100644 --- a/automation/arm/lab3.md +++ b/automation/arm/lab3.md @@ -209,14 +209,16 @@ OK, we've addressed the password. Let's start turning the template itself into * subnetName, defaulting to "Subnet" * subnetPrefix, defaulting to "10.0.0.0/24" 1. Remove the corresponding variables - * vnetName is replacing virtualNetworkName - * vnetPrefix is replacing addressPrefix -1. Remove the default for the vmName -1. Change the value for the nicName variable to be the vmName with '-nic' at the end -1. Change the publicIPAddressName variable to pipName + * vnetName parameter is replacing virtualNetworkName variable + * vnetPrefix parameter is replacing addressPrefix variable + * subnetName parameter is replacing subnetName variable + * subnetPrefix parameter is replacing subnetPrefix variable +2. Remove the default for the vmName +3. Change the value for the nicName variable to be the vmName with '-nic' at the end +4. Change the publicIPAddressName variable to pipName * Change the value for the pipName variable to be the vmName with '-pip' at the end -1. Change the publicIPAddressType variable to pipType -1. Change the value for the vmSize variable to "Standard_B1s" +5. Change the publicIPAddressType variable to pipType +6. Change the value for the vmSize variable to "Standard_B1s" In the parameters file, add in new vnetName and subnetName parameters and **remove** both vmName and dnsLabelPrefix. Here is an example: From 2e14c13949e9dbef4597fcfad56c5cb46092a37f Mon Sep 17 00:00:00 2001 From: Arjun Bahreee Date: Sun, 21 Jul 2019 14:45:39 +0530 Subject: [PATCH 06/10] No longer applicable as this conflict has changed --- automation/arm/lab2.md | 2 -- 1 file changed, 2 deletions(-) diff --git a/automation/arm/lab2.md b/automation/arm/lab2.md index 578a860..ea2473f 100644 --- a/automation/arm/lab2.md +++ b/automation/arm/lab2.md @@ -200,8 +200,6 @@ Quick guide: 1. Strip down the parameters file to only the required webAppName parameter value 1. Test -> Note that the "name" parameter as generated from the portal would cause a problem for PowerShell submissions. This is because the PowerShell New-AzResourceGroupDeployment cmdlet automatically creates new switches on the fly based on the parameter names, but these must not clash with existing switches. As `-name` is one of those switches you will see an error. Changing it to 'webAppName' avoids this. - It is worth going through the pain of this refactoring section as it is really good practice for you. If you do get stuck then the video below shows the files being edited. From 192bbe1c035404f7e7b52aabac2dfd35a8eb1a62 Mon Sep 17 00:00:00 2001 From: Richard Cheney Date: Mon, 29 Jul 2019 13:38:21 +0100 Subject: [PATCH 07/10] Update lab2.md Gentle tweak --- automation/arm/lab2.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/automation/arm/lab2.md b/automation/arm/lab2.md index ea2473f..42b50ef 100644 --- a/automation/arm/lab2.md +++ b/automation/arm/lab2.md @@ -65,8 +65,8 @@ For Azure Stack there is a new root element called [apiProfile](https://docs.mic We'll now look at different places to source templates and we'll start with exporting templates directly out of the Azure portal itself. There are a couple of ways of doing this: -1. Viewing the ARM generated Template prior to resource deployment (The link for viewing the generated templates is labeled either _Download a template for automation_ or _Automation options_ across different resource blades) -2. Creating a full export of a whole resource group +1. viewing the ARM generated template prior to resource deployment using the _Download a template for automation_ link (NB. may be labelled _Automation options_ in certain resources blades) +1. Creating a full export of a whole resource group Both have their benefits and limitations and the labs will hopefully illustrate this. This is also a good lab to talk about API versions and to start utilising the reference documentation. From 5b51a4d48eb6b71e7321b2152eab45fa82a5dfc8 Mon Sep 17 00:00:00 2001 From: Richard Cheney Date: Mon, 29 Jul 2019 13:54:10 +0100 Subject: [PATCH 08/10] API versions Reworked the API versions section now that the drop down box is there --- automation/arm/lab2.md | 13 +++++++++---- 1 file changed, 9 insertions(+), 4 deletions(-) diff --git a/automation/arm/lab2.md b/automation/arm/lab2.md index 42b50ef..598d962 100644 --- a/automation/arm/lab2.md +++ b/automation/arm/lab2.md @@ -51,13 +51,18 @@ You will find yourself needing to check the most recent ARM reference informatio There are three short URLs that you really need to remember from these labs, and that was the first of them. -The full pathing to take you direct to individual resource type pages is `https://docs.microsoft.com/en-gb/azure/templates/`, so you can quickly go straight to the right page. +The full pathing to take you direct to individual resource type pages is in the format `https://docs.microsoft.com/azure/templates/Resource.Provider/type`. -Take a look at the reference page for the [Microsoft.Storage/storageAccounts](https://docs.microsoft.com/en-gb/azure/templates/microsoft.storage/storageaccounts) and you will see that the API version is far newer than June 2015, and includes newer features such as v2 storage accounts. You will find that some of the property values are not usefully described in the reference pages, and the documentation does not always provide good examples. We will see how we can use the resource group level export to work around that later. +* Go to +* Append the URL in the address bar with `Microsoft.Storage/storageAccounts` and hit enter -Note that only the most recent API version is shown in the reference documentation, and there is sometimes a small lag between a new API being released and the documentation catching up. There is a huge amount of innovation on the Azure platform so this is a neverending task. If you do need to view valid API versions for a resource type, you can use Azure CLI or Azure PowerShell as demonstrated [here](https://docs.microsoft.com/en-us/azure/azure-resource-manager/resource-manager-supported-services#supported-api-versions). You can also look at the [schemas](https://github.com/Azure/azure-resource-manager-schemas/tree/master/schemas) corresponding to respective API versions directly on GitHub. If you are feeling masochistic then you can use the schemas to check differences in API releases. +You will be taken straight to the most recent version of the [Microsoft.Storage/storageAccounts](https://docs.microsoft.com/azure/templates/Microsoft.Storage/storageAccounts) API page. -For Azure Stack there is a new root element called [apiProfile](https://docs.microsoft.com/en-us/azure/azure-stack/user/azure-stack-version-profiles) which can be used to globally set the apiVersion across public Azure Cloud and Azure Stack deployments. When this is used then apiVersion does not need to be specified within the resource objects. +You will notice that the API version is far newer than the snippet you have been using, and includes newer features such as v2 storage accounts. These pages are auto-generated from the [schemas](https://github.com/Azure/azure-resource-manager-schemas/tree/master/schemas) and therefore you may find that some of the property values are not usefully described in the reference pages, and would benefit from some good examples. We will see how we can use the resource group level export to work around that later. + +Note that you can use the drop down box to select from the various iterations of the API version. + +> For Azure Stack there is a new root element called [apiProfile](https://docs.microsoft.com/en-us/azure/azure-stack/user/azure-stack-version-profiles) which can be used to globally set the apiVersion across public Azure Cloud and Azure Stack deployments. When this is used then apiVersion does not need to be specified within the resource objects. ------------------ From fe75d23ebb4c9c4549849d200238395974964315 Mon Sep 17 00:00:00 2001 From: Richard Cheney Date: Mon, 29 Jul 2019 13:55:33 +0100 Subject: [PATCH 09/10] Cosmetic button change Not sure when Ssh Secrets snuck in.... --- automation/arm/lab2.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/automation/arm/lab2.md b/automation/arm/lab2.md index 598d962..6d4cf79 100644 --- a/automation/arm/lab2.md +++ b/automation/arm/lab2.md @@ -437,4 +437,4 @@ Clean up your lab2 resource group containing the web app before moving on. From In the next section we will handle secrets and securetext. -[◄ Lab 1: Basics](../lab1){: .btn .btn--inverse} [▲ Index](../#index){: .btn .btn--inverse} [Lab 3: Shh Secrets ►](../lab3){: .btn .btn--primary} +[◄ Lab 1: Basics](../lab1){: .btn .btn--inverse} [▲ Index](../#index){: .btn .btn--inverse} [Lab 3: Secrets ►](../lab3){: .btn .btn--primary} From eb7a7651e406f6386175ed3635f202009b4943c9 Mon Sep 17 00:00:00 2001 From: Richard Cheney Date: Mon, 29 Jul 2019 13:56:55 +0100 Subject: [PATCH 10/10] Let markdown auto number the lists --- automation/arm/lab3.md | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/automation/arm/lab3.md b/automation/arm/lab3.md index fd42af3..45deba6 100644 --- a/automation/arm/lab3.md +++ b/automation/arm/lab3.md @@ -213,12 +213,12 @@ OK, we've addressed the password. Let's start turning the template itself into * vnetPrefix parameter is replacing addressPrefix variable * subnetName parameter is replacing subnetName variable * subnetPrefix parameter is replacing subnetPrefix variable -2. Remove the default for the vmName -3. Change the value for the nicName variable to be the vmName with '-nic' at the end -4. Change the publicIPAddressName variable to pipName +1. Remove the default for the vmName +1. Change the value for the nicName variable to be the vmName with '-nic' at the end +1. Change the publicIPAddressName variable to pipName * Change the value for the pipName variable to be the vmName with '-pip' at the end -5. Change the publicIPAddressType variable to pipType -6. Change the value for the vmSize variable to "Standard_B1s" +1. Change the publicIPAddressType variable to pipType +1. Change the value for the vmSize variable to "Standard_B1s" In the parameters file, add in new vnetName and subnetName parameters and **remove** both vmName and dnsLabelPrefix. Here is an example: