Self Hosted - Azure/AzOps GitHub Wiki
Self-hosted agents/runners
The AzOps pipelines/actions are running on Microsoft-hosted agents or GitHub Actions hosted virtual environments by default. Depending on your organizations security requirements you might want to use self-hosted agents/runners instead. The benefits of using self-hosted agents are:
- Possibility to use a Managed Identity instead of Service Principal
- Performance advantages - start and run builds faster
- Runtime isolation - no shared compute
- Possibility to deploy to internal resources using private endpoints
- Full control over network traffic
AzOps have full support for the use of self-hosted agents/runners and this article outlines the requirements needed.
For more information about using GitHub Actions self-hosted runners see, About self-hosted runners. For more information about using Azure DevOps self-hosted agents see, Azure Pipelines agents.
⚠️ In case of multiple agents/runners on the same compute resource ensure locking the
Validate
andPush
pipelines to the same the agent/runner (e.g. using demands with Azure Pipelines)
Virtual Machine Scale Sets (VMSS)
Virtual Machine Scale Sets are optimal for hosting your self-hosted agents/runners. They are easy to create and manage and will automatically scale as resource demand changes. To learn more about Virtual Machine Scale Sets see, Virtual Machine Scale Sets documentation.
Image
To setup a VMSS for your self-hosted agents/runners you need an image with all the required software installed. The pipelines and actions provided in the AzOps-Accelerator repository are using the GitHub Actions Virtual Environments ubuntu-latest
image by default. The images includes multiple tools and software including all AzOps requirements.
Build an image using GitHub Actions Virtual Environments
If you want to use the same image as the hosted environments for your self-hosted agents/runners you can build an image following the guides in the GitHub Actions Virtual Environments.
Building your own custom image
If you want to build your own custom lightweight image the following software is required for AzOps to function properly.
Required software
AzOps have a couple of dependencies that are required to function properly. When building your custom image, make sure that the following tools are included in the image:
Software | Note |
---|---|
jq |
Minimum required version is 1.6 |
Git |
- |
PowerShell |
Minimum required version is 7.2 |
Azure CLI |
Required when using Azure DevOps |
Github CLI |
Required when using GitHub |
Bicep |
Required if you plan to deploy Bicep templates using AzOps |
PowerShell Modules
AzOps depends on some of the Az
modules and PSFramework
, these modules will be installed with AzOps
during pipeline/action run and are not required to include in your image. But if you want to make your pipelines/actions as fast as possible the modules can be included in your image. To find the modules and the version required for the latest AzOps version see the module manifest.
Azure CLI Extensions
AzOps are using the az repos
command group which is a part of the azure-devops
extension to manage pull requests. The extension should be included in the image if running AzOps on Azure DevOps.
Extension |
---|
azure-devops |