在Azure DevOps Server的代理服务器安装Python环境
Python和Azure DevOps Server
Python是一种计算机程序设计语言。是一种动态的、面向对象的脚本语言,最初主要为系统运维人员编写自动化脚本,在实际应用中,Python已经在前端、后台、测试和大数据分析中广泛使用。
DevOps Server (TFS)作为一个全流程的开发测试运维平台,支持Python语言,当然是必须具备的一个功能。下面介绍如何在DevOps Server中调用和运行Python脚本。
软件下载
由于Azure DevOps Server的流水线运行在代理服务器上,首先需要在你的代理服务器安装Python。
Python 3和Python 2有很大的区别,在安装Python之前,最好与你的运维工程师商量好。下面我们已经Python 3.6.5为例:
软件下载地址:https://www.python.org/downloads/release/python-365/
选择你需要的安装包,我们在这个例子中使用Windows 64为的安装包:

安装过程
在安装过程中,特别需要注意,请选择自定义安装模式。
因为,在默认安装模式中,Python安装程序不会自动设置环境变量,还会将目录安装在用户目录中,这样的配置,对于服务器端程序来说,显然不行。



系统验证
安装完成以后,可以在服务器上,打开命令行创建,运行脚本去验证你的安装是否正确:
py --version
python –version
系统会提示你的python版本号。注意也可以在脚本中使用py这个别名代理python

在Azure DevOps Server上运行python脚本
好了,现在可以在Azure DevOps的流水线中运行你的python任务了。
我们在测试过程中,添加了hello代码
print("hello, world")
import this

糟糕,出现错误!

当我们运行上面定义的python任务时,系统提示下面的错误
Parameter 'toolPath' cannot be null or empty。
分析原因是由于安装Python的过程中,软件自动设置了环境变量,例如在系统环境变量Path中添加了python的路径。而这种变更,TFS的代理程序不能自动获取,必须要通过重启代理,使环境变量生效。下面是重启代理的截图:

重启代理后,再次运行包含了Python脚本的任务,系统提示成功,如下图:

好了,现在开始,运维工程师们,你可以在Azure DevOps上尽情享受自己熟悉的Python脚本了。
微软DevOps MVP 张洪君 http://www.cnblogs.com/danzhang
--End-
在Azure DevOps Server的代理服务器安装Python环境的更多相关文章
- 在macOS苹果电脑上安装Azure DevOps Server(TFS)代理
1. 概述 MacOS是一套运行于苹果Macintosh系列电脑上的操作系统,是首个在商用领域成功的图形用户界面操作系统.Iphone应用软件的开发人员,都使用运行macOS的电脑或mini盒子进行软 ...
- 在Azure DevOps Server (TFS)的流水线中编译和测试Xcode移动应用(iPhone)
概述 Xcode是开发基于苹果macOS系统的桌面应用和移动应用的主要IDE工具.使用Azure DevOps Server (原名TFS)系统中的pipelines流水线功能,可以方便的集成Xcod ...
- 在Azure DevOps Server(TFS)上集成Python环境,实现持续集成和发布
Python和Azure DevOps Server Python是一种计算机程序设计语言.是一种动态的.面向对象的脚本语言,最初主要为系统运维人员编写自动化脚本,在实际应用中,Python已经在前端 ...
- 在Azure DevOps Server (TFS 2019) 流水线传递参数
变量概述 在Azure DevOps Server的流水线中,变量是衔接不同任务和不通代理之间的桥梁,它可以使相对松散.各自独立的任务之间相关影响并共享数据.在流水线中使用变量,可以在各任务之间相互调 ...
- 在Azure DevOps Server中运行基于Spring Boot和Consul的微服务项目单元测试
1 概述 谈到微服务架构体系,绕不开服务发现这个功能.服务发现机制是简化微服务配置.实现容灾.水平扩缩容.提高运维效率的重要方式.在服务发现工具中,Consul在部署和使用方面与容器结合的天衣无缝,成 ...
- 在Azure DevOps Server 中提交Maven 依赖包(mvn deploy-file)
Contents 1. 概述 2. 必要准备 安装Java 下载安装Maven 3. 服务器配置 新建连接源 4. 客户端配置 5. 上传maven包文件 6. 常见问题 Maven最新版本3.6.2 ...
- 为Azure DevOps Server (TFS) 配置安全访问(HTTPS with SSL)
Contents 1. 概述 2. HTTP和HTTS比较 支持HTTP和HTTPS两种方式 要求所有连接使用HTTPS 优点: 缺点: 3. 为Azure DevOps Server 配置安全访问 ...
- 微软 Azure DevOps Server 2019 Update 1 (TFS 2019.1)
1.概述 微软在2019年5月发布Azure DevOps Server 2019后不到2个月的时间里,就快速准备好了第一个升级包(2019 Update 1),并计划在几周后发布正式版本.也许你还没 ...
- 在Azure DevOps Server (TFS)中实现VUE项目的自动打包
概述 Vue.js(读音 /vjuː/, 类似于 view)是一个构建数据驱动的 web 界面的渐进式框架.由于它在数据绑定.页面展示和使用简单方面有很大的优势,逐渐被越来越多的前端开发团队使用.本文 ...
随机推荐
- Balls(扔鸡蛋问题)
4554 BallsThe classic Two Glass Balls brain-teaser is often posed as:“Given two identical glass sphe ...
- 2017-11-03 Fr OCT 球体积的导数为球表面积
上学期学立体几何时注意到这一点.去问林老师,没听明白(写完笔记后发现林老师讲得是对的,惭愧).今天下午考历史的时候突然想起来. 除了球体积的导数为球表面积外,还注意到圆体积的导数为圆周长.今天中午看w ...
- Hibernate 再接触 一级缓存 二级缓存 查询缓存
缓存 就是把本来应该放在硬盘里的东西放在内存里 将来存内存里读 一级缓存: session缓存 二级缓存: sessionFactory级别的 (适合经常访问,数据量有限,改动不大) 很多的se ...
- (转).net反编译工具JustDecompile
开源的反编译工具 JustDecompile https://www.telerik.com/blogs/justdecompile-engine-becomes-open-source https ...
- 小强学渲染之OpenGL状态机理解
状态机是理论上的一种机器,呃这个说法非常非常的抽象.通俗一点理解,状态机描述了一个对象在其生命周期内所经历的各种状态,状态间的转变,发生转变的动因,条件及转变中所执行的活动.或者说,状态机是一种行为, ...
- 100-days: fourteen
Title: Face mask craze(面膜热) creates Korean(韩国) (a) billionaire with Goldman(高盛集团) backing face mask ...
- 134. Gas Station加油站
[抄题]: There are N gas stations along a circular route, where the amount of gas at station i is gas[i ...
- python脚本批量复制文件
1.拷贝一个目录下的所有文件及文件夹到另一个目录下(递归拷贝) # cat /home/test.py #!/usr/bin/python import os import shutil def ...
- php redis pipeline用法
$redis_110 = Redis::connection('redis_110');$redis_85 = Redis::connection('redis_85');$zadd_key_arr ...
- spring整合kafka(配置文件方式 消费者)
Kafka官方文档有 https://docs.spring.io/spring-kafka/reference/htmlsingle/ 这里是配置文件实现的方式 先引入依赖 <depend ...