我正在维护一个我们维护的网站,我使用 Capistrano 进行部署。我有点继承了这些东西,所以我不是设置一切的人。
当我部署到服务器时,它失败并且没有任何更新。由于文件权限通常是导致失败的罪魁祸首,根据我的经验,我检查了它们中要部署到的文件夹,并且看到了一些我以前从未见过的东西:drwxrwsr-x+
.
我不知道那个结尾加号是什么或者它有什么作用;我以为这是 CentOS 的表示粘性位的方式,但是当我运行 时sudo chmod -t shared
,它仍然存在,所以我想它一定不是粘性位。
对 Linux 有更多了解的人能否告诉我该权限列表中的结尾“+”是什么?
我将 Amazon EC2 用于我的移动应用程序。根据给定时间应用程序的负载,我可能会产生新实例,然后在负载较低时将它们关闭以节省成本。
如何在这样一个动态环境中跟上 Nagios 的配置?当处理托管硬件时,配置文件是可预测的。在这种情况下,需要添加 Nagios、Capistrano 和一堆其他配置文件。Capistrano 需要知道将新构建部署到应用服务器的何处。Nagios 需要知道删除现有实例或添加新实例进行监控。Nagios 还需要知道节点是否被故意关闭,或者主机是否由于错误而关闭。
VPS/动态实例的美妙世界是如何做到的?
nagios configuration-management amazon-ec2 amazon-web-services capistrano
我们有一个 PHP Web 应用程序,我们正在使用 Capistrano 部署到运行 CentOS 5.5 的 LAMP 服务器。Capistrano 使用符号链接管理切换到最新版本(并回滚),因此我们的文档根目录必须指向该符号链接。
不幸的是,我们已经看到,在符号链接更新后的整整 60 秒内,对 PHP 应用程序的 Web 请求仍然指向文档根目录符号链接的先前目标。
我能找到的 PHP 配置中唯一可能与此相关的realpath_cache_ttl
设置是设置,但是它被设置为 120 秒。我在 apache 的配置中找不到任何东西。
我们没有使用 APC。
我什至找对地方了吗?
我在理解如何在 Docker 中利用我现有的基础架构代码时遇到了一些困难。
我有一个 Ruby on Rails 应用程序,它使用 capistrano 推出部署。我想使用这个 capistrano 脚本来创建一个新的 docker 镜像。我可以推出一个部署,然后使用部署到目录部署在现有映像之上,例如精确(因为它与我的目标操作系统匹配)。
这是正确的方法还是我错过了什么?
我发现自己花了很多时间来设置新服务器。我总是拥有完全相同的软件堆栈:
nginx mysql php + php-fpm + xcache memcached munin
我从我的 github 存储库中提取所有配置和 init.d 脚本。
我所有的服务器都运行 Debian。我的第一步通常是 apt-get update 和 apt-get install vim(和其他基本包)。
Capistrano 或 Puppet 是否能够自动化这个过程?如果两者都是,哪一个更适合这份工作?
PS:我更喜欢 Capistrano,因为我对 Ruby 很满意。
我有一个在权限后带有 @ 的文件
-rwxr-xr-x@ 1 riccardotacconi staff 215 14 Sep 14:21 Capfile
Run Code Online (Sandbox Code Playgroud)
你知道它的含义吗。
我正在使用 Capistrano 部署 Rails 应用程序。该 Gemfile 不是副本,尽管它已在 SVN 存储库中提交。很奇怪。
我希望有一个轻量级的命令行实用程序,可以用来从头开始设置服务器。
我喜欢 python 的结构或 ruby 的 capistrano,但从我读到的内容来看,它们更多地用于部署目的,而不是设置 apache、mysql、更新补丁等。
我知道还有其他工具,如 puppet,但我不想为服务器等设置主/从,我希望有一个更轻量级的工具。
如果团队习惯于使用 Capistrano 进行应用程序部署,那么切换到 MCollective 或将其添加到组合中有什么引人注目的好处?该团队已经承担了采用 Puppet 进行系统配置管理的任务,因此存在一次学习多少的问题。
是否可以将 sudo 配置为要求输入 root 密码而不是用户密码?
服务器配置了一个 root 用户和一个具有有限权限的简单用户(我们称他为简单用户),用于部署托管在服务器上的所有应用程序。用户 simple 不在 sudoers 列表中,因此
$ sudo command
Run Code Online (Sandbox Code Playgroud)
不会工作,因为简单的密码不能授予他 root 权限。
有时,我需要通过 Capistrano(一种 ruby 部署工具)运行一些需要 root 访问权限的脚本,并且编写脚本以便以 root 身份登录、运行脚本然后注销非常困难。我希望能够执行以下语句
$ sudo god restart tasks-group
Run Code Online (Sandbox Code Playgroud)
并让 Capistrano 提示我输入 root 密码。目前,Capistrano 提示输入部署用户密码,这显然是一个非管理员帐户。
我有一个非常简单的任务叫做 update_feeds:
desc "Update feeds"
task :update_feeds do
run "cd #{release_path}"
run "script/console production"
run "FeedEntry.update_all"
end
Run Code Online (Sandbox Code Playgroud)
每当我尝试运行此任务时,都会收到以下消息:
[out :: mysite.com] sh: script/console: No such file or directory
Run Code Online (Sandbox Code Playgroud)
我想这是因为我不在正确的目录中,但正在尝试
run "cd ~/user/mysite.com/current"
Run Code Online (Sandbox Code Playgroud)
代替
run "cd #{release_path}"
Run Code Online (Sandbox Code Playgroud)
也失败了。手动(通过 ssh)运行完全相同的命令非常有效。为什么 capistrano 不能正确cd
(更改目录)到站点目录来运行命令?
谢谢!
capistrano ×10
deployment ×2
amazon-ec2 ×1
apache-2.2 ×1
automation ×1
coreutils ×1
docker ×1
fabric ×1
linux ×1
mac-osx ×1
mcollective ×1
nagios ×1
password ×1
permissions ×1
php ×1
puppet ×1
root ×1
ssh ×1
su ×1
sudo ×1
svn ×1