EC2 - 无法部署为“bitnami”用户

时间:2013-05-02 13:49:16

标签: ruby-on-rails ruby amazon-ec2 capistrano bitnami

我正在使用Capistrano将Rails应用程序部署到Amazon EC2。 在部署文件中,我有以下凭据连接到Amazon EC2:

set :user, "bitnami"
#set :user, "root"
server "ec2-XX-XXX-XXX-XX.compute-1.amazonaws.com", :app, :web, :db, :primary => true
ssh_options[:keys] = ["/Users/ada/my_amazon_ec2.pem"]

当我运行cap deploy:setupcap deploy:check时,我得到了以下信息:

The following dependencies failed. Please check them and try again:
--> You do not have permissions to write to `/www/myapp'. (ec2-XX-XXX-XXX-XX.compute-1.amazonaws.com)
--> You do not have permissions to write to `/www/myapp/releases'. (ec2-XX-XXX-XXX-XX.compute-1.amazonaws.com)

怎么可能?我可以通过SSH连接到EC2作为用户 bitnami ,但当我尝试用户 root 时,我收到的消息是我应该使用 bitnami 用户登录,连接已关闭。

如果我尝试更改部署文件,请为 root 更改 bitnami 用户,整个部署过程都可以,但是当我通过SSH登录时(如 bitnami 用户)到EC2,我没有看到任何应该部署的文件,最终目录只是空的。

这种情况有什么问题?

非常感谢

4 个答案:

答案 0 :(得分:1)

sudo chown -R <user> <folder path>

做了这个伎俩。用户不是文件夹的所有者,因此上限检查是错误。

答案 1 :(得分:0)

您是否已创建/ www / myapp目录并且bitnami用户是否具有写入权限?

假设您的应用程序名为“myapp123”,并且您希望将其部署到/ opt / bitnami / apps / myapp123。

创建应用程序目录并设置适当的权限:

mkdir -p /opt/bitnami/apps/myapp123
chown -R bitnami /opt/bitnami/apps/myapp123

将以下选项添加到部署配置文件中:

set :application, "myapp123"
set :deploy_to, "/opt/bitnami/apps/#{application}"

你打算使用Phussion Passenger吗?在这种情况下,您还需要将以下内容添加到Capistrano配置中:

namespace :deploy do
  task :start do ; end
  task :stop do ; end
  task :restart, :roles => :app, :except => { :no_release => true } do
    run "#{try_sudo} touch #{File.join(current_path,'tmp','restart.txt')}"
  end
end

你使用哪种BitNami AMI?

答案 2 :(得分:0)

Bitnami堆栈通常在

处有默认的webroot

/opt/bitnami/apache2/htdocs

尝试写入该文件夹(使用bitnami用户)。

如果您想将webroot更改为其他目录,则需要创建目录并设置适当的权限,并告诉apache您已更改了Web根目录(click for more on how to do that)。

如果您在创建目录或应用权限时遇到问题,请在命令前添加sudo sudo mkdir www,如<{1}}。

答案 3 :(得分:0)

你有这个:

ssh_options[:auth_methods] = ["publickey"]