Articles of capistrano

amazon web services中的Capistrano问题

我在Ubuntu AWS的实例下运行Rails + Passenger。 现在我试图部署Capistrano,我已经做了我的git仓库(并上传到服务器)和我的deploy.rb文件(与capify。)。 我已经运行了cap deploy:setup和cap deploy:check成功。 但现在当我尝试运行cap deploy失败,我得到这个错误: * executing `deploy:migrations' * executing `deploy:update_code' updating the cached checkout on all servers executing locally: "git ls-remote [email protected]:git/proyecto.git master" command finished in 1651ms * executing "if [ -d /var/www/proyecto.flasheves.com/shared/cached-copy ]; then cd /var/www/proyecto.flasheves.com/shared/cached-copy && git fetch origin && git reset –hard ef3ba849cd27aea4c2f6d372f47c027f495b8a4f && git clean […]

允许开发人员部署到服务器,但不能login(ssh)到服务器

这可能是不可能的,但这是我想要的: 允许开发人员通过Capistranologin到服务器,以便他可以部署更改。 例如cap deploy 不使用Capistrano时,请勿让开发人员login服务器。 例如ssh user@server 更多信息:我们的开发人员使用Capistrano部署到我们的服务器。 运行cap deploy或类似的命令Capistrano使用传递给开发人员的密钥login到服务器(ssh)并运行一些命令。 我想这样做的理由:安全和厨师正在用来pipe理服务器(不希望在厨师之外进行更改)。 这可能吗?

允许使用“部署”用户进行编写

我目前对厨师和Capistrano是新手。 我正在使用Capistrano 3.x版来部署Rails 4应用程序。 我已经用厨师独奏成功引导了一个服务器。 我正在使用的一本食谱是Nginx。 回到我的简单的Rails 4应用程序,我试图运行这个命令来检查我的部署的状态: cap production deploy:check 但是,它会抛出一些错误: DEBUG [05e580a4] Command: /usr/bin/env mkdir -pv /var/www/shared /var/www/releases DEBUG [05e580a4] mkdir: cannot create directory `/var/www': Permission denied DEBUG [05e580a4] mkdir: cannot create directory `/var/www': Permission denied 我使用Capistrano的deploy用户,并在我的厨师节点configuration,我speficied deploy用户。 我也可以使用deploy用户login我的实例。 有没有适当的方法来解决厨师或卡皮斯特拉诺的权限?

Capistrano 2 update_code任务不使用sudo

我正在使用Capistrano 2(.15.4)部署rails应用程序(我知道,试图达到3,但尚未完成)。 我们有一个新的服务器环境正在build立,IT人员更倾向于通过我们自己的用户访问,并要求用户部署。 我一直在testing使用: set :use_sudo, true set :sudo, "sudo -u <user>" 它看起来像sudo正在为使用sudo命令的手动定义的任务工作: cap deploy:restart … triggering load callbacks * 2014-09-01 11:34:28 executing `deploy:restart' * executing "sudo -u <user> touch /path/to/deploy/current/tmp/restart.txt" servers: ["hostname.com"] … 请注意, deploy:restartfunction被手动定义为: cmd = "touch #{current_path}/tmp/restart.txt" sudo cmd 但在部署时,它看起来不像sudo为自动update_code任务启动: cap deploy … triggering load callbacks * 2014-09-01 10:14:32 executing `deploy' * […]

我可以在这个用例中使用capistrano吗?

我想同时在许多服务器上运行命令。 我知道mcollective,capistrano,clusterssh和pconsole是快速pipe理许多服务器的工具。 示例命令: du /var/log | sort -n | tail -5 我已经研究过MCollective,但是这太难了,不能直接运行SSH命令。 因此,pconsole和clustersh似乎更适合我。 我知道,capistrano是一个非常受欢迎的工具。 不过不知道,在这样的使用情况下会好吗? 例如 testing监视软件是否通过bash命令安装 百胜更新木偶 在备份软件的configuration文件中进行sed-replace。 我关心在运行SSH命令后得到一个结果,所以不仅仅是运行SSH命令,而是再次听不到。 这将有助于快速检查许多服务器上的事情。 我知道我可以使用Puppet来更改服务器上的特定内容,但报告统计信息并不是很好,例如哪些目录在服务器上使用的空间最多。

