【发布时间】:2019-02-24 14:12:39
【问题描述】:
我正在使用 Terraform 进行基础架构配置,并使用 Ansible 进行配置管理。
这是高级概述,
Terraform 部分按预期工作。问题在于 Ansible 配置管理。
错误信息如下:
2019-02-24T13:10:12.4843263Z ##[section]Starting: Run playbook
2019-02-24T13:10:12.4991977Z ==============================================================================
2019-02-24T13:10:12.4992040Z Task : Ansible
2019-02-24T13:10:12.4992109Z Description : This task executes an Ansible playbook using a specified inventory via command line interface
2019-02-24T13:10:12.4992142Z Version : 0.0.4
2019-02-24T13:10:12.4992171Z Author : Microsoft Corporation
2019-02-24T13:10:12.4992237Z Help : [More Information](https://go.microsoft.com/fwlink/?linkid=853835)
2019-02-24T13:10:12.4992267Z ==============================================================================
2019-02-24T13:10:14.0504658Z ERROR! the playbook: /home/vsts/work/r1/a/_Terraform could not be found
2019-02-24T13:10:14.0832289Z ##[error]Command ansible-playbook -i /tmp/ba06130c-26d3-4345-b658-3c3b728965f3inventory.ini /home/vsts/work/r1/a/_Terraform Build Phase/drop/terraform/playbooks/common.yml exited with code 1.
2019-02-24T13:10:14.0857295Z ##[section]Finishing: Run playbook
我确定的一件事是,如果我导出以下变量,它可以在命令行上运行,
export AZURE_CLIENT_ID="xxxxxxxxxxxxxxxxxxxxx"
export AZURE_SECRET="xxxxxxxxxxxxxxxxxxxxxxxx"
export AZURE_SUBSCRIPTION_ID="xxxxxxxxxxxxxxx"
export AZURE_TENANT="xxxxxxxxxxxxxxxxxxxxxxxx"
注意:我已经在变量组中创建了这些变量,并且可用于所有管道。
common.yml 文件确实存在,因为我在 Release 定义中导航并找到它。不知道为什么在执行过程中无法定位。
在命令行上,我运行如下,它可以工作,所以它也应该在 Azure Pipelines 上工作?
ansible -i azure_rm.py ansible-inventory-test-rg -m ping
文件 azure_rm.py 脚本位于以下位置:
$(System.DefaultWorkingDirectory)/_Terraform Build Phase/drop/terraform/scripts/azure_rm.py
资源组的名称是:rg-app
如何让 Ansible 开始工作?任何帮助将不胜感激。
非常感谢。
【问题讨论】:
标签: ansible azure-pipelines-release-pipeline ansible-inventory