Ошибка Opsworks при установке композитора

У меня есть настройка AWS Opsworks, в которой мне нужно установить композитор при запуске экземпляра и развертывании приложения, но установка не удалась. Может ли кто-нибудь помочь мне решить это. Я запускаю этот рецепт шеф-повара:

node[:deploy].each do |app_name, deploy|
  script "install_composer" do
    interpreter "bash"
    user "ubuntu"
    cwd "#{deploy[:deploy_to]}/current"
    code <<-EOH
    curl -sS https://getcomposer.org/installer | php
    php composer.phar install --no-dev
    EOH
    only_if { ::File.exists?("#{deploy[:deploy_to]}/current/composer.json") }
  end
end

Я получаю следующие ошибки (где строка 21 — это та, что с script "install_composer" do).

[2017-01-18T11:16:38+00:00] ERROR: Running exception handlers
[2017-01-18T11:16:38+00:00] ERROR: Exception handlers complete
[2017-01-18T11:16:38+00:00] FATAL: Stacktrace dumped to /var/lib/aws/opsworks/cache.stage2/chef-stacktrace.out
[2017-01-18T11:16:38+00:00] ERROR: script[install_composer] (composer::install line 21) had an error: Mixlib::ShellOut::ShellCommandFailed: Expected process to exit with [0], but received '1'
---- Begin output of "bash"  "/tmp/chef-script20170118-1672-16lyp81" ----
STDOUT: All settings correct for using Composer
The installation directory "/srv/www/[app_name]/releases/20170113140255" is not writable
Could not open input file: composer.phar
STDERR: 
---- End output of "bash"  "/tmp/chef-script20170118-1672-16lyp81" ----
Ran "bash"  "/tmp/chef-script20170118-1672-16lyp81" returned 1
[2017-01-18T11:16:38+00:00] FATAL: Chef::Exceptions::ChildConvergeError: Chef run process exited unsuccessfully (exit code 1)

Я использовал комбинацию этих примеров для создания скрипта:

https://github.com/awslabs/opsworks-example-cookbooks/blob/master/phpapp/recipes/appsetup.rb https://github.com/onema/opsworks-chef-cookbooks/blob/master/composer/recipes/install.rb

Установка выполняется на экземплярах Ubuntu. Экземпляр сообщает setup_failed. Если я отключу пользовательские рецепты, экземпляр запустится нормально.

Приложение, имя которого отображается в The installation directory "/srv/www/[app_name]/releases/20170113140255" is not writable, является 4-м приложением в моем списке приложений, но первым, на которое он должен фактически установить композитор (оно содержит composer.json).

Надеюсь, вы можете мне помочь. Спасибо.


person nicolaib    schedule 18.01.2017    source источник


Ответы (1)


Я решил это, когда понял, что в рецепте пользователь должен был быть «root», а не «ubuntu». У пользователя ubuntu просто не было достаточных прав для создания новых папок в папке релиза.

person nicolaib    schedule 18.01.2017