Как использовать предопределенную переменную Azure DevOps server (TFS) в My Ansible Playbook? - PullRequest
4 голосов
/ 16 января 2020

Я хочу использовать Azure DevOps Predefine Variable " $ (Build.SourcesDirectory) " в Моей пьесе:

Вот моя пьеса:


  • hosts: KBR_MTL361 задач:
    • имя: копировать файл win_copy: sr c: D: \ Web.config dest: $ (Build.SourcesDirectory)

Я запускаю эту ansible -плейбук с использованием Azure DevOps Pipeline:

TFS Pipeline

Но это не работает

Кто-нибудь знает, как использовать переменную в конвейере?

Ответы [ 2 ]

2 голосов
/ 29 марта 2020

Просто добавьте ваши переменные в качестве дополнительных аргументов в 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)"'

Затем вы сможете получить доступ к переменным в вашей playbook :

---
- hosts: localhost
  tasks:
  - name: show debug
    debug:
      msg: "Dir {{ build_source_dir }} agent url {{AGENT_URL}}"
1 голос
/ 16 января 2020

если вы посмотрите здесь: 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.

...