Я пытаюсь развернуть приложение Django с помощью AWS OpsWorks. Я новичок в любой работе DevOps, поэтому у меня серьезные трудности.
Я пытаюсь использовать эту кулинарную книгу для автоматизации развертывания. Мне нужен Python3.4, поэтому я кое-что изменил в поваренной книге. Прямо сейчас во время хука развертывания я получаю сообщение об ошибке из следующего кода:
# install requirements
requirements = Helpers.django_setting(deploy, 'requirements', node)
if requirements
Chef::Log.info("Installing using requirements file: #{requirements}")
pip_cmd = ::File.join(deploy["venv"], 'bin', 'pip')
execute "#{pip_cmd} install --source=#{Dir.tmpdir} -r #{::File.join(deploy[:deploy_to], 'current', requirements)}" do
cwd ::File.join(deploy[:deploy_to], 'current')
user deploy[:user]
group deploy[:group]
environment 'HOME' => ::File.join(deploy[:deploy_to], 'shared')
end
else
Chef::Log.debug("No requirements file found")
end
Сообщение об ошибке:
STDERR: /opt/aws/opsworks/releases/20141216163306_33300020141216163306/vendor/bundle/ruby/2.0.0/gems/mixlib-shellout-1.4.0/lib/mixlib/shellout/unix.rb:147:in `chdir': No such file or directory - /srv/www/django/current (Errno::ENOENT)
Я понимаю, что этот код пытается установить требования из моего файла requirements.txt, но что случилось с каталогом tmp
и каталогом current
? Очевидно, что при развертывании не создается каталог current
. Какова в целом файловая структура кода, загружаемого в OpsWorks из развертывания? Более того, как я могу найти исправление этой ошибки?
Я читал документацию по Chef, OpsWorks, KitchenCI, Berksfile и другим технологиям в течение нескольких дней, просто чувствуя себя заваленным всем в мире DevOps. Я просто хочу, чтобы мое приложение работало!
ИЗМЕНИТЬ
Пользовательский json:
{
"deploy" : {
"django" : {
"django_settings_template" : null,
"django_settings_file" : "settings.py",
"django_collect_static" : "true",
"python_major_version" : "3.4",
"venv_options" : "--python=$(which python3.4) --no-site-packages",
"custom_type" : "django"
}
}
}