1

Во время развертывания кода существует риск сбоя службы / системы. Центр управления сетью отслеживает предупреждения от серверов. Если предупреждение появляется в результате развертывания кода, то это может не беспокоить. Однако, если никто не работает на сервере, то ясно, что предупреждение является поводом для беспокойства.

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

Допустим, я работаю на сервере «х» и запускаю агент кукол

Может ли процесс, работающий в фоновом режиме, сконфигурирован для прослушивания пользовательского ввода в терминале с помощью «агента-марионетки» и последующей передачи сообщения на данный сервер, когда этот ввод присутствует?

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

Было бы также полезно, если бы он мог искать в предопределенном месте, например, в журнале, для этой команды (в данном случае агент марионеток) для сообщения о выходе, такого как «марионетка успешно завершена ...», и в случае, если он обнаружил это, отправить дополнительная трансляция на данный сервер.

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

Спасибо

1 ответ1

0

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

Вместо того, чтобы ssh-в вашу машину и запустить puppet apply ; Лучше использовать марионеточный сервер и использовать параметризованные классы, чтобы определить, какая сборка должна быть выпущена.

Хозяин Марионеток
Классификатор внешних узлов

В идеале у вас должно быть от двух до четырех почти одинаковых серверов, каждый с одинаковой конфигурацией. (производство + этап + QA + Dev). Таким образом, вы можете проверить правильность своего развертывания на компьютере, прежде чем приступить к развертыванию.

Если для вашего развертывания требуется несколько шагов, которые не могут быть инкапсулированы в вашем модуле (например, удалить из балансировщика нагрузки, изменить базу данных и т.д.). Затем вы захотите дополнить ваши кукольные пробеги инструментом, который может выполнять эти шаги по порядку.

CloudSlang Orchestration Management
Автоматизация развертывания Capistrano
RunDeck Gui, который определяет задания / задачи

Другие инструменты, которые могут помочь с процедурой развертывания.

Консул Сервис Дискавери + Отчетность

Наконец, это звучит так, как будто вы хотите петлю обратной связи, которая сообщает вам, было ли успешное развертывание Хозяин кукол и мастер могут сделать это. Вы также можете сообщить о состоянии в базу данных REST.

InflxDB
Iron.io

Затем используйте инструмент стиля приборной панели, чтобы показать последнее число результатов x.

лихой
tipboard

Или вы можете нажать прямо в чат, как расслабиться.

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

Вот документация по настройке стека ELK (Elasticsearch, Logstash, Kibana)

Другие источники

https://sysadmincasts.com/episodes/47-zero-downtime-deployments-with-ansible-part-4-4

http://aws.amazon.com/codedeploy/

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .