Oprócz naszej wewnętrznej infrastruktury IT, mamy około 500 maszyn z systemem Linux, które hostują nasze usługi dla świata on-line. Są one pogrupowane w kilka klastrów, takich jak Baza danych, Produkt An, NFS, Backoffice i tak dalej. Ponadto są one administrowane przez zewnętrznego dostawcę, zgodnie z naszymi specyfikacjami i wymaganiami.
Jednak napotykamy wiele problemów podczas opracowywania, wdrażania i wdrażania oprogramowania (internetowego) - szczególnie dlatego, że środowiska programistyczne i testowe nie mają prawie nic wspólnego z systemami na żywo (oszczędzam nieprzyjemnych szczegółów ...) .
Dlatego próbowałem tworzyć maszyny wirtualne, dokładnie kopiowałem różne systemy działające na żywo i przygotowywałem je do łączenia się np. Z bazami danych programowania zamiast z „prawdziwymi” bazami danych dla programistów (nie są root
). Działa to całkiem dobrze, ale ...
Zastanawiałem się, jak można administrować tymi systemami zdalnie i masowo ? Czy jest jakaś rodzina oprogramowania, o której nie wiem? A przynajmniej niektóre techniki lub zasady, które powinieneś znać?
Zapewnilibyśmy każdemu programistowi kilka obrazów do uruchomienia lokalnego (VirtualBox). Dział kontroli jakości. dostałby wirtualne klastry (XEN lub Hyper-V). Jeśli muszę zapewnić dodatkowy moduł serwera, przekierować nowe połączenie z bazą danych lub po prostu chcę zaktualizować wszystko dostarczone przez menedżera pakietów ... jak mogę to zrobić bez konieczności logowania się do każdego systemu i / lub poprosić moich kolegów o pobranie i uruchomienie skryptu urządzenia?
Uważam, że istnieje wiele rozwiązań. Cóż, jakoś jestem zbyt głupi, aby wprowadzić poprawne słowa kluczowe do wyszukiwarek ... Czy to nie jest tak trywialny, jak się wydaje?
Dla przypomnienia:
- Prawie we wszystkich systemach działa Debian GNU / Linux 6.x „squeeze”
- Żaden programista nie jest zmuszony do używania określonego systemu operacyjnego na swojej stacji roboczej
- Budżet jest oczywiście ograniczony, ale nie jest zbyt mały, aby kupić autorskie oprogramowanie
- Preferowane jest rozwiązanie obejmujące naszego wyżej wymienionego dostawcę
źródło
cucumber-puppet
. Oczywiście możesz opracować / rozbudować własny framework, wykorzystując istniejące komponenty, ale brzmiało to, że OP nie ma nic na miejscu i jeśli zaczynasz od zera, myślę, że najlepiej jest użyć istniejącego frameworka.Ulrich udzielił już odpowiedzi dotyczącej wdrożenia oprogramowania i automatycznej konfiguracji serwera.
Zasada jest taka
Poprosiłeś o przydatne narzędzie do zarządzania masą serwerów - moim osobistym ulubionym jest klaster-ssh (
cssh
). Wpisz raz i wprowadź zmiany na wielu serwerach jednocześnie.Jeśli odkryjesz problem i masz jego rozwiązanie, które usuwa problem:
Jeśli napotykasz masę serwerów, aby to naprawić, jest to proces, który musi być dobrze udokumentowany, a na koniec inny zespół powinien sprawdzić, czy poprawka została w pełni zastosowana.
W tym celu stosujemy Mantis (open source, PHP).
źródło
Zarządzam około 30 produktami i kilkuset serwerami w wielu krajach. Jestem menedżerem konfiguracji oprogramowania, więc nie mam dostępu do roota (zgodnie z projektem), nie dotykam baz danych ani ich serwerów (ponownie, zgodnie z projektem) i muszę skakać z wielu powodów ze względu na bezpieczeństwo korporacyjne. Ale zarządzam konfiguracjami testowymi, testowymi i produkcyjnymi, w tym łączami do baz danych i zmianami. Mam kilka skryptów, które wychodzą z serwerami przy użyciu kombinacji
ssh
,python
a Shell skryptów.Najważniejsze rzeczy do przemyślenia to:
ssh
wystarczy i znajduje się w bezpiecznym miejscu?ssh
uruchomić go zdalnie? Czy możesz napisać skrypt za pomocąexpect
wywołania z wiersza poleceń?VirtualBox udostępnia wiele narzędzi wiersza poleceń, którymi można administrować za pomocą
ssh
systemów lub systemów takichpuppet
jak wspomina Ulrich.źródło