крючки отношения шарм джиу не работает?

Привет, я разработал два сервера чудо-кнопок и приложение. Мне нужно добавить связь между ними и получить IP-адрес сервера для приложения. Я добавил файлы перехвата связей и изменений для обоих серверов. и очарование приложения. Затем я могу построить отношения между ними. Теперь у меня есть проблема, мои файлы подключений, связанных и измененных отношениями, не запускаются. Выполняются только файлы конфигурации, измененные, устанавливаемые и запускаемые. Это способ, которым я следовал. ( Как мне добавить отношения между двумя чарами для передачи информации между ними? кто-нибудь скажет мне, почему эти перехватчики отношений не работают.и как работает поток для перехватчиков отношений. Спасибо Sajith

2
задан 13 April 2017 в 15:25

1 ответ

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

После этих слов позволяет, разделяют Ваш конкретный вопрос здесь.

С точки зрения Сервера и Приложения, позволяет использованию gitlab-ci и gitlab-ci-runner как наш сервер/прикладная модель. С gitlab-ci быть сервером и gitlab-ci-runner как приложение. наша модель развертывания является одной многим с 1 сервером и многими приложениями. (у нас может быть много серверов, но я хочу сохранить пример кратким)

метаданные Gitlab-CI

, Мы сначала определяем отношения в gitlab-ci метаданных.

provides:
  ci-job:
    interface: ci-worker

Этот отдельный оператор говорит амулету, что у нас есть отношение ci-задания, с помощью интерфейса ci-рабочего. С этим определением отношений у нас есть 4 возможных состояния, которые мы можем использовать для внесения изменений.

ci-job-joined, ci-job-changed, ci-job-broken, ci-job-departed

соглашение для этого, имя отношения - событие - настолько продвигающийся, у нас есть те 4 возможных рычага события, присоединенные к имени отношения. Они выполняются в следующей последовательности:

  1. присоединенный отношением
  2. измененный на отношение
  3. поврежденный отношением
  4. отбытый из отношения

Присоединенный для "предварительной работы" и место для Вас, чтобы сделать любую работу, необходимую для подготовления сервиса получить отношения (создающий резервную копию существующей локальной базы данных SQLite, например).

Измененный выполняется любое время, изменение обнаруживается в отношениях. Это иногда инициировано, когда удаленное очарование имеет обновление конфигурации и не может обязательно отразить необходимое изменение на Вашем сервисе - также - быть на 100% уверенным его идемпотент.

Поврежденный выполняется, когда Вы сначала повреждаете отношения. Это - когда Вы хотели бы сделать любые резервные копирования данных и реконфигурирование для удаления удаленной конфигурации.

Отбытый любая заключительная работа обертки для удаления отношений. Такой как восстановление SQLite копирует для операции и записи надлежащей конфигурации.

существует несколько очарования, которое осуществляет эти рычаги в хранилище очарования. Я предложил бы смотреть на содержание рычага нескольких из очарования. MongoDB, MediaWiki, Фантом

Метаданные Gitlab-CI-Worker

противоположный сервис конца будет иметь очень похожую историю к упомянутому выше сервису, но вместо обеспечивает, мы будем использовать, требует, чтобы оператор сделал отношения. Это - в значительной степени Вкладка A, конфигурация Слота B - Вы определяете то, что может говорить что с этими определениями.

requires:
  ci-job:
    interface: ci-worker

И наши рычаги посмотрит в основном то же: ci-job-joined, ci-job-changed, ci-job-broken, ci-job-departed

содержание кода рычага полностью ваше дело.

Отправка IP единицы

существует соглашения, поставленные с амулетом - в зависимости от языка, который Вы используете для записи очарования. Убедитесь, что Вы читаете эти , документы об отношении - становятся, установленными на отношение, и единица - добирается

unit-get, предназначается для чтения системных переменных уровня. например: unit-get public-address

relation-set то, что Вы хотели бы использовать на хосте, отправляющем информацию. В экземпляре установки gitlab-ci мы были бы relation-set publicip=$(unit-get public-address)

relation-get, то, как мы используем данные, отправленные через провод на сервисе получения. relation-get publicip

я надеюсь, что это помогает!

7
ответ дан 13 April 2017 в 15:25

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

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