В моей текущей модели 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. Любое возможное решение для развертывания очарования в комплекте с существующей машиной?
Вы не можете развернуть чары на существующих машинах, используя команду 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