Wybór narzędzi do większych projektów pod linuksem

0

Siema, mam parę projektów w bashu, które rozrosły się do mniej więcej 800-1200 linijek kodu i przez swoje rozmiary są skomplikowane w utrzymaniu. W czym polecilibyście pisać większe rzeczy? Jakieś propozycje, co sądzicie o Ansible i Pythonie?

3

Co te skrypty robią?
Jeśli są to skrypty na za zadzie skrzynki z narzędziami, że masz kilkadziesiąt funkcji do administracji systemem i wybierasz czego użyć w danym momencie, to Perl. Masz wtedy prostszą składnie i możesz coś napisać zwięźle. Można też używać modułów i wersji 5 bez większych obaw, że za dwa lata producent każe Ci spadać. Perl nie ma pierdyliarda warstw abstrakcji pod sobą jak Python.
Ja Pythona znam od strony obliczeń i generowania raportów. Jest sporo pakietów w tym języku, więc też można w miarę prosto coś zapisać..

3

Różne skrypty, np. partycjonowanie na różne sposoby, instalacja gentoo, konfiguracja iptables

Odpowiem w poście, bo to jest ważne dla dyskusji. Perla w wersji 5 znajdziesz w wielu dystrybucjach i na wielu serwerach. Podobnie jak basha. Jeśli więc chcesz mieć uniwersalne zabawki na kilka następnych lat, to rozważ Perla. PCRE - przecież to wyrażenia regularne Perla, które inne języki przerabiają na swoją modłę. Polecenie grep też to umie. Można nawet powiedzieć, że Perl ma dużo wspólnego z powłokami w Linuksie i Uniksie.
Python będzie miał ładniejszy kod a Ansible czy Jenkins zajmie więcej dysku i RAMu. Tutaj lepiej będzie, jeśli zdecydujesz samemu. Ja znam Perla, Pythona i Jenkinsa - w każdym coś naskrobię. Pytanie czego Tobie opłaca się uczyć.

3

Nie znam Ansible, ale z tego co się orientuję służy bardziej do centralizacji zarządzania konfiguracją na wielu maszynach.
Perla też nie znam.
Python na pewno będzie czytelniejszy od Basha, za to Basha masz na (prawie) każdej maszynie Linux.

W Bashu możesz zrobić kilka sztuczek żeby był bardziej zarządzalny:

  1. używaj gita do zarządzania wersją
  2. używaj funkcji z lokalnymi zmiennymi i parametrami
  3. używaj modułów wciąganych przez "source" lub kropkę
  4. używaj plików konfiguracyjnych w formie modułów
  5. używaj logowania, mailowania błędów jeśli potrzeba
  6. korzystaj jeśli tylko się da z wbudowanych narzędzi (awk, sed, head, tail itd)
  7. używaj komentarzy i poprawnych nazw zmiennych
  8. używaj stałych

https://linuxhint.com/bash-programming-best-practices/

0

Jeśli te projekty napisane w bashu są typowo do zarządzania, konfiguracji itp serwerów to nawet się nie zastanawiaj tylko idź od razu w ansible. Praktycznie większość rzeczy jest out of the box. A dodatkowe rzeczy sobie ogarniesz jakimiś podstawowymi skryptami jeśli zajdzie taka potrzeba, nawet te twoje obecne możesz sobie rozbić na mniejsze i uruchamiać je z poziomu ansible.

1 użytkowników online, w tym zalogowanych: 0, gości: 1