Привет, я разработал два сервера чудо-кнопок и приложение. Мне нужно добавить связь между ними и получить IP-адрес сервера для приложения. Я добавил файлы перехвата связей и изменений для обоих серверов. и очарование приложения. Затем я могу построить отношения между ними. Теперь у меня есть проблема, мои файлы подключений, связанных и измененных отношениями, не запускаются. Выполняются только файлы конфигурации, измененные, устанавливаемые и запускаемые. Это способ, которым я следовал. ( Как мне добавить отношения между двумя чарами для передачи информации между ними? кто-нибудь скажет мне, почему эти перехватчики отношений не работают.и как работает поток для перехватчиков отношений. Спасибо Sajith
Вещь иметь в виду об отношениях амулета состоит в том, что мы не связываем ни с какой официальной спецификацией. Мы не вынуждаем Вас реализовать RFC для обмена информацией между сервисами.
После этих слов позволяет, разделяют Ваш конкретный вопрос здесь.
С точки зрения Сервера и Приложения, позволяет использованию gitlab-ci и gitlab-ci-runner как наш сервер/прикладная модель. С gitlab-ci быть сервером и gitlab-ci-runner как приложение. наша модель развертывания является одной многим с 1 сервером и многими приложениями. (у нас может быть много серверов, но я хочу сохранить пример кратким)
, Мы сначала определяем отношения в gitlab-ci метаданных.
provides:
ci-job:
interface: ci-worker
Этот отдельный оператор говорит амулету, что у нас есть отношение ci-задания, с помощью интерфейса ci-рабочего. С этим определением отношений у нас есть 4 возможных состояния, которые мы можем использовать для внесения изменений.
ci-job-joined, ci-job-changed, ci-job-broken, ci-job-departed
соглашение для этого, имя отношения - событие - настолько продвигающийся, у нас есть те 4 возможных рычага события, присоединенные к имени отношения. Они выполняются в следующей последовательности:
Присоединенный для "предварительной работы" и место для Вас, чтобы сделать любую работу, необходимую для подготовления сервиса получить отношения (создающий резервную копию существующей локальной базы данных SQLite, например).
Измененный выполняется любое время, изменение обнаруживается в отношениях. Это иногда инициировано, когда удаленное очарование имеет обновление конфигурации и не может обязательно отразить необходимое изменение на Вашем сервисе - также - быть на 100% уверенным его идемпотент.
Поврежденный выполняется, когда Вы сначала повреждаете отношения. Это - когда Вы хотели бы сделать любые резервные копирования данных и реконфигурирование для удаления удаленной конфигурации.
Отбытый любая заключительная работа обертки для удаления отношений. Такой как восстановление SQLite копирует для операции и записи надлежащей конфигурации.
существует несколько очарования, которое осуществляет эти рычаги в хранилище очарования. Я предложил бы смотреть на содержание рычага нескольких из очарования. MongoDB, MediaWiki, Фантом
противоположный сервис конца будет иметь очень похожую историю к упомянутому выше сервису, но вместо обеспечивает, мы будем использовать, требует, чтобы оператор сделал отношения. Это - в значительной степени Вкладка A, конфигурация Слота B - Вы определяете то, что может говорить что с этими определениями.
requires:
ci-job:
interface: ci-worker
И наши рычаги посмотрит в основном то же: ci-job-joined, ci-job-changed, ci-job-broken, ci-job-departed
содержание кода рычага полностью ваше дело.
существует соглашения, поставленные с амулетом - в зависимости от языка, который Вы используете для записи очарования. Убедитесь, что Вы читаете эти , документы об отношении - становятся, установленными на отношение, и единица - добирается
unit-get
, предназначается для чтения системных переменных уровня. например: unit-get public-address
relation-set
то, что Вы хотели бы использовать на хосте, отправляющем информацию. В экземпляре установки gitlab-ci мы были бы relation-set publicip=$(unit-get public-address)
relation-get
, то, как мы используем данные, отправленные через провод на сервисе получения. relation-get publicip
я надеюсь, что это помогает!