使用 Azure Devops yaml 管道部署到本地服务器

Using Azure Devops yaml pipelines to deploy to on-prem servers

使用 Azure DevOps 管道时,是否可以使用 yaml 管道部署到本地服务器?

我已经使用部署组通过发布(经典)管道部署到本地服务器,并且我看到了有关使用 yaml 管道部署到 Azure 基础结构的说明。

但是我找不到任何有关如何使用 yaml 管道部署到本地服务器的示例 - 这可能吗?如果是这样,是否有任何示例可以说明如何实现这一目标?

是的,你可以。在 YAML 管道中,您可以使用“环境”替代部署组。它们的工作方式类似,您在目标机器上安装代理,然后在部署作业中指定环境

Create a new Environment with an appropriate name (e.g. Dev) then add a resource,您将能够添加 VM 或 Kubernetes 集群。假设您选择 VM,那么您将能够下载一个脚本,您可以 运行 一个目标机器来安装部署代理。此脚本将在环境中安装和注册代理。

将代理注册到环境后,将 deployment job 添加到 YAML

- stage: DeployToDev
  displayName: Deploy to Dev
  jobs:
  - deployment: DeployWebSite
    displayName: Deploy web site to Dev
    environment: Dev
    strategy:
      runOnce:
        deploy:
          steps:
            - task: PowerShell@2
            inputs:
              targetType: 'inline'
              script: |
                Write-Host "Deploy my code"         

如之前的回答中所述,您需要创建一个新环境并将 VM 添加到环境中(请参阅 documentation)。

使用部署作业,还需要指定resourceType

- deployment: VMDeploy
  displayName: Deploy to VM
  environment:
    name: ContosoDeploy
    resourceType: VirtualMachine
...

如果您在此环境中有多个 VM,作业步骤将在所有 VM 上执行。

要定位特定的 VM,您可以添加标签(请参阅 documentation)。

jobs:
- deployment: VMDeploy
  displayName: Deploy to VM
  environment: 
    name: ContosoDeploy
    resourceType: VirtualMachine
    tags: windows,prod # only deploy to virtual machines with both windows and prod tags
...