2013-11-15 5 views
2

내가/OpsWorks를 요리사에 새로운 오전 우분투 12.04 인스턴스에서 장고 1.6를 설치하는 간단한 조리법을 시도하고 사용 방법 :Opsworks와 파이썬 LWRP/요리사 (11)

python_pip "Django" do 
    version "1.6" 
    action :install 
end 

내 업체/pip.rb을

DEBUG: Loading cookbook python's providers from /opt/aws/opsworks/releases/20131107153140_213/site-cookbooks/python/providers/pip.rb 

DEBUG: Loaded contents of /opt/aws/opsworks/releases/20131107153140_213/site-cookbooks/python/providers/pip.rb into a provider named python_pip defined in Chef::Provider::PythonPip 

DEBUG: Loading cookbook python's providers from /opt/aws/opsworks/releases/20131107153140_213/site-cookbooks/python/providers/virtualenv.rb 

DEBUG: Loaded contents of /opt/aws/opsworks/releases/20131107153140_213/site-cookbooks/python/providers/virtualenv.rb into a provider named python_virtualenv defined in Chef::Provider::PythonVirtualenv 

DEBUG: Loading cookbook python's providers from /opt/aws/opsworks/releases/20131107153140_213/site-cookbooks/python/providers/pip.rb 

INFO: PythonPip light-weight provider already initialized -- overriding! 

DEBUG: Loaded contents of /opt/aws/opsworks/releases/20131107153140_213/site-cookbooks/python/providers/pip.rb into a provider named python_pip defined in Chef::Provider::PythonPip 

DEBUG: Loading cookbook python's providers from /opt/aws/opsworks/releases/20131107153140_213/site-cookbooks/python/providers/virtualenv.rb 

INFO: PythonVirtualenv light-weight provider already initialized -- overriding! 

을하지만 python_pip를 사용하려고하면 오류가 나타납니다 :와 같다 virtualenv.rb 제공 업체는 /, 외면 상으로, 이미로드 된 것을 무시하는

ERROR: Caught exception while compiling OpsWorks custom run list: NameError - Cannot find a resource for python_pip on ubuntu version 12.04 

depends "python"을 metadata.rb에 추가하려고 시도했지만 도움이되지 않았습니다. 모든 제안을 부탁드립니다. 내 요리 책 '파이썬'의

내 디렉토리 구조 : 당신이 python_pip LWRP를 사용하기 전에

. 
├── python 
│   ├── attributes 
│   │   └── default.rb 
│   ├── metadata.rb 
│   ├── providers 
│   │   ├── pip.rb 
│   │   └── virtualenv.rb 
│   ├── recipes 
│   │   ├── default.rb 
│   │   ├── django.rb 
│   │   ├── package.rb 
│   │   ├── pip.rb 
│   │   ├── source.rb 
│   │   └── virtualenv.rb 
│   ├── specs 
│   │   └── configure_spec.rb 
│   └── templates 
│    └── default 
└── README.md 
+0

해결 방법을 찾으셨습니까? 정확한 답을 표시하는 것을 잊지 마십시오! :) – sethvargo

답변

1

파이썬 요리 책이 아직 필요하지 않으면 수정하지 마십시오. 귀하의 요리 책 디렉토리는 최소한 다음과 같아야합니다 :

cookbooks/ 
    ├─python/ <clone of https://github.com/poise/python> 
    | 
    └─application_cookbook/ 
     ├─recipes/ 
     | └─default.rb <containing the resource declaration you have in the question> 
     └─metadata.rb <with a `depends "python"` statement in it> 

그건 그렇습니다. 파이썬 요리 책을 수정할 필요가 없습니다. 이제 실행 목록을 [ "python", "application_cookbook" ]으로 설정하면됩니다.

2

, 당신은 당신의 자신의 조리법 내에서 실행 목록 또는 include_recipe "python"에서 파이썬을 가지고 중 하나가 필요합니다.

홈 디렉토리가 이미 설정된 dj이라는 사용자가 있다고 가정합니다.

# Note that the recipe will install Python, setuptools and pip 
include_recipe "python" 


# Create a virtual environment 
python_virtualenv '/home/dj/virtenv' do 
    interpreter "python2.7" 
    owner 'dj' 
    group 'dj' 
    action :create 
end 

# Install Django to a virtualenv 
python_pip "django" do 
    virtualenv '/home/dj/virtenv' 
    user 'dj' 
    group 'dj' 
    action :install 
end 
+0

응답 해 주셔서 감사합니다. 나는 이것을 시도하고 그것을 작동시키지 못했습니다. 이 요리법과 함께 내 요리 책에 'providers'폴더 (providers/virtualenv.rb, providers/pip.rb)를 사용하고 실행 목록에 추가해야 할 수도 있습니까? – alphanumeric0

+0

+ 아니요, '제공자'를 직접 설정할 필요는 없습니다. 그것들은'python' 요리 책에 의해 제공됩니다. 현재 갖고있는 디렉토리 구조를 원래 질문에 넣을 수 있습니까? –