卡皮斯特拉诺安全

我们在一些系统中使用Capistrano作为部署系统。 我们所说的新系统pipe理员说我们的设置非常危险,我想知道如何解决这个问题。 我们有一个名为“foo”的部署用户,我们用它来部署“: cap deploy 这个foo用户可以重新启动apache,清理tmp文件等等。 问题是,如果有人窃取我们的私人ssh密钥,并作为foo用户访问我们的机器,能够取下网站。 ssh foo@server <– Able to shutdown apache! 我们如何解决这个安全漏洞? 还有其他解决scheme需要考虑吗?

Capistrano部署restW3总caching缩小URL重写

我正在使用Amazon CloudFront在EC2上的Linux上运行WordPress 3.2.1。 大多数caching/ CDN服务工作正常。 但是,缩小URL重写不起作用。 我在Webpipe理中遇到这个错误: 它显示Minify URL重写不起作用。 如果使用apache,请validation服务器configuration是否允许.htaccess或者如果使用nginxvalidationconfiguration中包含所有configuration文件。 这是我们在Apache错误日志中看到的: [Wed Dec 14 19:11:10 2011] [error] script '/var/www/sites/wboard/current/wordpress/wp-content/w3tc/min/index.php' not found or unable to stat 我们启用了AllowOverride。 这是怎么回事? 编辑:这可能与我们的Capistrano部署有关: http : //wordpress.org/support/topic/plugin-w3-total-cache-plugin-loses-minify-settings-on-deloyment 我们需要打破哪些文件才能完成这项工作? 有一个很好的capistrano食谱/解决方法?

如何logging由Capistrano运行在远程服务器上的所有命令

我正在多个服务器上使用Capistrano进行部署。 在部署期间loggingCapistrano在远程服务器上执行的所有命令的最佳方法是什么?

允许一个组在CentOS中的某个目录下运行所有​​文件

我正在尝试使用Capistrano为我的Rails应用程序设置自动部署。 Capistrano将需要运行sudo kill ,并且通过编辑/etc/sudoers文件(当然是通过visudo ),在没有它的情况下要求input密码,然后添加以下行: %deployers ALL= NOPASSWD: /bin/kill 但是,由于我使用RVM单用户设置, bundle可执行文件位于/home/peddiemarketdeploy/.rvm/gems/ruby-1.9.3-p194/bin/bundle ,因此,同样,我添加 %deployers ALL= NOPASSWD: /home/peddiemarketdeploy/.rvm/gems/* 在那个文件中,并尝试运行sudo bundle ,但sudo仍然要求我input密码。 由于RVM以目录名称使用版本号,所以我不想将path硬编码到/etc/sudoers 。 任何想法如何编辑我的sudoers文件,使其工作? 谢谢!

保护使用Capistrano for Git的远程LAMP服务器部署

我正在使用Capistrano将我的Github repo部署到Media Temple Grid服务器。 为了做到这一点,我设置了以下内容: 使用SSH密钥启用login到远程服务器(按照本指南 ) 在远程服务器上创build一个SSH密钥,并将SSH密钥添加到Github(这样我就可以从Github中获取/克隆一个repo) 使用set :use_sudo, false和default_run_options[:pty] = true设置我的Capistrano deploy.rb文件,因为我使用SSH密钥进行连接和部署,并希望尽可能安全 我想知道这是否是: 安全 :我的工作stream程安全吗? 常规 :这是build立这个工作stream程的正统方法吗? 不幸的是,我无法使用Grid Server的SSH代理转发function。 我知道这比在远程服务器上创buildSSH密钥并与Github共享它们更容易(也可能更安全)。