Azure DevOps deploy to Azure VM's without a public IP
Yes it is possible. I was working on something like that a few days back. You can use Self-Hosted agents directly on one or all of the VMs: https://docs.microsoft.com/en-us/azure/devops/pipelines/agents/v2-windows?view=azure-devops