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

25

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

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

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

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

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

user1617942
источник
Какой дистрибутив вы выбрали для установки? Это было бы полезно при определении следующего шага
eyoung100
однако помните, что задача автоматизации может занять много времени. Если вы планируете установить менее 10 хостов, это может не стоить этой задачи.
Архемар
Недавно я узнал о функциях, предлагаемых salttack (репозиторий с наибольшим вкладом в Github). Я настоятельно рекомендую ознакомиться с ним, так как он предлагает инструменты как для создания новых серверов в таких сервисах, как aws, так и для развертывания конфигураций, настроек, записи файлов, удаленного доступа к оболочке, массового доступа к оболочке. даже ограничение доступа. Кажется, почти все, что тебе нужно сделать. Хотя у меня есть хорошие друзья, которые клянутся Ansible для новых настроек сервера.
ThorSummoner
+1 для вас и mattdm ... Я не знал, что этот форум существует, пока я не увидел его в Hot Network Questions, а потом я даже не думал, что на этот вопрос есть ответ. Так рада, что вы спросили, и на него так хорошо ответили !
Сайлас Сибрук,

Ответы:

36

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

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

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

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

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

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

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

mattdm
источник
1
Большое спасибо! Я начну изучать все это.
user1617942
Вы не упомянули Cobbler.
Брайан
@staticx Да, это не всеобъемлющее. Существует целый мир систем обеспечения: Cobbler, Foreman, Satellite / Spacewalk, FAI, Razor, и это даже не касается облачных технологий.
Mattdm
@ChrisK Ха, я бы сказал то же самое;)
Уильям Эдвардс
0

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

http://www.dyncomp.net/what-is-slingshot/

Дэниел Хаксон
источник
0

Я настоятельно рекомендую Puppet . Он широко используется, хорошо документирован и поддерживается.

Виллиан Пайшао
источник