Jenkins结合.net平台之ftp客户端
上一节我们讲解了如何配置ftp服务端,本节我们讲解如何使用winscp搭建ftp客户端,为什么使用winscp而不是filezilla客户端版,前面我们简单说过,这里不再赘述.
下载winscp以后我们点击下一步直到安装完成,这里并没有什么需要注意的.
安装完成以后我们并不打开winscp因为我们需要自动化操作,图形化操作几乎无法完成自动化.我们对着winscp桌面图标右击,选择-属性,然后从属性里打开文件所在位置,你将会看到如下类似内容
这个目录下的WinSCpnet.dll为.net平台编程提供了接口,我们使用此dll编写一个powershell脚本,以实现自动化部署.
我们编写好的powershell脚本内容如下(会提供在github上)
我对以上文件进行的简单注释,以方便理解.
看完以上配置以后,有的读者可能会纳闷这里的用户名,密码是哪来的呢.答案是我们在FileZilla服务器上配置的.下面我们讲一下FileZilla服务器如何配置用户
我们打开FileZilla server点击上方工具栏小人图标
会出现以下窗口
我们点击Add按钮,便可以添加一个用户了.
我们在弹出的添加用户账户框中输入用户名
点击确定以后返回主界面,此时我们勾选,password,便可以添加用户密码
我们点击Shared folders会出现下面对话框
此时右边选中的users中高亮的为刚才创建的typer用户,我们点击上图红色框选的add按钮,为这个用户添加可以操作的文件夹
选择文件夹后,我们勾选以下权限
默认权限为读,如果不勾选写,则无法创建文件和文件夹,也就无法发布了.
然后我们点击左下角ok按钮,完成创建
打开jenkins,我们新建一个名为uploadtoftp的项目,这次在add build step里选择windows powershell,注意你没有安装powershell插件,则无法看到此选项,关于安装powershell Jenkins插件,前面我们讲到过,略过的朋友可以参考一下.
在命令栏里输入以下命令
这个ps1脚本提供在了github上的示例项目里,目录和上图中对应目录相同,在toos目录下.
需要特别说明的是,句首的&符号是必不可少的,它用于指示powershell后面的文本为一个命令,而不是普通的文本,如果没有&符,则后面的内容会被当作文本处理!
点击save,然后执行build now,如果配置没有问题,则会生成一条成功构建记录
点击此构建记录,查看console out控制台输出,内容如下
可以每个文件上传都生成了一个成功日志文件.
打开iis web目录(我们在前面配置的当前上传用户的上传目录)
注.filezilla server和winscp安装程序都提供在git示例项目的tools目录下.