Jak zautomatyzować konfigurację serwera Linux?

25

Czy istnieje sposób na zautomatyzowanie konfiguracji serwera Linux? Pracuję nad skonfigurowaniem kilku nowych serwerów kompilacji, a także serwera FTP i chciałbym zautomatyzować jak najwięcej procesu.

Powodem tego jest to, że konfiguracja i konfiguracja tych serwerów musi być wykonana w sposób łatwo powtarzalny. Uznaliśmy, że zautomatyzowanie jak największej części tego procesu ułatwiłoby powtarzanie w razie potrzeby w przyszłości.

Zasadniczo wszystkie serwery potrzebują do zainstalowania systemu operacyjnego, a także kilku pakietów. W konfiguracjach nie ma nic nadmiernie skomplikowanego.

Czy istnieje sposób na zautomatyzowanie tego procesu (lub przynajmniej jego części)?

EDYCJA: Powiedzmy, że używam Kickstart, czy istnieje sposób na usunięcie domyślnych repozytoriów Ubuntu i po prostu zainstalowanie pakietów z kolekcji plików .deb, które mamy lokalnie (najlepiej przez apt, a nie dpkg)?

użytkownik1617942
źródło
Jaką dystrybucję zdecydowałeś się zainstalować? Byłoby to pomocne w określeniu następnego kroku
eyoung100
uważaj jednak, że zadanie automatyzacji może zająć dużo czasu. Jeśli planujesz zainstalować mniej niż 10 hostów, zadanie może nie być tego warte.
Archemar
Niedawno dowiedziałem się o funkcjach oferowanych przez grę Saltstack (najczęściej tworzone repozytorium na Github). Zdecydowanie polecam zajrzeć do niego, ponieważ oferuje narzędzia zarówno do tworzenia nowych serwerów w usługach takich jak aws, jak i wdrażania konfiguracji, ustawień, pisania plików, zdalnego dostępu do powłoki, dostępu do powłoki zbiorczej. nawet ograniczenie dostępu. Wydaje się, że jest prawie wszystko, czego kiedykolwiek potrzebujesz. Chociaż mam dobrych przyjaciół, którzy przysięgają na Ansible na nowe konfiguracje serwerów.
ThorSummoner,
+1 do ciebie i mattdm ... Nie wiedziałem, że to forum istniało, dopóki nie zobaczyłem go w Hot Network Questions, a potem nawet nie pomyślałem, że to pytanie ma odpowiedź. Tak się cieszę, że zapytałeś, a odpowiedź została udzielona bardzo dobrze !
Sylas Seabrook,

Odpowiedzi:

36

Tak! To wielka sprawa i niezwykle powszechna. I są dwa podstawowe podejścia. Jednym ze sposobów jest po prostu instalacja skryptowa, na przykład używana w Fedorze, RHEL lub kickstartie CentOS. Sprawdź to w przewodniku instalacji Fedory: Kickstart Installations . W twoim prostym przypadku może to wystarczyć. (Weź to jako przykład; istnieją podobne systemy dla innych dystrybucji, ale ponieważ pracuję nad Fedorą, to wiem.)

Inne podejście polega na użyciu zarządzania konfiguracją . To duży temat, ale spójrz na Puppet, Chef, Ansible, cfengine, Salt i inne. W takim przypadku możesz użyć bardzo podstawowego ogólnego uruchomienia, aby udostępnić minimalną maszynę, oraz narzędzia do zarządzania konfiguracją, aby przywrócić jej odpowiednią rolę.

W miarę wzrostu potrzeb i infrastruktury staje się to niezwykle ważne. Używanie zarządzania konfiguracją do wszystkich zmian oznacza, że ​​możesz odtworzyć nie tylko wstępną instalację, ale także ewoluujący stan systemu, gdy wprowadzasz nieuniknione poprawki i poprawki spowodowane interakcją ze światem rzeczywistym.

Uznaliśmy, że zautomatyzowanie jak największej części tego procesu ułatwiłoby powtarzanie w razie potrzeby w przyszłości.

Jesteś absolutnie na dobrej drodze - to podstawowa zasada profesjonalnego administrowania systemami. Mamy nawet obraz mema:

AUTOMATYZUJ WSZYSTKIE RZECZY

Początkowo konfiguracja jest zwykle nieco trudniejsza, a dla niektórych bardziej zaawansowanych systemów może istnieć duża krzywa uczenia się, ale zwraca się na zawsze. Nawet jeśli masz tylko kilka systemów, zastanów się, ile chcesz w nich odtworzyć w razie katastrofy w środku nocy lub na wakacjach.

mattdm
źródło
1
Wielkie dzięki! Zacznę przeglądać je wszystkie.
user1617942,
Nie wspominałeś o Cobblerze.
Brian
@staticx Tak, to nie jest wyczerpujące. Istnieje również cały świat systemów udostępniania: Cobbler, Foreman, Satellite / Spacewalk, FAI, Razor, i to nawet nie wchodzi w grę w chmurze.
mattdm,
@ChrisK Ha, powiedziałbym to samo;)
William Edwards
0

Slingshot to skrypt automatyzujący instalację i konfigurację pakietów oprogramowania Linux. Proca ma i używa systemu szablonów / wiadomości.

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

Daniel Huckson
źródło
0

Gorąco polecam Puppet . Jest w dużej mierze używany, dobrze udokumentowany i obsługiwany.

Willian Paixao
źródło