-
Notifications
You must be signed in to change notification settings - Fork 419
Setting up the environment for IIS Web App extension
This guide provides detailed instructions on setting up a testing environment for Azure DevOps extensions IIS Web App Deployment Using WinRM.
The environment setup is described in two scenarios: Automatic and Manual
This testing infrastructure involves setting up two primary virtual machines:
Build Agent VM: This machine acts as the job agent for Azure DevOps, handling build and deployment tasks.
IIS Server VM: This server hosts the Internet Information Services (IIS) for deploying and serving the web application.
Both VMs should be configured within the same Virtual Network (VNET).
This scenario automatically creates a resource group on Azure and deploys testing infrastructure using Terraform, Packer and GitHub Actions.
- Fork the Repository: winrm-infrastructure
This repository contains the necessary GitHub Actions, Terraform + Packer files and scripts for setting up the VMs and network configurations.
- Configure Repository Secrets according to Readme file in the repository
Add the required secrets that will be used by the GitHub Actions pipeline to interact with your Azure environment and Azure DevOps
-
Run the pipeline: Trigger the
Deploy Infrastructure
pipeline on your fork.
This pipeline will automatically provision and configure the required Azure resources, including the build agent and IIS server VMs, according to the infrastructure code and scripts present in the repository.
- Go to Azure DevOps and create a new pipeline using
Self-Hosted
pool:
pool:
name: Self-Hosted
steps:
- task: IISWebAppMgmt@3
displayName: 'Manage IISWebsite'
inputs:
machinesList: 10.1.0.6
AdminUserName: 'iis-vm\vmadmin'
AdminPassword: 'P@ssw0rd1234!'
WebsiteName: IISWebappM
WebsitePhysicalPath: 'C:\azagent\Sample'
AddBinding: true
CreateOrUpdateAppPoolForWebsite: true
ConfigureAuthenticationForWebsite: true
Port: 443
AppPoolNameForWebsite: testapp
AnonymousAuthenticationForWebsite: true
WindowsAuthenticationForWebsite: false
AppPoolName: DefaultAppPool
DeployInParallel: false