Разверните локальный пакет на существующей машине

В моей текущей модели амулета у меня есть одна машина с несколькими контейнерами

Machine    State 
14         started 
14/lxd/2   started 
14/lxd/20  started 

Я хочу развернуть локальный пакет с 2 локальным очарованием. Мой bundle.yaml похож на это:

services:
  elasticsearch:
    charm: /home/user/charms/trusty/elasticsearch
    num_units: 1
    to: ['lxd:14']
  metricbeat:
    charm: /home/user/charms/trusty/metricbeat
series: trusty
relations:
  - - "elasticsearch:client"
    - "metricbeat:elasticsearch"

Теперь я хочу свое elasticsearch очарование в контейнере LXD на машине 14, но когда я работаю juju deploy ~/elastic5-bundle Я получаю следующую ошибку:

ERROR the provided bundle has the following errors:
placement "lxd:14" refers to a machine not defined in this bundle

Но когда я добавляю машину 14 в моем bundle.yaml, новая машина создается вместо очарования, развертываемого на машине 14. Какое-либо возможное решение развернуть очарование в пакете к существующей машине?

1
задан 14 December 2016 в 19:22

2 ответа

В последней версии (2.3) Амулета я заметил, что существует теперь флаг, который можно использовать при развертывании пакета. Я нашел документацию здесь:

Чтобы иметь пакет используют существующие машины модели, в противоположность созданию новых машин, --map-machines=existing опция используется. Кроме того, для определения конкретных машин для отображения разделенные от запятой значения формы 'bundle-id=existing-id' могут быть переданы, где идентификатор пакета и существующий идентификатор обращаются к высокоуровневым идентификаторам машины.

Например, рассмотрите пакет, чей файл YAML настроен с машинами 1, 2, 3, и 4, и модель, содержащая машины 1, 2, 3, 4, и 5. Следующее развертывание использовало бы существующие машины 1 и 2 для машин пакета 1 и 2, но использовало бы существующую машину 4 для машины пакета 3 и существующей машины 5 для машины пакета 4:

juju deploy some-bundle --map-machines=existing,3=4,4=5

1
ответ дан 7 December 2019 в 12:36

Вы не можете развернуться, очарование на существующих машинах при помощи амулета развертывает команду. Машины должны быть определены в пакете для этого для работы.

Ваш пакет должен быть похожим на это:

machines:
  '14':
    constraints: <any constraint for example tags=machine14 or mem=3048 or arch=amd64>

services:
  elasticsearch:
    charm: /home/user/charms/trusty/elasticsearch
    num_units: 1
    to: ['lxd:14']
  metricbeat:
    charm: /home/user/charms/trusty/metricbeat
series: trusty
relations:
  - - "elasticsearch:client"
    - "metricbeat:elasticsearch"

Это - вероятно, возможное использование устройство развертывания амулета . Устройство развертывания амулета установки путем добавления этого repo:

$ sudo add-apt-repository ppa:tvansteenburgh/ppa

Определяют пакет как:

phase1:
  services:
    elasticsearch:
      charm: /home/user/charms/trusty/elasticsearch
      num_units: 1
      to: ['lxd:14']
    metricbeat:
      charm: /home/user/charms/trusty/metricbeat
  series: trusty
  relations:
    - - "elasticsearch:client"
      - "metricbeat:elasticsearch"

Теперь, развернитесь путем выполнения следующей команды:

$ juju-deployer -c bundle.yaml phase1
2
ответ дан 7 December 2019 в 12:36

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

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