我是CI和CD领域的新手。我正在使用VSTS管道来自动化我的构建和发布过程。 这个问题是关于发布管道的。我将构建部署部署到AWS VM。我创建了一个Deployment组,并在VM中运行脚本以在AWS VM上生成Deployment Agent。 这很好,并且我能够成功部署。 成功部署后,我想在python中运行一些自动化脚本。 我尝试使用 Python Script Task 。设置之一是Python Interpretor。帮助信息说: “要使用的Python解释器的绝对路径。如果未指定,任务将在PATH中使用解释器。 运行“使用Python版本”任务,将Python版本添加到PATH。”
所以, 我尝试使用Python版本任务,并指定了我通常用来运行脚本的python版本。任务提及的前提条件 “安装了并行版本的Python的Microsoft托管代理,或者配置了Agent.ToolsDirectory的自托管代理(请参阅问题与解答)。” 引用Python Version task documentation
我不确定如何以及在何处设置Agent.ToolsDirectory或如何在部署到AWS VM的发布管道上使用Microsoft托管代理。为此,我找不到任何分步示例。谁能在明确的步骤中帮助我,如何在我的方案中运行python脚本?
答案 0 :(得分:0)
最简单的方法就是按照您的Yaml定义进行操作:
- script: python xxx
这将运行python并将参数传递给它,您可以使用python2或python3(托管代理上安装的默认版本)。实现此目的(更可靠)的另一种方法是在托管代理内部使用容器。这样,您可以显式指定python版本,并确保获得指定的内容。例如:
资源: 容器: -容器:my_container#可以是任何东西 图片:python:3.6-jessie#只是一个例子
工作: -职位:job_name 容器:my_container#必须是资源中的容器名称 池: vmImage:“ Ubuntu-16.04” 脚步: -结帐:自我 fetchDepth:1 干净:真实 -脚本:python xxx
这将启动python:3.6-jessie
容器,将代码安装在容器中,并在存储库的根目录中运行python命令。阅读:
https://docs.microsoft.com/en-us/azure/devops/pipelines/yaml-schema?view=azdevops&tabs=schema&viewFallbackFrom=vsts#job
https://docs.microsoft.com/en-us/azure/devops/pipelines/process/container-phases?view=azdevops&tabs=yaml&viewFallbackFrom=vsts
如果您使用的是自己的代理-只需在其上安装python并确保其位于路径中,因此当您在控制台中键入python
时,它应该可以工作(您必须使用脚本任务在这种情况下)。如果要使用python任务,请遵循以下文章:
https://github.com/Microsoft/azure-pipelines-tool-lib/blob/master/docs/overview.md#tool-cache
https://docs.microsoft.com/en-us/azure/devops/pipelines/tasks/tool/use-python-version?view=azdevops