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

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

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

Я хочу развернуть локальный пакет с двумя локальными прелестями. Мой 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 в 20:22

1 ответ

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

Ваш пакет должен выглядеть так:

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"

Возможно, это возможно с помощью juju-deployer. Установите juju-deployer, добавив это репо:

$ 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
ответ дан 23 May 2018 в 03:21

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

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