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