【问题标题】:Using rsync with Middleman将 rsync 与中间人一起使用
【发布时间】:2016-08-16 17:53:30
【问题描述】:
我是 Middleman 的新手,我想使用 rsync 传输我的文件。我有无密码的 SSH 访问权限,但每次我尝试执行 middleman deploy 时,它都会要求我输入密码。如果我输入 cPanel 密码,它会说它不正确,我无法 rsync。
我正在使用this gem。它说:
activate :deploy do |deploy|
deploy.deploy_method = :rsync
deploy.host = 'www.mysite.com'
deploy.path = '/'
end
我在这里缺少什么?仅供参考,我正在使用 Namecheap,并尝试使用他们的端口。
【问题讨论】:
标签:
web-deployment
rsync
middleman
【解决方案1】:
如果您在服务器上的用户名与您在本地计算机上的用户名不同,您可能需要在config.rb 中设置deploy.user 才能登录。
【解决方案2】:
根据我的经验,最好使用 Rake 设置中间人部署来配置 shell 命令。对我来说,middleman-deploy gem 并没有抽象出足够的复杂性以使其值得配置。
如果您将本地 SSH 环境设置为在不使用密码的情况下连接到您的服务器,这会变得特别快。我设置了一个看起来像这样的rakefile:
# rakefile
server = "webserver.someurl.com"
remote_path = "/srv/html/"
permissions = "--chmod=Du=rwx,Dg=rx,Do=rx,Fu=rw,Fg=r,Fo=r"
task :deploy do
sh "middleman build"
sh "rsync -rDv build/ #{server}:#{remote_path} --delete #{permissions}"
end
然后我可以使用rake deploy 运行我的部署。
如果您想查看的话,我的Boilerplate Middleman 项目中有更多详细信息。