Я плохо знаком с Амулетом и пытающийся записать очарование. Мне нужен IP-адрес всех единиц, развернутых в сервисе. Я в настоящее время использую амулет 1.25 И развертываю сервисы в OpenStack
Сценарий:
У меня есть 3 единицы Wordpress (он потребовал файлов рычага отношения) с
juju deploy -n 3 cs:wordpress
Я развернул свое очарование от локального repo
juju deploy local:trusty/myCharm
Я добавляю отношение между двумя
juju add-relation myCharm wordpress
Теперь, мне нужен список всех 3 IP-адресов сервиса Wordpress в одном из рычага в myCharm
Я установил ключи отношения в Wordpress и попытался использовать идентификаторы отношения-> список отношения->, отношение - получает инструменты рычага в myCharm. Но это дает мне всего один IP и не все три.
relation-ids {relationName} --gives one id.
relation-list -r {id} --gives just one unit(wordpress/18).
relation-get -r {id} {relation-key} {unit} --gives corresponding ip.
Что я должен сделать для получения ожидаемого результата?
Эти relation-list -r {id}
должен возвратить все единицы в отношении. Возможно, Вы только анализируете первое (или в последний раз) значение?
Это - то, на что мой relation-*
похож вывод, когда у меня есть несколько единиц одного приложения, связанного с другим (в этом случае, я смотрю monitors
данные отношения между nagios
и 3 единицы nrpe
; Вы, вероятно, хотите заменить теми, которые имеют myCharm
и Ваши 3 единицы wordpress
):
$ juju run --unit nagios/0 'relation-ids monitors'
monitors:1
$ juju run --unit nagios/0 'relation-list -r monitors:1'
nrpe/0
nrpe/1
nrpe/2
$ juju run --unit nagios/0 'relation-get -r monitors:1 private-address nrpe/0'
172.31.13.216
я могу поместить это все вместе в цикл, который производит частно-адресное для всех единиц, связанных с nagios
как это:
$ juju run --unit nagios/0 'for i in `relation-ids monitors`; do for j in `relation-list -r $i`; do relation-get -r $i private-address $j; done; done'
172.31.13.216
172.31.30.157
172.31.49.121