2017-02-06 8 views
0

deb 패키지가 포함 된 매력을 만들고 있는데,이 패키지는 install hook을 사용하여 설치됩니다. 이 신청서의 전제 조건은 javahadoop입니다. 응용 프로그램 isntallation 스크립트는 JAVA_HOMEHADOOP_HOME이 설정되어 있는지 확인합니다.hadoop 및 java와의 주주 매력 관계 만들기

내가이 모든 것을 설치하면 (Java와 hadoop도 설치) 하나의 매력에 잘 작동합니다.

이렇게하면, java (openjdk 7)과 hadoop이되도록 관계를 만들고 싶습니다. 이를 얻기 위하여

어떻게 내 metadata.yaml 파일에

metadata.yaml을의 관계를 정의해야합니다 :

name: asr-rts 
summary: <Fill in summary here> 
maintainer: asr <[email protected]> 
description: | 
    <Multi-line description here> 
tags: 
    # Replace "misc" with one or more whitelisted tags from this list: 
    # https://jujucharms.com/docs/stable/authors-charm-metadata 
    - misc 
subordinate: false 
requires: 
    java: 
    interface: java 
    scope: container 
resources: 
    software: 
    type: file 
    filename: asr-rts-3.7.0.deb 
    description: "One line description that is useful when operators need to push it." 

내가 실패 requiresjava을 추가했습니다.

트리 :

$ tree 
. 
├── config.yaml 
├── hooks 
│   ├── config-changed 
│   ├── install 
│   ├── relation-name-relation-broken 
│   ├── relation-name-relation-changed 
│   ├── relation-name-relation-departed 
│   ├── relation-name-relation-joined 
│   ├── start 
│   ├── stop 
│   └── upgrade-charm 
├── icon.svg 
├── metadata.yaml 
├── README.ex 
├── resources 
│   └── software 
│    └── asr-rts-3.7.0.deb 
└── revision 

답변

0

metadata.yaml가 같이 사용하는 경우 자바 또는 하둡을 설치하지 않습니다 :

requires: 
    java: 
    interface: java 
    scope: container 

이것은 당신의 apllication가 제공하는 응용 프로그램과 관계를 가질 수 정의 Java 인터페이스. 이 상황에서는 오른쪽 jdk가 설치된 하위 매력이 필요합니다.

하둡 파트의 경우 사용자의 매력을 다르게 작성하는 것이 좋습니다. Hadoop은 hadoop charm을 배포하여 컴퓨터에 설치됩니다. 또한 특정 관계를 제공 할 것이지만 응용 프로그램과의 관계를 추가 할 때 실제로 다른 시스템에 Hadoop을 설치할 사람은 없을 것입니다.

이 상황에서 할 수있는 최선의 방법은 hadoop과 관계를 가질 수있는 하위 차일드를 생성하고 해당 머신에도 java를 설치하는 것입니다. 이 경우에는 hadoop 및 java를 사용할 수 있음을 알 수 있습니다.

당신의 metadata.yaml는 다음과 같이 표시됩니다 이것은 하둡 문제 처리됩니다

name: asr-rts 
summary: <Fill in summary here> 
maintainer: asr <[email protected]> 
description: | 
    <Multi-line description here> 
tags: 
    # Replace "misc" with one or more whitelisted tags from this list: 
    # https://jujucharms.com/docs/stable/authors-charm-metadata 
    - misc 
subordinate: true 
requires: 
    hadoop: 
    interface: juju-info 
    scope: container 
resources: 
    software: 
    type: file 
    filename: asr-rts-3.7.0.deb 
    description: "One line description that is useful when operators need to push it." 

. 이제 Java 이슈에 대해 코드에 java를 설치하거나 Java를 설치하고 JAVA_HOME을 설정할 계층을 추가 할 수 있습니다. 이 레이어는 here입니다. 레오를 $ LAYER_PATH에 복제하여 파일에 추가하면됩니다. @when('java.installed') 이벤트를 사용하여 설치를 트리거 할 수 있습니다. openjdk 또는 oracle java의 다른 버전이 필요하면 자신의 config.yaml에있는 java configs를 덮어 쓸 수 있습니다.

+1

답장을 보내 주셔서 감사합니다. 이 일은 궤도를 벗어났다. 지난 번 내가이 일을 할 때, 그것은 모두 나를 위해 일하고 있었다. 시간이되면 귀하의 제안을 시도하겠습니다. 감사! – ASR