Как я могу получить IP-адрес подключенного устройства в хуке установки?

Я новичок в Джуджу и чарах, пробую простые вещи.

Я пишу брелок (скажем, клиент), которому нужен IP-адрес другого брелка (скажем, сервера) в своем хуке установки.

В принципе, мне нужен IP-адрес сервера и поместить его в файл конфигурации клиента. Но он не будет доступен в хуке установки клиента. Я добавил отношения клиента и сервера, и можно использовать $REMOTE-UNIT, relation-set hostname=unit-get private-address public-address=unit-get public-address и server_address=relation-get hostname.

Тем не менее, это не похоже на работу. IP-адрес сервера должен быть доступен для клиента, пока в install hook не так ли? Так как это одноразовый параметр конфигурации.

2
задан 15 May 2015 в 16:33

1 ответ

Так, если я понимаю правильно, Вы хотите установить приложение, для которого нужен IP сервера для установки правильно? То, что Вы в основном имеете, является клиентом, который "бесполезен" без отношений к серверу.

Амулет основан на событии. Когда событие инициировано, очереди Амулета все другие события для того очарования. Следующее даже запущено с момента, предыдущий сделан. relation события будут только запущены после install событие завершается. С технической точки зрения отношение между двумя очарованием может только быть добавлено после install рычаг очарования заканчивается.

Если у Вас есть очарование, которое не может установить, если оно не имеет отношение (если оно не знает IP "сервера"), затем install рычаг ничего не делает. Фактическая установка должна произойти в relation-joined рычаг.

Так реализуйте это:

  • install рычаг в основном ничего не делает [1]
  • relation-joined рычаг получает IP использование relation-get private-address
  • relation-joined рычаг делает фактическую установку и конфигурацию клиента

[1] или рычаг установки может привести в порядок установку до такой степени, что IP необходим, и затем остановитесь

2
ответ дан 15 May 2015 в 16:33

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

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