Kilku z nas w mojej firmie ma dostęp do roota na serwerach produkcyjnych. Szukamy dobrego sposobu, aby wyjaśnić to wyjątkowo jasno, kiedy ssh'd w.
Kilka pomysłów, które mieliśmy:
- Jasny czerwony monit
- Odpowiedz na zagadkę przed zdobyciem muszli
- Wpisz losowe słowo przed uzyskaniem powłoki
Jakich technik używasz do różnicowania systemów produkcyjnych?
Odpowiedzi:
Czerwony monit to dobry pomysł, z którego również korzystam.
Inną sztuczką jest umieszczenie dużego ostrzeżenia o kodzie ASCII w
/etc/motd
pliku.Posiadanie czegoś takiego wita Cię podczas logowania, należy zwrócić uwagę:
Możesz wygenerować takie ostrzeżenie na tej stronie lub użyć
figlet
polecenia.Jak sugerował Nicholas Smith w komentarzach, możesz urozmaicić niektóre smoki lub inne zwierzęta za pomocą
cowsay
polecenia.Zamiast używać pliku / etc / motd, możesz również wywołać
cowsay
lubfiglet
w.profile
pliku.źródło
Niezupełnie to samo, ale ta strona internetowa zaleca, aby Twoi programiści nosili różowe sombrero podczas wprowadzania zmian w systemach produkcyjnych. Prawdopodobnie możesz mieć podobną zasadę dla sshing w nich.
źródło
Największym, którego użyłem, jest dyskretny schemat nazewnictwa, w którym systemy prod są nazywane w oczywisty sposób inne niż instancje test / dev. To sprawia, że styl „Nazwa użytkownika @ Nazwa hosta:” jest wyraźnie inny. I oczywiście mam na myśli nie tylko różne słowa, ale także różne formaty:
przykład: PRD-WEB001 vs DEVEL-BOB-WEB001
Ma to kilka rzeczy:
A co najważniejsze, nie wymaga specjalnych konfiguracji terminali do produkcji, aby uniknąć błędów Oops.
Z mojego doświadczenia wynika, że chcesz czegoś, co będzie stałym przypomnieniem, gdzie jesteś. Metody logowania, takie jak zagadki, są dobre przez około 10 sekund, dopóki nie zapomnisz, które okno jest które. Wystarczy zrobić
ls
w niewłaściwym katalogu, aby przewinąć złowrogi baner logowania, zakopać okno terminala pod oknem przeglądarki podczas przeglądania go, zrzucić klawisz Alt z powrotem do niewłaściwego okna i wywołać chaos. Najlepiej mieć stałą wizualną wskazówkę, jak znacznie inny wiersz poleceń.źródło
Należy pamiętać, że musi to być stałe przypomnienie, a nie tylko wskaźnik podczas logowania. Bardzo często ktoś będzie miał kilka pocisków działających jednocześnie na różnych kartach i będzie się między nimi przemieszczał. Niektórzy będą twórcami, niektórzy produkcją. Kiedy więc uruchamiasz polecenie, w tym momencie musisz mieć wskaźnik. Posługiwanie się specjalnym monitem to według mnie najlepsza metoda, ze zmodyfikowanym paskiem tytuł / karta, który stanowi miłe uzupełnienie tego, aby łatwo znaleźć odpowiednie okno / kartę.
Dlatego zalecałbym kolorową podpowiedź (czerwony to oczywisty wybór) i wszystkie wielkie litery dla nazwy hosta, z podobnym zachowaniem dla użytkownika (uprzywilejowanego lub nieuprzywilejowanego) jak twój monit. Kilka przykładów:
Zwykle coś takiego
w pliku startowym powłoki. Ten jest na niebiesko. Wymienić
44
z41
jodły na czerwono i42
na zielono. Dostępne są również inne kolory i dzikie wzory .źródło
Oto moje sugestie:
1) Upewnij się, że większość poleceń (rm, chown, chmod, /etc/init.d/*) w środowisku produkcyjnym wymaga dostępu sudo
2) Użyj PS1 / PS2, aby wskazać, że użytkownik jest na serwerze Prod
Spowoduje to wyświetlenie wiersza polecenia jako
3) Jeśli używasz klientów Putty / SSH, zawsze możesz ustawić unikalny kolor / profil tła, aby wyróżnić serwery produkcyjne.
źródło
Po prostu weź pod uwagę, że twoje drugie i trzecie pomysły pomagają podczas pierwszego połączenia, ale nie mają żadnej wartości, gdy masz wiele otwartych terminali i przechodzisz od jednego do drugiego. Pomysł sysadmin1138 dotyczący używania nazewnictwa jest dobry, gdy można go zastosować, ale istnieje wiele przypadków, w których nie może być.
Jedyne, co uważam za naprawdę warte zachodu, to kolorowe podpowiedzi. Lubię zielony dla programistów / testujących, czerwony dla produkcji i niebieski dla maszyn w DMZ. W ten sposób, nawet jeśli mam dwa komputery o tej samej nazwie (w różnych sieciach), na przykład przygotowując maszynę zastępczą, nadal mogę łatwo stwierdzić, na której jestem.
źródło
Czerwony / specjalny wiersz polecenia jest dobry. Inną rzeczą może być szybsze automatyczne wylogowanie na tych komputerach przy użyciu zmiennej TMOUT. Jeśli otworzysz wiele okien, te produkcyjne znikną szybciej.
Powinno to prowadzić do innego zachowania:
źródło
Praca na maszynie produkcyjnej ze zwykłym kontem root nigdy nie jest dobrym pomysłem.
Posiadaj konto z pełnymi uprawnieniami sudo. Nie pozwala na zapisywanie sesji sudo. Zabroń sudo su. Użyj do tego osobnego hasła (nie takiego, które masz dla swojej maszyny deweloperskiej). Prawdopodobnie poprawiono sudo, aby powiadomić o tożsamości produkcyjnej powłoki przed wykonaniem polecenia (przez alias).
Przypadkowe błędy będą bardzo trudne. A czerwona zachęta nigdy nie boli.
źródło
sudo bash
). Możesz uzyskać powłokę główną z dowolnej konfiguracji „czarnej listy”. (Jeśli jesteś ostrożny, możesz to zatrzymać za pomocą konfiguracji białej listy, ale zwykle nie jest to gwarantowane.)Poszedłem z czerwonym pomysłem i znalazłem dość nużące znaleźć działający kod
.bashrc
.Oto moja wersja, gotowa do włączenia
.bashrc
- https://github.com/RichVel/nicer-bash-prompt . To całkowicie napędzany przez hosta, tak długo, jak masz odpowiedni wzór do hostów produkcyjnych (powiedzmyxyprod01
,xyprod02
itp) to będzie działać dobrze, i można go używać tak samo.bashrc
we wszystkich środowiskach.To wygląda tak:
To tworzy ładniejszy monit bash, w tym czerwony monit na hostach produkcyjnych - pokazuje również bieżącą gałąź git i ostatnie 2 katalogi w $ PWD. Uważa, aby uniknąć zepsucia ekranu zachęty podczas wykonywania Ctrl / R (wyszukiwanie do tyłu) w trybie bash.
Zawiera także opcjonalną funkcję synchronizacji historii bash we wszystkich oknach terminala, zgodnie z tą odpowiedzią . Jest to miłe, ale nie wszyscy tego chcą, więc jest domyślnie wyłączone.
źródło
Chociaż nie wiem, jak wygląda twoja konfiguracja IT, jednym z rozwiązań, które może być skuteczne, byłoby posiadanie specjalnego pomieszczenia, do którego musisz udać się do SSH na serwery produkcyjne jako root. Jeśli masz centrum danych, może to być sama serwerownia, ale oddzielne fizyczne położenie, z którego nie wykonuje się „normalnej” pracy, całkiem skutecznie służyłoby jako ciągłe przypomnienie, że masz dostęp do maszyn produkcyjnych.
źródło
Drobna modyfikacja powyższych sugestii. Korzystam z CDE jako pulpitu unix i wszystkich systemów produkcyjnych, do których mam dostęp poprzez menu w .dt / dtwmrc. We wszystkich systemach deweloperskich i UAT zachowuję normalną kolorystykę, ale w systemach Prod ustawiam terminal na czerwone tło. Nie podoba mi się ten wygląd, ale o to chodzi.
eta - brakowało sugestii Karola w zasadzie tej samej rzeczy
źródło
Kiedy loguję się do maszyny produkcyjnej, pojawia się akapit ostrzegający mnie, że jest to maszyna produkcyjna, a także krótka lista wskazówek. Jest numer, do którego mogę zadzwonić po wsparcie UNIX, jeśli nie sądzę, że mogę bezpiecznie wykonać swoje zadanie samodzielnie, przypomnienie, że wysadzenie maszyny produkcyjnej może mnie kosztować moją pracę, a także przypomnienie, że wszystko, co robię, jest rejestrowane.
edycja: Pracuję w branży transportowej.
źródło
W PuTTY możesz zmienić tytuł okna na inny niż domyślny dla określonej zapisanej sesji. To zawsze pozostaje w oknie, bez względu na to, co robisz w oknie. To również pojawia się na pasku zadań.
Rozwiń okno, kliknij Zachowanie. Wpisz coś w tytule okna, np .:
źródło
Prosta odpowiedź? Zmień kolor swojej powłoki na czerwony w konfiguracji powłoki. Będzie to oczywiste i proste w konfiguracji. Nie tylko to, ale w przeciwieństwie do nagłówków serwera, nie zniknie po wpisaniu kilku poleceń.
źródło
Oto, co zrobiłem na komputerze Mac. Do każdego serwera dodaję wpis w moim pliku ~ / .ssh / config, np
Ten skrypt Apple jest uruchamiany po ustanowieniu sesji SSH. Ustawia kolor tła terminala na podane wartości RGB (lub wraca do wartości domyślnej, jeśli nie podano wartości kolorów). Potencjalnie trudną częścią jest przechwycenie końca sesji SSH, aby przywrócić kolory domyślne. W tym celu utworzyłem następujący skrypt powłoki jako ~ / bin / ssh as, aby zastąpić domyślne polecenie ssh. Zasadniczo przechwytuje i zawija wszelkie wywołania polecenia SSH. Próbowałem użyć aliasingu i funkcji, ale to rozwiązanie działało najlepiej:
Oto źródło skryptu change_terminal_colours.scpt . Umieść to również w katalogu ~ / bin:
Napisałem to rozwiązanie tydzień temu i od tego czasu go używam. Mam nadzieję, że inni uznają to za wartościowe. Uważam, że działa lepiej niż którekolwiek z rozwiązań, które znalazłem w Googling.
źródło
Moja grupa używa Visionapp Remote Desktop (edycja 2017: wygląda na to, że nazwa produktu została zmieniona, ale myślę, że to to samo) zarówno na RDP na maszyny z Windows, jak i SSH na Linux. Nasze połączenia są pogrupowane w foldery według poziomów i przypisane do koloru karty.
Więc ilekroć otwieramy połączenie produkcyjne - bam! - na twarzy pojawia się jasnoczerwony kolor:
Jest to zdecydowanie opłacalna inwestycja, jeśli jesteś dużym sklepem z systemem Windows i polegasz na RDP. Założę się, że istnieją inne świetne narzędzia, jeśli wszystko, czego potrzebujesz, to SSH.
źródło
Oprócz unikalnego monitu (który wydaje się być najbardziej niezawodnym rozwiązaniem), jeśli logujesz się z tej samej stacji roboczej, możesz używać różnych profili dla sesji SSH.
Na przykład mam czerwone tło dla systemów produkcyjnych, zielone dla rozwoju, niebieskie dla infrastruktury (routerów itp.) I białe dla lokalnej stacji roboczej.
Jeśli używasz GNOME, istnieje prosty sposób na uruchomienie połączenia SSH z wybranym profilem:
gnome-terminal --window-with-profile=production -e 'ssh [email protected]'
Główna wada - po stronie klienta, więc specjalny monit jest nadal najlepszym rozwiązaniem, jeśli uzyskujesz dostęp do serwerów z różnych lokalizacji.
źródło
Innym sposobem, aby wyjaśnić, że korzystasz z systemu produkcyjnego, jest ustawienie funkcji TMOUT (autologout) w systemie produkcyjnym.
źródło
Ze względu na ogromne wymagania regulacyjne podczas pracy w konkretnej branży, tutaj wszystkie działania są kluczowe dla wszelkich przyszłych sporów. Z tego powodu dostęp jest również ograniczony i musisz przejść przez kilka „menu”, które umożliwiają dostęp do komputera jako jednego z niewielu zaufanych użytkowników. Konfigurując ten system, osoba musi świadomie wybrać środowisko PRODUKCJI lub QA, a następnie wybrać z listy host, do którego chce uzyskać dostęp. Ma to również limit czasu, więc nie możesz zalogować się na hoście produkcyjnym i zapomnieć, w jakim środowisku będziesz następnego dnia.
źródło
Korzystam z szybkich zmian, jak inni tutaj. Jest szybki i nieprzyjemny, ale działa dobrze dla moich celów. Otrzymasz kolor czerwony jako normalny użytkownik w systemie produkcyjnym, a czerwony duży znak jako root w systemie produkcyjnym.
Można to napisać w mniejszej liczbie wierszy, ale robię to w ten sposób, więc mogę poprawić pozostałe 2 przypadki (inne niż root-non prod), jeśli chcę.
Pracujemy przy założeniu, że serwer produkcyjny nie korzysta z DHCP, ale możesz użyć dowolnej innej metody sprawdzania, czy jest to system prod. Cokolwiek Ci odpowiada.
źródło
Mają inne (być może dłuższe) hasło roota na komputerach produkcyjnych.
Możesz utworzyć specjalne sudo (lub opakowanie sudo), tak że na komputerach produkcyjnych pojawi się specjalny komunikat.
źródło
Tutaj mamy domyślne konfiguracje szpachli, aby kolor pierwszego planu całego ekranu był jasny róż.
Działa całkiem dobrze, ale podoba mi się kilka innych pomysłów tutaj.
źródło
w .bashrc / .bash_profile
źródło