0

I need to backup the Git repository of an Azure API Management instance which is connected to a virtual network and has a custom domain. Hence the SCM endpoint e.g. myapiminstance.scm.azure-api.net has no valid public DNS entry and cannot be resolved to its local IP address e.g. 10.1.2.3.

As I do not want to modify my build agents hostname resolution e.g. implementing private DNS for my virtual network I am looking for a very simple solution.

How can I make an Azure Pipelines container running with an adjusted /etc/hosts so that I could control the IP address and hostname easily with parameters or variable groups?

Kai Walter
  • 3,485
  • 2
  • 32
  • 62

1 Answers1

0

It is possible to add docker create argument --add-host as option, when specifying the container:

name: apim-repo-backup-$(Date:yyyyMMdd)$(Rev:.r)

trigger:
  paths:
    include:
    - apim-repo-backup.yml
    - testHosts.ps1

stages:
  - stage: test
    displayName: test hostname modification
    jobs:
    - job:
      pool:
        name: internal
        demands:
        - Agent.OS -equals Linux

      container:
        image: mcr.microsoft.com/azure-powershell:latest
        options: --add-host=myapiminstance.scm.azure-api.net:10.1.2.3

      workspace:
        clean: all

      steps:

      - task: AzurePowerShell@4
        displayName: display hosts
        inputs:
          azureSubscription: 'MySubscription'
          scriptType: filePath
          azurePowerShellVersion: latestVersion 
          scriptPath: 'testHosts.ps1'

testHosts.ps1:

cat /etc/hosts

output:

127.0.0.1   localhost
::1 localhost ip6-localhost ip6-loopback
fe00::0 ip6-localnet
ff00::0 ip6-mcastprefix
ff02::1 ip6-allnodes
ff02::2 ip6-allrouters
10.1.2.3    myapiminstance.scm.azure-api.net
Kai Walter
  • 3,485
  • 2
  • 32
  • 62