AWS OpsWorks를 사용하여 장고 응용 프로그램을 배포하려고합니다. 나는 모든 종류의 개발 작업에 새로운 브랜드가되어 상당한 어려움을 겪고 있습니다.OpsWorks 장고 배포
배포를 자동화하기 위해 this cookbook을 사용하려고합니다. 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로 가져 오는 코드와 일반적으로 비슷한 파일 구조는 무엇입니까? 또한이 오류에 대한 해결책을 찾으려면 어떻게해야합니까?
저는 요리사, 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"
}
}
}
조금 더 파고 나면 코드가 SCM에 배포되지 않는 것으로 보입니다. 내가 사용하고있는 요리 책은이 repo에서 찾을 수 있습니다 : https://github.com/alecpm/opsworks-web-python/tree/master/opsworks_deploy_python'python_base_deploy.rb' 정의에서 196 행의 메시지가 나타납니다. 어떤 scm 저장소도 설정되어 있지 않습니다 ... 그러나 저는 OpsWorks 콘솔에서 Bitbucket 저장소를 설정하고 deploy [: my_app] [: scm]을 올바르게 설정하고 있습니다. – rfj001
@ rfj001 그러면 배포 설정이 github 페이지의 사용 예제와 비슷합니까? 게시 할 수 있습니까? –
스택에 보내는 사용자 정의 배치 JSON을 의미합니까? – rfj001