Exercise - Set up your environment

Completed

Important

You need your own Azure subscription to run this exercise, and you might incur charges. If you don't already have an Azure subscription, create a free account before you begin.

Before you start to work on your toy company's website pipeline, you need to configure your environment. In this unit, you make sure that your Azure and Azure DevOps environments are set up to complete the rest of this module.

To meet these objectives, do the following tasks:

  • Set up an Azure DevOps project for this module.
  • Clone the project's repository to your computer.
  • Create two resource groups in Azure.
  • Create two service connections and environments in Azure Pipelines.

Get the Azure DevOps project

In this section, you make sure that your Azure DevOps organization is set up to complete the rest of this module. You set it up by running a template that creates a project in Azure DevOps.

The modules in this learning path are part of a progression. For learning purposes, each module has an associated Azure DevOps project.

Tip

Even if you completed the preceding module in the learning path, follow these instructions to create a new project. Be sure to give the project a new name.

Run the template

Run a template that sets up your Azure DevOps project.

On the Azure DevOps Demo Generator site, do the following steps:

  1. Select Sign In, and then agree to the site usage terms by selecting Accept.

  2. On the Create New Project page, select your Azure DevOps organization and then, in the New Project Name box, enter a project name, such as toy-website-end-to-end.

    Screenshot of the Azure DevOps Demo Generator pane for creating a new project.

  3. Select Create Project.

    The template takes a few moments to run. It automatically creates a pipeline and Bicep file for you to work with in the next few exercises.

  4. Select Navigate to project to go to your project in Azure DevOps.

Important

The final exercise in this module contains important cleanup steps. Be sure to follow the cleanup steps even if you don't complete this module.

Clone the repository

  1. Select Repos > Files.

    Screenshot of Azure DevOps that shows the Repos menu, with Files highlighted.

  2. Select Clone.

    Screenshot of Azure DevOps showing the repository, with the Clone button highlighted.

  3. If you're using macOS, you need a special password to clone the Git repository. Select Generate Git credentials, and then copy the displayed username and password to somewhere safe.

  4. Select Clone in VS Code. If you're prompted to allow Visual Studio (VS) Code to open, select Open.

    Screenshot of Azure DevOps that shows the repository settings, with the Clone in VS Code button highlighted.

  5. If a dialog box appears, prompting you to allow an extension to open the repository URI, select Open.

  6. Create a folder to use for the repository, and then select Select Repository Location.

  7. If it's the first time you're using this repository, you might be prompted to sign in.

    • For Windows, enter the same credentials that you used to sign in to Azure DevOps earlier in this exercise.

    • For macOS, enter the Git username and password that you generated a few moments ago.

  8. Visual Studio Code prompts you to open the repository. Select Open.

    Screenshot of Visual Studio Code that shows a prompt to open the cloned repository, with the Open button highlighted.

Sign in to Azure

To work with resource groups in Azure, sign in to your Azure account from the Visual Studio Code terminal. Be sure that you've installed the Azure CLI tools.

  1. In the Terminal menu, select New Terminal. The terminal window usually opens in the lower half of your screen.

  2. If the shell shown on the right side of the terminal window is bash, the correct shell is open and you can skip to the next section.

    Screenshot of the Visual Studio Code terminal window, with the bash option shown.

  3. If a shell other than bash appears, select the shell dropdown, and then select Git Bash (Default).

    Screenshot of the Visual Studio Code terminal window, with the terminal shell dropdown shown and Git Bash Default selected.

  4. In the list of terminal shells, select bash, and then select the plus sign to open a new terminal that uses the bash shell.

    Screenshot of the Visual Studio Code terminal window, with the bash terminal and the plus sign selected.

Sign in to Azure by using the Azure CLI

  1. In the Visual Studio Code terminal, run the following command to sign in to Azure:

    az login
    
  2. In the browser that opens, sign in to your Azure account.

To work with resource groups in Azure, sign in to your Azure account from the Visual Studio Code terminal. Be sure that you've installed Azure PowerShell.

  1. In the Terminal menu, select New Terminal. The terminal window usually opens in the lower half of your screen.

  2. If the shell shown on the right side of the terminal window is powershell or pwsh, the correct shell is open and you can skip to the next section.

    Screenshot of the Visual Studio Code terminal window, with the p w s h option displayed in the shell dropdown.

  3. If a shell other than powershell or pwsh appears, select the shell dropdown, and then select PowerShell.

    Screenshot of the Visual Studio Code terminal window, with the terminal shell dropdown shown and powershell selected.

  4. In the list of terminal shells, select powershell or pwsh, and then select the plus sign to open a new terminal that uses the powershell or pwsh shell.

    Screenshot of the Visual Studio Code terminal window, with the powershell terminal and the plus sign selected.

Sign in to Azure by using Azure PowerShell

  1. In the Visual Studio Code terminal, run the following command to sign in to Azure:

    Connect-AzAccount
    
  2. In the browser that opens, sign in to your Azure account.

Create two resource groups in Azure

To create the two new resource groups, run the following Azure CLI commands in the Visual Studio Code terminal:

az group create --name ToyWebsiteTest --location westus3
az group create --name ToyWebsiteProduction --location westus3

To create the two new resource groups, run the following Azure PowerShell commands in the Visual Studio Code terminal:

New-AzResourceGroup -Name ToyWebsiteTest -Location westus3
New-AzResourceGroup -Name ToyWebsiteProduction -Location westus3

Create service connections in Azure Pipelines

Next, create two service connections in Azure Pipelines, one for your test environment and another for your production environment. This process automatically creates a service principal in Azure. It also grants the service principal the Contributor role on your resource group, which allows your pipeline to be deployed to the resource group.

  1. In your browser, select Project settings.

    Screenshot of Azure DevOps that shows the menu, with the Project settings item highlighted.

  2. Select Service connections > Create service connection.

    Screenshot of Azure DevOps that shows the Service connections pane, with the Create service connection button highlighted.

  3. Select Azure Resource Manager > Next.

    Screenshot of Azure DevOps that shows the Service connections pane, with the Azure Resource Manager service connection type highlighted.

  4. Select Service principal (automatic) > Next.

    Screenshot of Azure DevOps that shows the New Azure service connection pane, with the Service principal (automatic) option highlighted.

  5. In the Subscription dropdown list, select your Azure subscription.

    If a popup window appears with a message asking you to sign in to Azure, enter your credentials and sign in.

  6. In the Resource group dropdown list, select ToyWebsiteTest.

  7. In the Service connection name box, enter ToyWebsiteTest. Ensure that the Grant access permission to all pipelines checkbox is selected.

    Screenshot of Azure DevOps that shows the New Azure service connection pane for the test environment, with the details completed and the Save button highlighted.

    Tip

    In this exercise, for simplicity, you're giving every pipeline access to your service connection. When you create real service connections that work with production resources, consider restricting access to only the pipelines that need them.

  8. Select Save.

  9. Repeat steps 1 through 8 to create another new service connection named ToyWebsiteProduction, which is deployed to the resource group named ToyWebsiteProduction:

    Screenshot of Azure DevOps that shows the New Azure service connection pane for the production environment, with the details completed and the Save button highlighted.

    If the resource group list isn't shown, refresh the page in your browser, enter your credentials if prompted, and try again.

Note

In previous modules in this learning path, you added an approval check to your production environment. In this module, for simplicity, you're skipping the approval check. However, you can add the approval check yourself if you'd like.