Как автоматизировать настройку Linux-сервера?


25

Есть ли способ автоматизировать настройку Linux-сервера? Я работаю над настройкой нескольких новых серверов сборки, а также сервера FTP, и хотел бы максимально автоматизировать этот процесс.

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

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

Итак, есть ли способ автоматизировать этот процесс (или хотя бы некоторое его количество)?

РЕДАКТИРОВАТЬ: Кроме того, скажем, я использую Kickstart, есть ли способ удалить стандартные репозитории Ubuntu, и просто установить пакеты из коллекции файлов .deb, которые мы имеем локально (желательно через apt, а не dpkg)?


Какой дистрибутив вы выбрали для установки? Это было бы полезно при определении следующего шага
— eyoung100

однако помните, что задача автоматизации может занять много времени. Если вы планируете установить менее 10 хостов, это может не стоить этой задачи.
— Архемар

Недавно я узнал о функциях, предлагаемых salttack (репозиторий с наибольшим вкладом в Github). Я настоятельно рекомендую ознакомиться с ним, так как он предлагает инструменты как для создания новых серверов в таких сервисах, как aws, так и для развертывания конфигураций, настроек, записи файлов, удаленного доступа к оболочке, массового доступа к оболочке. даже ограничение доступа. Кажется, почти все, что тебе нужно сделать. Хотя у меня есть хорошие друзья, которые клянутся Ansible для новых настроек сервера.
— ThorSummoner

+1 для вас и mattdm ... Я не знал, что этот форум существует, пока я не увидел его в Hot Network Questions, а потом я даже не думал, что на этот вопрос есть ответ. Так рада, что вы спросили, и на него так хорошо ответили !
— Сайлас Сибрук,

Ответы:


36

Да! Это большое дело, и невероятно распространенное. И есть два основных подхода. Один из них - просто установка по сценарию, например, используемая в Fedora, RHEL или кикстарте CentOS. Проверьте это в руководстве по установке Fedora: Установка Kickstart . Для вашего простого случая этого может быть достаточно. (Возьмите это в качестве примера; для других дистрибутивов есть похожие системы, но, поскольку я работаю на Fedora, это то, с чем я знаком.)

Другой подход заключается в использовании управления конфигурацией . Это большая тема, но посмотрите на Puppet, Chef, Ansible, cfengine, Salt и другие. В этом случае вы можете использовать базовый базовый кикстарт для предоставления минимального компьютера и инструмент управления конфигурацией, чтобы привести его к надлежащей роли.

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

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

Вы на правильном пути - это основополагающий принцип профессионального системного администрирования. У нас даже есть изображение мема для этого:

АВТОМАТИЗИРОВАТЬ ВСЕ

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


1
Большое спасибо! Я начну изучать все это.
— user1617942

Вы не упомянули Cobbler.
— Брайан

@staticx Да, это не всеобъемлющее. Существует целый мир систем обеспечения: Cobbler, Foreman, Satellite / Spacewalk, FAI, Razor, и это даже не касается облачных технологий.
— Mattdm

@ChrisK Ха, я бы сказал то же самое;)
— Уильям Эдвардс


Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.