【发布时间】:2021-08-24 15:02:52
【问题描述】:
我发现很难掌握 Azure Pipelines 中部署作业和环境的概念。据我了解,deployment job 是将应用程序部署到特定环境的一系列步骤,因此是 environment 字段。
如果是这样,为什么该作业定义的代理池还有pool 定义?
编辑
困扰我的是,据我了解,Environment 是您可以在其上运行应用程序的资源集合。因此,您将为 dev 定义一些,为 stage、prod 等定义一些。因此您希望在这些目标上运行作业。那么为什么我们需要指定一个代理池来运行部署作业呢?不应该在属于指定环境的资源上运行吗?
编辑
以这个管道定义为例:
jobs:
# Track deployments on the environment.
- deployment: DeployWeb
displayName: deploy Web App
pool:
vmImage: 'Ubuntu-16.04'
# Creates an environment if it doesn't exist.
environment:
name: 'Stage'
resourceType: VirtualMachine
strategy:
# Default deployment strategy, more coming...
runOnce:
preDeploy:
steps:
- script: echo "Hello"
deploy:
steps:
- checkout: self
- script: echo my first deployment
我有一个名为“Stage”的环境,上面有一个虚拟机。
当我运行它时,我可以看到两个作业都在我的 VM 上运行
指定的代理池根本没有使用。
但是,如果我以另一个没有机器的环境为目标,它将在 Azure Pipelines vm 上运行
【问题讨论】:
-
由于这不是一个真正的编程问题,它可能更适合DevOps。
标签: azure-devops azure-pipelines