如何在我的 Ansible Playbook 中使用 Azure DevOps 服务器 (TFS) 预定义变量?

How to use Azure DevOps server (TFS) Predefined Variable in My Ansible Playbook?

我想在我的剧本中使用 Azure DevOps 预定义变量“$(Build.SourcesDirectory)”:

这是我的剧本:

---
- hosts: KBR_MTL361
  tasks:
   - name: copy file
     win_copy:
      src: D:\Web.config
      dest: $(Build.SourcesDirectory)

我是运行这本使用 Azure DevOps 管道的 ansible-playbook:

TFS Pipeline Task

但是没用

有没有人知道如何在管道中使用变量?

如果你看这里:https://daniel-krzyczkowski.github.io/Parameters-In-Azure-DevOps-Pipelines有一种方法可以将管道变量传递给 powershell 脚本,例如:

[CmdletBinding()]
param (
    $ApiManagementServiceName,
    $ApiManagementServiceResourceGroup
)

$apimServiceName = $ApiManagementServiceName
$resourceGroupName = $ApiManagementServiceResourceGroup

Write-Host "Api Management Service Name: $($apimServiceName)"
Write-Host "Api Management Resource Group Name: $($resourceGroupName)"

你说的仍然在使用 powershell,所以试试这个或尝试做一些类似的事情,对你的情况有用,对我来说,上述方法在标准 powershell 中工作得很好。

只需将您的变量作为附加参数添加到 azure-pipelines.yml 中,如下所示:

    - task: Ansible@0
      inputs:
        ansibleInterface: 'agentMachine'
        playbookPathOnAgentMachine: 'ansible/tfs_playbooks/install_agent.yml'
        inventoriesAgentMachine: 'file'
        inventoryFileOnAgentMachine: 'hosts.yml'
        args: '--extra-vars "build_source_dir=$(Build.SourcesDirectory) AGENT_URL=$(AGENT_URL)"'

然后您可以访问 剧本中的变量:

---
- hosts: localhost
  tasks:
  - name: show debug
    debug:
      msg: "Dir {{ build_source_dir }} agent url {{AGENT_URL}}"