2017-02-06 5 views
0

debパッケージを含む魅力を作りました。これはinstall hookを使ってインストールされます。このアプリケーションの前提条件はjavahadoopです。アプリケーションisntallationスクリプトは、JAVA_HOMEHADOOP_HOMEが設定されているかどうかをチェックします。hadoopとjavaでjujuの魅力の関係を作成する

私はこれを(Javaとhadoopをインストールしても)1つの魅力に入れればうまく動作します。

このようにする代わりに、java(openjdk 7)とhadoopを取得するためのリレーションシップを作成します。私は失敗したrequiresとしてjavaを追加しようとした

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." 

:私は私のmetadata.yamlファイル

metadata.yamlで関係を定義する必要がどのようにこれを取得するために

ツリー:

$ 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それがこのように使用されている場合、JavaやHadoopのをインストールしません。

requires: 
    java: 
    interface: java 
    scope: container 

これはあなたのapllicationが提供しているアプリケーションとの関係を持つことができることを規定しJavaインタフェースこのような状況では、適切なJDKがインストールされている下位の魅力が必要になります。

Hadoopの部分では、あなたの魅力を別に書くことをお勧めします。 Hadoopは、hadoop charmをデプロイすることによってマシンにインストールされます。特定のリレーションシップを提供しますが、アプリケーションにリレーションシップを追加すると、Hadoopを別のマシンに実際にインストールするものはありません。

この状況でできることは、あなたのhadoopとの関係を持つことができる下位レベルのチャームを作成し、そのマシンにjavaもインストールすることです。その場合、hadoop en 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." 

これは、Hadoopの問題の世話をします。 Javaの問題については、あなたのコードにjavaをインストールするか、Javaをインストールし、JAVA_HOMEを設定するレイヤーを追加することができます。この層はhereです。レポを$ LAYER_PATHにクローンしてファイルに追加するだけです。 @when('java.installed')イベントを使用してインストールを開始できます。別のバージョンのopenjdkまたはoracle javaが必要な場合は、自分でconfig.yamlのjava configsを上書きすることができます。

+1

ご返信ありがとうございます。このことはトラックから外れました。前回私がこれに取り組んだとき、それはすべて私のために働いていました。私は時間を得るときにあなたの提案を試みます。ありがとう! – ASR

関連する問題