Что является всеми шагами для установки отношений очарования амулета

Предположите, что я создаю очарование, которое имеет класс Java в нем, говорят Helloworld.java. Теперь я хочу скомпилировать и выполнить этот класс при помощи jdk6 от другого очарования.

Может кто-то объяснять меня, что все изменения я должен сделать. В основном я борюсь в создании отношений, следовательно хотят объяснить его.

В моей исходной реализации у меня есть deb пакет в моем очаровании, для этого deb пакета нужен jdk6, и hadoop предварительно установил (сценарий установки проверяет наличие, проверяющее JAVA_HOME и HADOOP_HOME в ПУТИ).

Я полностью застреваю при добавлении отношений (в metadata.yaml и - отношение). Я не ясен во всем этом, как я могу использовать Java и hadoop от различного очарования.

2
задан 13 February 2017 в 15:33

1 ответ

Если Вы захотите использовать jdk, установленный через другое очарование, то необходимо будет создать зависимое очарование ( https://jujucharms.com/docs/2.0/authors-subordinate-services). Зависимое очарование работает в том же экземпляре (контейнер) как очарование, для которого он зависим.

metadata.yaml несколько походил бы на это:

name: 
summary: 
maintainer: 
description: 
tags: [misc]
subordinate: true
requires:
  interface-name:
    interface: interface-name
series: ['trusty']

следующие интерфейсы могут использоваться для Java JDK и Hadoop:

Небольшой пример: Принятие Вас хочет jdk от другого очарования, я буду использовать kafka очарование в качестве примера и использовать jdk, который это устанавливает.

Сборка metadata.yaml

name: layer-jdk-example
summary: <Fill in summary here>
maintainer: maintainer
description: |
  <Multi-line description here>
tags:
  - misc
subordinate: true
requires:
  kafka:
    interface: kafka
    scope: container
series: ['trusty']

layer.yaml

includes: ['layer:basic', 'interface:kafka']

reactive/layer-jdk-example.py

import os
from charms.reactive import when, when_not, set_state


@when_not('layer-jdk-example.installed')
def install_layer_jdk_example():    
    os.getenv("JAVA_HOME")
    # locate / download java file and compile
    # do stuff ... 
    set_state('layer-jdk-example.installed')

, разверните и добавьте отношение к kafka. Надежда это помогает.

2
ответ дан 2 December 2019 в 03:42

Другие вопросы по тегам:

Похожие вопросы: