我想知道如何使用ftp和/或ssh部署我的Web项目。
我们目前有一个自制的部署系统,可以处理这个,但我想切换到Jenkins。
我知道有发布插件,它们在上传构建工件时效果很好。但他们无法删除或移动文件。
您对我的问题有任何提示,提示或想法吗?
答案 0 :(得分:3)
Publish Over SSH插件使您可以使用ssh将命令发送到远程服务器。这非常有效,我们还在部署新版本之前执行一些移动/删除文件,并且使用这种方法没有任何问题。
答案 1 :(得分:1)
处理删除和移动项目的最简单方法是在使用其中一个“Publish over”扩展程序部署新版本之前删除服务器上的所有内容。我会说这是了解部署版本的唯一方法就是你想要的版本。如果您想要更多的版本控制系统样式行为,您需要使用版本控制系统或可能覆盖其中一部分的rsync。
如果您的要求非常具体,您可以开发自己的约定来标记删除,并让它们由单独的脚本执行(就像使用Liquibase或类似的数据库更改一样)。
顺便说一句:我建议不要在每次构建后使用'publish over ...'扩展程序自动更新您的实时网站。如果我们真的希望自动更新实时网站,我们依靠Promoted Builds Plugin使其几乎完全自动化,但增加了一些安全性。
答案 2 :(得分:0)
我想出了一个简单的解决方案来删除已删除的文件,并使用简单的lftp镜像脚本将更改作为Jenkins中的构建操作上载到远程FTP服务器。 Lftp Manual Page
简而言之,您在jenkins用户目录〜/ .netrc 中创建一个配置文件,并使用您的FTP凭据填充它。
machine ftp.remote-host.com
login mySuperSweetUsername
password mySuperSweetPassword
创建一个lftp脚本 deploy.lftp 并将其放在.git repo的根目录
set ftp:list-options -a
set cmd:fail-exit true
open ftp.remote-host.com
mirror --reverse --verbose --delete --exclude .git/ --exclude deploy.lftp --ignore-time --recursion=always
然后添加“Exec Shell”构建操作以在脚本上执行lftp。
lftp -f deploy.lftp
lftp脚本将
我写了一篇文章,解释了我只能通过FTP访问WordPress网站的keep FTP in sync with Git。本文介绍了如何从FTP同步到Git以及如何使用Jenkins构建和部署回FTP。这种方法并不完美,但可行。它只上传更改的文件,并从主机上删除已从git repo中删除的文件(反之亦然)