Articles of capistrano

rvmsudo工头出口新贵没有要求密码

我的capistrano deploy.rb在Ubuntu 10.04上有一个用于Rails应用程序的工头导出命令。所以,在部署时,我想将工头导出为新贵的脚本。 但是这样做,命令rvmsudo foreman export …要求根密码,我什么都不能做。 谷歌search了很多,并尝试了各种调整,但没有奏效。 * executing `foreman:export' * executing "cd /home/deploy/zappy/releases/20111019175422 && rvmsudo foreman export upstart /etc/init -a zappy -u deploy -f ./Procfile.production -c worker=1 redis=1 -l /home/deploy/zappy/releases/20111019175422/log/foreman" servers: ["173.255.205.237"] [173.255.205.237] executing command ** [out :: 173.255.205.237] [sudo] password for deploy: 有什么办法可以做到无密码的方式?

WordPress – Capistrano权限问题

我正在用Capistrano和Composerpipe理WordPress安装。 一切都安装好,运行良好,在我的ngix / php-fpm设置上相当快。 不过,当我试图从pipe理区域更新插件时,我遇到了一个问题,WordPress要求inputFTP凭据。 一个快速谷歌,它清楚这是因为WordPress可以访问我的服务器上的Web服务。 我SSD到我的服务器,并做了以下几点: ps aux | grep 'nginx' nginx正在www-data用户下运行。 这很正常。 这是我的问题:使用Capistrano你创build一个deploy用户,并给他们无密码的sudo特权。 好的。 我做到了。 Capistrano运作良好。 问题是文件必须由这个deploy用户拥有。 为了做到这一点,我只是像这样: sudo chown -R deploy:www-data /srv/www/mysite.com 之后,我想确保所有新的文件和目录inheritance组的所有权: sudo chmod g+s /srv/www/mysite.com 这样,当capistrano添加新的文件,他们都inheritance了正确的权限。 我还将deploy用户添加到www-data组中,以避免我使用WordPress所遇到的问题。 我通过运行groups deploy确认这一点 当我recursion地将该目录chown到www-data:www-data一切工作正常。 我可以更新和从后端下载插件,但我不能部署与Capistrano。 我需要做什么nginx访问我的WordPress的安装和解决这个问题? 谢谢。

Capistrano错误“bundle:not found”

我试图在VPS上部署octopress,但得到这个错误bundle: not found但捆绑安装! 完全错误。 $ cap deploy * 2013-07-20 18:08:55 executing `deploy' * 2013-07-20 18:08:55 executing `deploy:update' ** transaction: start * 2013-07-20 18:08:55 executing `deploy:update_code' updating the cached checkout on all servers executing locally: "git ls-remote [email protected]:website.git HEAD" command finished in 8348ms * executing "if [ -d /home/deploy/ruby_apps/website/shared/cached-copy ]; then cd /home/deploy/ruby_apps/website/shared/cached-copy && git fetch […]

Capistrano仍然维持?

据他的博客,Capistrano的主要作者在2009年停止维护它 。 旧的网站capify.org现在redirect到Github上的文档 ,虽然看起来通过CHANGELOG还有一些贡献被接受,那么将Capistrano分类为一个活跃的项目是否公平? 相反,如果运作良好,而且仍然稳定,是否有理由放弃呢?

NGINX权限:“sudo nginx”vs“sudo服务nginx开始”

我正在用nginx 1.6.2和Unicorn做一个capistrano安装程序。 但在我目前的设置下,nginx不会创build我已经写在con文件中的服务器。 我确定其权限错误为我的用户的目录,因为这是conf文件位于两个rails应用程序目录下。 我的nginx文件如下: user mjp nginx; worker_processes 1; error_log /var/log/nginx/error.log warn; pid /var/run/nginx.pid; events { worker_connections 1024; } http { include /etc/nginx/mime.types; default_type application/octet-stream; log_format main '$remote_addr – $remote_user [$time_local] "$request" ' '$status $body_bytes_sent "$http_referer" ' '"$http_user_agent" "$http_x_forwarded_for"'; access_log /var/log/nginx/access.log main; sendfile on; #tcp_nopush on; keepalive_timeout 65; #gzip on; include /etc/nginx/conf.d/*.conf; include /etc/nginx/sites-enabled/*; […]

如何创build一个Capistrano任务来将生产备份导入本地开发数据库?

我正在尝试使用类似于heroku db:pullfunction的Capistrano任务,如果您熟悉的话。 我有一个远程服务器。 在该服务器上,我在/path/db_backups/文件夹中有一堆备份。 在那个文件夹中,每天都有一个数据库备份。 我想要做的就是 在客户端机器上的/ path / to / backups_dir / 解开它在本地。 导入到本地的MySQL数据库。 任何人都知道处理这个好方法? 有没有我不知道的gem? 有你喜欢的脚本吗?

当通过Capistrano重新启动瘦变化不拾起

在我的deploy.rb我有以下任务: namespace :deploy do task :start, :roles => :app do run "cd #{current_path} && bundle exec thin start -C config/thin.yml" end task :stop, :roles => :app do run "cd #{current_path} && bundle exec thin stop -C config/thin.yml" end task :restart, :roles => :app do run "cd #{current_path} && bundle exec thin restart -C config/thin.yml" end […]

利用Cisco AnyConnect VPN连接,capistrano部署脚本失败

我是capistrano的新手,尝试运行脚本将源代码部署到与VPN连接的QA服务器。 testing脚本在我的'Git bash'壳在Windows机器。 我在连接github时没有问题,如下所示。 $ ssh -T [email protected] 嗨jkjunguser! 您已成功通过身份validation,但GitHub不提供sh 访问权限 使用Cisco ANyConnect v2.5build立与客户端networking的VPN连接。 testing从本地shell到目标服务器的SSH连接,并成功。 还testing了目标服务器的github连接,并没有问题。 但是,当我运行部署脚本,我得到“错误读取来自authentication套接字的响应长度。” 错误如下。 $ cap qa部署 *?[32m2013-05-30 13:53:16执行`qa'?[0m *?[32m2013-05-30 13:53:16执行`deploy'?[0m *?[32m2013-05-30 13:53:16执行`deploy:update'?[0m **交易:开始 *?[32m2013-05-30 13:53:16执行`deploy:update_code'?[0m 更新所有服务器上的caching结帐 ?[33本地执行:“git ls-remote [email protected]:cleanShot / client-ph ase2.git master“?[0m ?[2; 37?命令在7293ms?完成? *?[33mexecuting“if [-d /home/web/qa.client.com/shared/cached-copy];然后 cd /home/web/qa.client.com/shared/cached-copy && git fetch -q origin && git fet ch –tags […]

在多个linux服务器之间共享ENVvariables

我需要能够在多个linux服务器之间共享ENVvariables。 这些variables被我的应用程序使用。 我想保持这些variables在所有服务器之间同步。 应用程序部署目前由Capistrano处理。 不幸的是,我不能简单地将variables存储在cap recipe中,因为它们包含敏感数据,我不想将它们提交给未encryption的repos。 我的一个想法是使用git-encrypt创build一个encryption的回购站,将数据存储在那里,然后以某种方式通过Capistrano或Chef在应用程序部署过程中检出回购站,解密并在每个应用程序服务器中获取ENVvariables。 我想知道是否有其他人之前解决了这个问题。

Ansible / Capistrano用固定的sudo命令(“sudo su – ”)

我必须pipe理一些半pipe理的服务器(monstly CentOS 6),我们只允许以普通用户身份login,然后执行“sudo su – ”并键入常规用户密码,然后在根shell中运行命令。 我一直在寻找如何使用一些configurationpipe理工具(ansible,capistrano等)来做到这一点,但没有发现任何东西。 任何类似的情况下的经验? 我必须说,我们不能/允许更改允许的sudo命令,所以这些工具必须使用“sudo su – ”并运行相应的命令。 此外,我们不允许在机器上安装任何软件(是的,这是一个非常严格的客户端),所以所有的命令都必须使用ssh和passwordauthentication来运行。 提前感谢和感谢。