Potokowanie SSH i ponowne używanie połączeń
Ograniczanie narzutu dla każdego zadania.
Potokowanie SSH i ponowne używanie połączeń to bezpłatna lekcja DevOps Bootcamp na CoddyKit. To lekcja 3 z 4. Możesz przeczytać całą lekcję poniżej za darmo — a potem ćwiczyć ją interaktywnie w przeglądarce z wbudowanym edytorem kodu i tutorem AI dostępnym 24/7. To część ścieżki edukacyjnej DevOps Bootcamp, a Twój postęp synchronizuje się między webem a aplikacją CoddyKit. Kurs DevOps Bootcamp zawiera 4 lekcji w sumie.
Narzut SSH się kumuluje
Każde zadanie może oznaczać nowe logowanie, kopiowanie pliku i wykonanie przez SSH. Pomnóżmy to przez wiele zadań i hostów, a narzut zdominuje całe uruchomienie.
Jak zwykle działa zadanie
Domyślnie Ansible kopiuje moduł na hosta, uruchamia go, a następnie sprząta. Każdy z tych kroków kosztuje jedną rundę komunikacji SSH, której często można uniknąć.
Potokowanie przychodzi z pomocą
Przy włączonym potokowaniu Ansible przesyła moduł przez istniejącą sesję SSH, zamiast najpierw zapisywać plik tymczasowy, ograniczając liczbę połączeń na zadanie.
[ssh_connection]
pipelining = TruePułapka requiretty
Potokowanie wymaga sudo bez TTY, dlatego zdalna konfiguracja sudoers nie może wymuszać opcji requiretty. Nowoczesne dystrybucje nie sprawiają problemów, ale niektóre wzmocnione konfiguracje wymagają dostosowania.
Używaj ponownie połączenia
ControlPersist w OpenSSH utrzymuje otwarte połączenie główne i kieruje przez nie kolejne zadania, pomijając każdorazowe wykonywanie nowego uzgadniania połączenia.
Dostosuj ssh_args
Ansible włącza ponowne używanie połączeń za pomocą ssh_args. Wartość ControlPersist określa, jak długo współdzielone gniazdo pozostaje aktywne po ostatnim zadaniu.
[ssh_connection]
ssh_args = -o ControlMaster=auto -o ControlPersist=60sGdzie znajdują się gniazda
Współdzielone połączenie działa przez plik gniazda ścieżki sterowania. Ścieżka powinna być krótka, aby uniknąć ograniczenia systemu operacyjnego dotyczącego długości nazwy gniazda.
[ssh_connection]
control_path = %(directory)s/%%h-%%p-%%rPotokowanie a ponowne używanie
Te mechanizmy ograniczają różne koszty: potokowanie zmniejsza liczbę rund komunikacji w obrębie jednego zadania, a ControlPersist ponownie wykorzystuje sesję SSH w wielu zadaniach.
Używaj obu mechanizmów razem
Potokowanie i trwałe połączenia uzupełniają się. Włączenie obu mechanizmów to jeden z największych i najmniej ryzykownych sposobów przyspieszenia dużego playbooka.
Szybsze zbieranie faktów
Jeśli fakty nie są potrzebne, ustaw gather_facts: false, aby pominąć moduł konfiguracji. Usuwa to kosztowny krok z początku każdego playa.
Zmierz uzyskany efekt
Włącz callback profile_tasks, aby mierzyć czas każdego zadania. Pokazuje on dokładnie, gdzie upływają sekundy, dzięki czemu można potwierdzić, że dostrojenie rzeczywiście pomogło.
Szybkie sprawdzenie
Chcą Państwo, aby każde zadanie unikało zapisywania pliku tymczasowego przed uruchomieniem przez SSH.
Podsumowanie
Włącz potokowanie, aby ograniczyć liczbę rund komunikacji, oraz ControlPersist, aby ponownie używać sesji SSH. Razem znacznie zmniejszają narzut połączeń w dużych playbookach. ⚡
Często zadawane pytania
Czy lekcja „Potokowanie SSH i ponowne używanie połączeń” jest bezpłatna?
Tak — pełny tekst „Potokowanie SSH i ponowne używanie połączeń” jest dostępny za darmo tutaj w sieci. Aby ćwiczyć ją interaktywnie (wbudowany edytor kodu i tutor AI dostępny 24/7) i odblokować resztę kursu DevOps Bootcamp, przejdź na CoddyKit PRO. Kurs DevOps Bootcamp zawiera 4 lekcji w sumie.
Co nauczysz się w „Potokowanie SSH i ponowne używanie połączeń”?
Ograniczanie narzutu dla każdego zadania. Ćwiczysz DevOps Bootcamp z praktycznym kodem, który uruchamiasz bezpośrednio w przeglądarce, a tutor AI dostępny 24/7 odpowiada na Twoje pytania podczas pracy nad lekcją.
Czy potrzebuję doświadczenia, aby zacząć DevOps Bootcamp?
Nie wymagamy żadnego doświadczenia. DevOps Bootcamp w CoddyKit jest strukturyzowany dla początkujących i zaawansowanych użytkowników, więc możesz zacząć tutaj lub od początku i uczyć się w swoim tempie. To lekcja 3 z 4.
Ile czasu zajmuje lekcja „Potokowanie SSH i ponowne używanie połączeń”?
Większość lekcji CoddyKit trwa około 5–10 minut. Każda lekcja to mały, interaktywny krok, dzięki czemu robisz systematyczne postępy i zawsze wracasz dokładnie do tego samego miejsca — na webie i w aplikacji.
Czy mogę pisać i uruchamiać kod w tej lekcji DevOps Bootcamp?
Tak. Każda lekcja DevOps Bootcamp zawiera wbudowany edytor kodu, więc piszesz i uruchamiasz prawdziwy kod bezpośrednio w przeglądarce i od razu otrzymujesz sprzężenie zwrotne od AI — bez konfiguracji na komputerze.
Wszystkie lekcje w tym kursie
- forks i dostrajanie równoległości
- Strategie: linear, free i host_pinned
- Potokowanie SSH i ponowne używanie połączeń
- serial i wykonywanie partiami kroczącymi