W administracji systemu Windows chcę głębiej kopać w systemie Linux (Debian). Jedno z moich palących pytań, na które nie mogłem odpowiedzieć podczas wyszukiwania w sieci (nie znalazłem go), brzmi: w jaki sposób mogę osiągnąć tak zwany „jeden do wielu” na odległość, jak w PowerShell dla Windows?
Aby rozbić to na podstawy, powiedziałbym:
Mój pogląd na Linuksa:
- Mogę ssh na serwerze i wpisać moje polecenie
- Dostaję wynik. Dla środowiska 10 serwerów musiałbym napisać skrypt (perl / python?) Wysyłający polecenie dla każdego z nich?
Moje doświadczenie z Windows:
Wpisuję polecenie i za pomocą polecenia „invoke-command” mogę „wysłać” to na kilka serwerów (być może z pliku tekstowego), aby wykonać je jednocześnie i odzyskać wynik (jako obiekt do dalszej pracy).
Mogę nawet ustanowić wiele sesji, połączenie jest utrzymywane w tle i selektywnie wysyłać polecenia do tych sesji oraz zdalnie włączać i wyłączać, jak potrzebuję.
(Słyszałem o szefie kuchni, marionetce itp. Czy to coś takiego?)
Update 2019:
Po wielu próbach - sugeruję Rex (patrz ten komentarz poniżej ) - łatwa konfiguracja (w rzeczywistości wymaga tylko ssh, nic więcej) i użycie (jeśli znasz tylko trochę perla , jest jeszcze lepsze, ale opcjonalne)
Z Rex (ify ) możesz wykonać polecenie adhoc i przejść do rzeczywistego zarządzania konfiguracją (... co oznacza: jest to CM na pierwszym miejscu, ale również nadaje się do zadań adhoc) Witryna wydaje się nieaktualna, ale obecnie (stan na 01/2019) jest w fazie aktywnego rozwoju, a kanał IRC jest również aktywny.
Z nowym openssh Windowsa jest jeszcze więcej możliwości
możesz spróbować:
rex -u user -p password -H 192.168.1.3 -e 'say run "hostname"'
:setw synchronize-panes on
( unix.stackexchange.com/a/124800/161003 )Odpowiedzi:
Podsumowanie
klastry
Do wysyłania zdalnych poleceń na kilka serwerów, dla początkujących, poleciłbym clusterssh
Aby zainstalować
clusterssh
w Debianie:Kolejny samouczek klastrowania :
Ansible
Jeśli chodzi o zdalną platformę do administrowania wieloma systemami, Ansible jest bardzo interesującą alternatywą dla Puppet. Jest bardziej ubogi i nie potrzebuje dedykowanych zdalnych agentów, ponieważ działa na SSH (został również zakupiony przez RedHat)
Poradniki są bardziej rozbudowane niż opcje wiersza poleceń.
Jednak, aby rozpocząć korzystanie z Ansible, potrzebujesz prostej instalacji i ustawienia pliku tekstowego listy klientów.
Następnie uruchomienie polecenia na wszystkich serwerach jest tak proste, jak wykonanie:
Dane wyjściowe są również bardzo ładnie sformatowane i rozdzielone według reguł / serwerów, a podczas działania w tle można przekierować do pliku i skonsultować się później.
Możesz zacząć od prostych reguł, a korzystanie z Ansible stanie się ciekawsze wraz z rozwojem Linuksa, a twoja infrastruktura stanie się większa. Jako taki zrobi znacznie więcej niż PowerShell.
Na przykład bardzo prosty Playbook do aktualizacji serwerów Linux, który napisałem:
Ma również wiele zdefiniowanych modułów, które pozwalają łatwo pisać kompleksowe zasady.
Indeks modułu - Dokumentacja Ansible
Ma także interesującą oficjalną bazę / „społeczną” sieć repozytoriów do wyszukiwania już ustalonych polityk przez społeczność. Ansible Galaxy
Ansible jest również szeroko stosowany, aw github znajdziesz wiele projektów, takich jak ten ode mnie do konfiguracji FreeRadius .
Chociaż Ansible jest darmową platformą open source, ma również płatny interfejs panelu internetowego, Ansible Tower, chociaż licencje są dość drogie.
Obecnie, po zakupie RedHata, wieża ma również wersję open source znaną jako AWX .
Jako bonus Ansible jest również w stanie administrować serwerami Windows, chociaż nigdy tego nie używałem.
Jest także w stanie administrować sprzętem sieciowym (routerami, przełącznikami i zaporą ogniową), co czyni go bardzo interesującym rozwiązaniem jako rozwiązanie pod klucz automatyzacji.
Jak zainstalować Ansible
Rundeck
Jeszcze raz, dla zdalnego frameworka łatwiejszego w użyciu, ale nie tak potężnego jak Ansible, polecam Rundeck .
Jest to bardzo potężny interfejs graficzny dla wielu użytkowników / logowania, w którym można zautomatyzować większość typowych codziennych zadań, a nawet dać rozwodnione widoki sysopsom lub pracownikom pomocy technicznej.
Podczas uruchamiania poleceń daje także okna z danymi wyjściowymi w podziale na serwer / zadanie.
Może płynnie uruchamiać wiele zadań w tle i umożliwia późniejsze sprawdzenie raportu i danych wyjściowych.
Jak zainstalować RunDeck
Pamiętaj, że są osoby uruchamiające Ansible + RunDeck jako interfejs WWW; nie wszystkie przypadki są do tego odpowiednie.
Oczywiste jest również, że korzystanie z Ansible i / lub RunDeck może być interpretowane jako forma lub część dokumentacji infrastruktury, a wraz z upływem czasu pozwala na replikację i ulepszanie działań / przepisów / Poradników.
Wreszcie, mówiąc o centralnym serwerze dowodzenia, stworzę go właśnie do tego zadania. W rzeczywistości terminem technicznym jest skocznia. „Skocznie” poprawiają bezpieczeństwo, jeśli odpowiednio je skonfigurujesz .
źródło
Jeśli chcesz to zrobić interaktywnie, możesz użyć,
terminator
który pozwala na nadanie polecenia do wielu terminali.Zobacz: Jak uruchomić to samo polecenie linux w więcej niż jednej karcie / powłoce jednocześnie?
źródło
tmux
Crtl + B:set sync on
Możesz także użyć
pssh
(lubparallel-ssh
), który jest klientem SSH, który łączy się z listą hostów i wykonuje polecenie na wszystkich hostach równolegle:źródło
Być może możesz osiągnąć swój cel za pomocą prostej funkcji zsh (bash). Załóżmy, że masz serwery l61 l62 l63 i często musisz na nich uruchomić polecenie:
Tak więc w wierszu poleceń:
źródło
Jeśli używasz KDE, oto inna metoda.
- Otwórz okno Konsoli.
Dla każdego serwera, z którym chcesz się komunikować:
- otwórz kartę
- nawiąż połączenie ssh z serwerem
W menu „Edycja” wybierz „skopiuj dane wejściowe” na „wszystkie karty”
Każde polecenie wprowadzone na tej karcie zostanie skopiowane na wszystkie serwery.
Możesz przełączać się z karty na kartę, aby zobaczyć różne wyniki.
Uwaga: moje etykiety menu (w cudzysłowie) mogą być niepoprawne, ponieważ nie używam angielskiej wersji KDE
źródło
GNU równoległe
Umożliwia proste jedno-liniowe z zapisanymi ustawieniami, dzięki czemu możesz utworzyć profil „prod”, który będzie zawierał listę serwerów i wspólne przełączniki. Następnie wystarczy dodać żądane polecenie i jesteś gotowy. Może także kopiować pliki do serwer i automatycznie usuwa je na końcu, i jest to całkiem wygodne dla jeszcze większych skryptów. Jest także bardzo szybki.
Jedynym problemem jest to, że ma tak wiele opcji;) Ale dokumentacja zawiera również wiele przykładów, więc możesz po prostu na nie spojrzeć na początku.
źródło
Chcę tu również wspomnieć o „Rex”: https://www.rexify.org/
Jest to niesamowite narzędzie, które wykorzystuje perl + ssh (uwierzytelnianie użytkownika / hasła lub klucza), a ponieważ perl jest zainstalowany na każdym (?!) Systemie Linux, myślę, że wydaje się bardziej naturalny (ma pewne podobieństwa z Ansible & Co.)
możesz uruchamiać polecenia adhoc na wielu serwerach jednocześnie (serwer1, serwer2, serwer ... - po skonfigurowaniu uwierzytelnienia lub alternatywnie użyj parametrów -p / -u i -s / -S do wykonania polecenia sudo):
lub utwórz plik, w którym określisz różne „zadania” i stamtąd je wywołaj
Można go zainstalować za pomocą repozytoriów lub nawet z perls cpan (lub
cpanm Rex
), a jego początkowa konfiguracja jest łatwa, patrz:- https://www.rexify.org/ lub
- https://www.rexify.org/docs/guides/ start_using__r__ex.html i
- http://www.admin-magazine.com/Archive/2014/21/First-steps-in-IT-automation-by-Rex
źródło