Sytuacja kobiet w IT w 2024 roku
2.12.20214 min
Jeewan Sooriyaarachchi

Jeewan SooriyaarachchiDevOps Engineer

16 przydatnych narzędzi wiersza poleceń dla inżynierów DevOps

Poznaj nowe narzędzia, które pomogą Ci tworzyć infrastrukturę terraformy, przechodzenie płynne między kontami AWS czy ułatwienie do przeglądania wszystkich podów i kontenerów.

16 przydatnych narzędzi wiersza poleceń dla inżynierów DevOps

Oto zestaw narzędzi, których sam używam i których nauczyłem się od moich współpracowników. Używanie właściwych narzędzi i technik znacznie poprawi produktywność. Niektóre z wymienionych tutaj narzędzi są dość oczywiste, ale dodałem je dla formalności. Jeśli korzystasz z podobnych, daj znać w komentarzu.

Większość z tych narzędzi jest open source, upewnij się, że używając ich, nie naruszasz żadnych zasad swojej firmy. Należy je zainstalować na Twojej stacji roboczej, ale nie na serwerach

Wiersz poleceń i chmura


Większość z nas używa narzędzi IaC takich jak Terraform, CloudFormation do zarządzania zasobami chmury. Jednak z różnych powodów czasami potrzebujemy dowiedzieć się więcej szczegółów o zasobach, by ułatwić np. wykrywanie błędów. Możemy użyć do tego zadania aplikacji webowych, ale często wymaga to dłuższego czasu na uwierzytelnienie i załadowanie stron. Korzystanie z narzędzi wiersza poleceń będzie bardziej efektywne zaraz po zapoznaniu się z możliwym zestawem poleceń. Oto narzędzia wiersza poleceń dla większości popularnych dostawców usług w chmurze:

fzf

Jest to narzędzie  Linuksa, służące m.in. do wybierania argumentów z listy opcji. Działa świetnie z narzędziami wylistowanymi poniżej. Działanie fzf zrozumiesz lepiej, jeżeli przeczytasz informacje na GitHubie kubectx.

kubectx

Przydaje się do przechodzenia między klastrami kubernetesa szczególnie tym, którzy mają do czynienia z ich większą liczbą. Odczytuje on plik ~/.kube/config i pozwala wybrać potrzebny klaster.

kubens

Narzędzie to pozwala na wybranie domyślnej przestrzeni nazw klastra. Uruchamiając polecenia kubectl, trudno jest określić przestrzeń nazw w każdym poleceniu. To polecenie pomoże Ci szybko przechodzić między przestrzeniami nazw.

stern

Jest to kolejne narzędzie pozwalające w łatwy sposób przeglądać logi wszystkich podów i kontenerów danego deploymentu. Wynik polecania jest pokolorowany, co odróżnia logi różnych podów i kontenerów. Stąd łatwiej jest debugować za pomocą stern, niż używać polecenia kubeclt logs. 

stern <deployment-name>


Tutaj takie samo polecenie kubectl.

kubectl logs -f deployemnet/nginx --all-containers=true

awsp

Podobnie tutaj, jest to narzędzie do łatwego przechodzenia między kontami AWS bez ręcznego konfigurowania domyślnego profilu.

tfenv

Jeśli używasz terraform do tworzenia infrastruktury, często zdarza się, że z biegiem czasu pojawia się wiele wersji terraform. To narzędzie pomoże Ci wybrać aktualną, aktywną wersję terraforma, jak również zainstalować nowe lub odinstalować te niepotrzebne.

tfenv use 0.13.0

tgenv

To jest odpowiednik tfenv dla terragrunt

tgenv use 0.28.3

aws-vault

Po zainstalowaniu i skonfigurowaniu wiersza poleceń AWS, generalnie przechowuje on klucze dostępu i sekrety w pliku ~/.aws/credentials w postaci niezaszyfrowanej, co nie jest zbyt bezpieczne. Zamiast tego możesz użyć aws-vault do przechowywania tych danych i zabezpieczyć dostęp preferowanych przez Ciebie hasłem. W tym celu będziesz musiał uruchomić wszystkie konta aws przez terminalem aws-vault.

aws-vault add profile name


Dodaj szczegóły konta z nazwą profilu

aws-vault exec profile aws sts get-caller-identity


Uruchom dowolne polecenie wiersza poleceń AWS przez aws-vault exec profile

Konfiguracja bash PS1

To nic innego jak ustawienie znaku zachęty tak, by wyświetlał przydatne informacje. Na przykład, możesz skonfigurować go tak, aby wyświetlał aktualnie nazwę połączonego serwera, nazwę użytkownika, klaster kubernetes, konto AWS lub tym podobne, zgodnie z Twoim życzeniem. Chodzi o to, aby być świadomym środowiska, z którym jesteśmy połączeni, zanim wykonamy jakiekolwiek krytyczne polecenia. Przykładowo ktoś może być połączony z produkcją, ale wykonuje polecenia, zakładając że jest to staging albo środowisko developerskie. Te zachęty bash pomogą zminimalizować te błędy.

Oto przykład z kolorowaniem składni:

'[username@hostname:/current-dir] (branch of git repo)'. 


Trzeba to dodać do ~/.bashrc:

parse_git_branch() {
     git branch 2> /dev/null | sed -e '/^[^*]/d' -e 's/* \(.*\)/ (\1)/'
}
export PS1="\[\e[32m\][\[\e[m\]\[\e[31m\]\u\[\e[m\]\[\e[33m\]@\[\e[m\]\[\e[32m\]\h\[\e[m\]:\[\e[36m\]\w\[\e[m\]\[\e[32m\]]\[\033[33m\]\$(parse_git_branch)\[\033[00m\]\[\e[m\]\[\e[32m\] >\[\e[m\] "


Kube-ps1

Pozwala na wyświetlanie aktualnego kontekstu kubernetes i przestrzeni nazw (domyślnie) w terminalu przez aktualizację PS1. Dobra wiadomość jest taka, że można go łatwo wyłączyć i włączyć, kiedy tylko tego potrzebujesz.

Github cli

Jest to ważne tylko dla osób używających Githuba jako systemu kontroli wersji. Github posiada narzędzie wiersza poleceń, które wykonuje większość rzeczy możliwych do wykonywania w tym portalu. Ale najbardziej użyteczna dla mnie jest możliwość łatwego tworzenia pull requestów z mojej aktualnej gałęzi lokalnej.

gh pr create --title "Title for PR" --body "Detailed description of pr"

docker-credential-helper-ecr

Jeśli tworzysz dużo obrazów dockera, często je wypychasz i ściągasz z rejestru kontenerów Amazona, to przyda Ci się to narzędzie. Ułatwia uwierzytelniania w usłudze ECR.

Dzięki za przeczytanie! To właśnie była lista narzędzi, które mogę wymienić z głowy. Ale… jeśli odkryję i nauczę się czegoś nowego, będę aktualizował listę.


Oryginał tekstu w języku angielskim przeczytasz tutaj.

<p>Loading...</p>