Azure DevOps Server
Leave a comment

Azure DevOps Server – Performing Unattended Single Server Deployment

In the last part of this series, we looked at how to use the web installer to download the media content to a local folder. The method to download the bits applies to both full and express editions of the Azure DevOps Server. Once we have the installer bits, we can use unattended methods to perform the complete install of Azure DevOps Server. And, that is the subject of today’s post.

There are different installation methods that are supported (source:

  • Single server
    A single-server deployment is the easiest deployment, because the application tier and data tier are on the same machine.

  • Dual servers
    A dual-server deployment, with separate application and data tiers can provide better performance for larger teams and teams with heavier usage.
  • Multiple servers
    This type of deployment, which involves multiple application and data tiers, often provides better performance for larger teams and teams with heavier usage. By using more than one server, you improve high availability and disaster recovery ability.

Today, we will look at the single server installation method and how that can be achieved using the unattended process.

Installing Azure DevOps Server

When the installer is used to download the media contents, it creates a folder called packages and downloads all relevant components into that.

Note that I have copied the web installer to the root of the downloads folder.

We can invoke the silent install of the Azure DevOps Server using the /Silent parameter.

This installs the DevOps Server. You can verify this by looking at C:\Program Files\Azure DevOps Server 2019 folder.

At this point time, we only have the bits installed on the system but DevOps Server is not configured yet. If you used the GUI to start the install, at the end of the install you will be prompted with a configuration wizard. However, since we are trying to achieve all that at the command line and in an unattended fashion, we need to figure out the process to perform silent configuration of the DevOps Server. This is easy. We need to use the tfsconfig.exe in the Tools folder and supply a unattend configuration file. Now, I don’t know what that unattend file schema looks like. Once again, the tfsconfig command has the necessary options to generate that configuration file.

Once the tfsconfig command is complete, we should see the unattend.ini file in C:\Downloads. Here is how it looks.

The above auto-generated unattend.ini file specifies that an install of SQL Express needs to be installed and the DevOps Server endpoint will be listening at port 8080 and with a virtual directory called tfs.

Note: Since InstallSQLExpress is set to True, the installer gets downloaded and installed.

This INI file can be supplied to the tfconfig.exe to configure Azure DevOps Server in an unattended method.

Once the install is complete, you can access the Azure DevOps Server at http://<localhostname>:8080/tfs.

This is it for today! We will see some more install methods in the next post.

Filed under: Azure DevOps Server


Ravikanth is a principal engineer and the lead architect for Microsoft and VMware virtualized and hybrid cloud solutions within the Infrastructure Solutions Group at Dell EMC. He is a multi-year recipient of Microsoft Most Valuable Professional (MVP) award in Windows PowerShell (CDM) and Microsoft Azure. Ravikanth is the author of Windows PowerShell Desired State Configuration Revealed (Apress) and leads Bangalore PowerShell and Bangalore IT Pro user groups. He can be seen speaking regularly at local user group events and conferences in India and abroad.