Вопрос

Я пишу скрипт bash для настройки производственного сервера.Выполняемые задачи включают компиляцию программного обеспечения, создание пользователей и каталогов, копирование файлов и т.д.

Мне интересно, какие еще вещи я должен сделать.Возможно, вход в файл?проверка статуса выхода 0?Что я могу добавить, чтобы действительно сделать этот скрипт отличным, а не просто "он работает"?

Это было полезно?

Решение

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

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

  2. Используйте систему управления пакетами для развертывания вашего программного обеспечения.Если вы используете Linux, используйте deb, rpm или любой другой менеджер пакетов, используемый вашим дистрибутивом.Это даст вам полный контроль над тем, какая версия установлена, а также предоставит функции зависимости.

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

  4. В принципе, вы можете написать свой скрипт bash в разделе пакета после установки и после удаления.

  5. Обязательно проверьте, что после установки пакет приносит и создает все необходимое для запуска программы, и что при удалении пакета удаляются все файлы и отменяется то, что сделал скрипт после установки.

  6. Убедитесь, что обновление пакета с версии X до X + 1 работает должным образом.

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

Удачи вам!

Другие советы

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

Однако, когда нам нужно развернуть корпоративное приложение, эти серверы являются "серверами приложений", имейте в виду, что это совершенно другой процесс.Мы имеем дело с совершенно другим набором администраторов, специалистов по промежуточному программному обеспечению.Мы предоставляем им двоичные файлы, которые были продвинуты от разработчика к qa, а затем к prod.

Совершенно нормально автоматизировать настройку блока, но вы же не хотите "создавать" приложения на производственном блоке.Если по какой-либо причине производительность упадет, любое живое приложение увидит, когда появится окно с большим неприятным процессом компиляции.:D

@Том:Примером стабильного и успешного дистрибутива Linux может быть Gentoo, где все двоичные файлы компилируются на сервере перед установкой (в дистрибутиве нет двоичных файлов).Он использовался крупными производственными серверами, такими как isohunt.com.

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

Наличие GCC на сервере никому не повредит, IMO :)

@Ларс:

Ты должен-

Ведите файл журнала с дополнениями к шагам, необходимым для исправления ошибок и продвижения вперед.

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

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

Протестировав скрипт на нескольких системах, вы убедитесь, что он будет работать

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top