问题标签 [webistrano]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
ruby - Capistrano 配方仅在需要时自动运行 deploy:cleanup
我们每天使用 capistrano(实际上是webistrano)进行 20 多次部署,但我们遇到了一个问题,即我们服务器上的磁盘空间充满了旧的部署文件夹。
我不时地运行deploy:cleanup
任务以清除所有部署(它保留最后一个:keep_releases
,当前设置为 30)。我想自动化清理。
一种解决方案是将以下内容添加到配方中,以便在每次部署后自动运行清理:
但是,我不想在每次部署后都这样做,我想将其限制为仅当先前部署的数量达到阈值时,例如 70。有谁知道我该怎么做?
想法:
- Capistrano 是否提供了一个变量来保存先前部署的数量?
- 如果没有,有没有人知道计算它的方法。IE
set :num_releases, <what-can-I-put-here-to-count-previous-deployments>
- 如果没有,有没有人知道计算它的方法。IE
- 有没有办法拉皮条
deploy:cleanup
,所以它使用最小阈值,即如果< :max_releases
以前的部署(:max_releases
与 不同:keep_releases
)则退出。 - 可以使用
except
关键字吗?即类似的东西:except => { :num_releases < 70}
。
ruby-on-rails - webistrano ssh 代理
我有一个使用自己的私钥/公钥对部署的 Webistrano 设置。我想利用:remote_cache
策略的简单性,但不想将私钥复制到部署服务器。
这么久我已经设置了这些任务:
这before :deploy
似乎工作了一半,但我有几个问题:
- 我需要在部署后(以及部署失败后)停止代理。有什么回调我可以挂钩
ssh:stop_agent
任务吗? deploy:update_code
任务失败并出现错误无法解析存储库 'git@git.eenet.ee:base/mms.git' 上的 'master' 的修订版
任何人都可以对此有所了解吗?
drupal - Drupal 站点数据库的最佳部署工具和最佳实践是什么
我被要求帮助一个基于 drupal 7 的以信息/新闻为中心的网站的开发团队,目标是自动化从登台到生产的部署,目前一切都是手动完成的,而且犯了很多错误,因此推迟了正式发布的网站。我非常熟悉 phing 之类的工具来部署使用 zend 框架或 symfony 开发的 PHP 应用程序,并且我对 Capistrano 知之甚少。
经过这里和那里的一些研究,我偶然发现了某些工具,它们的组合可能是自动化部署的一个很好的公式:
- Drush + Capistrano
- 偏头痛
我首先在寻找最佳实践,因为他们的发布日期非常接近,并且我认为他们需要一些时间才能真正掌握 capistrano/drush 以自动部署存储在 drupal 数据库中的文件和设置。
ruby - 耙中止!Bundler 找不到 gem "bundle" 的兼容版本
Bundler 1.1.1 似乎与 rake 不兼容。
我不知道发生了什么,我正在尝试安装 webistrano,当我运行以下命令时
我有:
耙中止!Bundler 找不到 gem "bundle" 的兼容版本:
在 Gemfile 中:
当前捆绑器版本:
此 Gemfile 需要不同版本的 Bundler。也许您需要通过运行 `gem install bundler` 来更新 Bundler?
我真的不知道从这里做什么,大约两周前我刚刚拿起红宝石,我对所有不同的宝石以及它们应该如何工作并不是很熟悉。
其他信息
谢谢你。
capistrano - 使用 Webistrano 检索远程文件
我想要一个能够捆绑一些远程文件并允许 Webistrano 用户将这些文件下载到他们的机器的任务。
Capistrano 具有DSL 下载/获取,它将执行 sftp 或 scp 传输。这适用于 webistrano,但仅将其下载到 Webistrano 服务器。
从这一点开始,我可以做些什么来将此文件返回给用户?
ruby-on-rails - webistrano 替代品?
我们正在为我们的 Rails 部署寻找一个自动化的远程部署系统。Webistrano 有什么好的替代品吗?我们想先试用,然后选择最适合我们要求的。
ruby-on-rails - 为“actionmailer”获取未定义的方法“名称”:安装 Webistrano 时的字符串
当我尝试在 Webistrano 上运行 RAKE 时,出现以下错误:
我不精通 Ruby 和 RoR,但我之前已经安装并玩过很多应用程序,但我找不到问题所在。
我正在运行的命令是:
产生以下内容:
我真的很想知道将来诊断和解决此问题以及类似问题的最佳方法。
当我运行 ruby -v 时,我得到以下信息:
rvm - 捆绑程序安装的权限问题
我正在为我的 rails 应用程序编写 cap/deploy 脚本。在我的服务器上,我使用 RVM 来管理我的 ruby 安装。
我看到的问题是,即使我已将 runner/user/group 设置为正确的用户,我在尝试安装 gems 时却遇到权限错误。
这是我看到的错误:
这是我的出口上限文件:
ruby - Webistrano - Phusion 乘客 - 找不到 rake
我在 Webistrano 中运行部署任务时遇到问题。仅当我使用 Phusion Passenger 从 Nginx 运行 Webistrano 时。
当我使用以下命令运行 Webistano 时,一切正常。
ruby 脚本/服务器 -d -p 3000 -e 生产
但是当从 Phusion Passenger 运行它(使用“passenger-install-nginx-module”编译)并且我想做一个部署(应用程序正在运行)时,我的日志中出现以下错误:
我的捆绑宝石列表:
这是在我的 nginx.conf 中:
我的特定服务器配置:
奇怪的是,使用 WeBrick 运行它只是正常工作,但通过 nginx 的乘客却不是。我不是很喜欢 Ruby,而且我真的不知道我应该从哪里开始寻找。
我从源代码安装 ruby,没有 rvm。
提前致谢!
编辑:
错误来自这一行:
ruby 脚本/运行器 -e 生产'部署 = Deployment.find(1085); Webistrano::Deployer.new(deployment).invoke_task!'
从命令行执行时按方面工作,但通过 nginx/passenger 从应用程序内执行时不工作。
ruby - 在 Debian Squeeze 64 位上安装 Webistrano
我目前正在尝试在新安装的 64 位 debian 挤压机上安装 Webistrano,但我遇到了一些我无法解决的问题。
注意:本机是在 Xen 环境下创建的,我认为这不会影响程序,但提及它似乎很重要。
程序:
信息:
- 红宝石版本:
ruby 1.8.7 (2010-08-16 patchlevel 302) [x86_64-linux]
- Rails 版本:`Rails 2.3.11
- 路径修饰符:
/usr/lib/ruby/1.8:/var/lib/gems/1.8/bin
- Rails 环境:开发
- 已创建数据库
- 我相信 webistrano 的数据库设置是正确的 (user/pass/path_to_sock_file)
所以,这就是我所做的:
我首先为此类安装安装了“基础”包:
然后我一直在下载项目并将其解压缩到 /usr/src 中。在为电子邮件/数据库设置复制和配置文件后(如https://github.com/peritor/webistrano建议的那样),我继续安装项目所需的所有 gem:
此时,命令被卡住并且一个小时没有做任何事情。
我知道如果 Gemfile 很复杂,可能会发生这种情况,但对我来说似乎并非如此。(参见下面的 Gemfile)
所以决定继续,我手动安装了宝石,一旦完成就会给出:
所以我相信一切都应该工作而不必运行:bundle install
这就是我最终尝试使用 rake 创建数据库结构的原因:
根据 rake 错误消息,显然有些宝石没有正确安装,这看起来很奇怪,但我猜他找不到它。
所以我用捆绑工具仔细检查:
我被困在这里,我只是不知道如何继续。我在谷歌上搜索了 mocha 或 gemfile 问题,但没有发现太多相关性。
我希望一切都清楚易懂,因为这是我的第一篇文章。
感谢您的任何回复/提示,如果我设法发展,我会尽量让您了解最新情况!