Nie jesteś zalogowany.
Jeśli nie posiadasz konta, zarejestruj je już teraz! Pozwoli Ci ono w pełni korzystać z naszego serwisu. Spamerom dziękujemy!
Prosimy o pomoc dla małej Julki — przekaż 1% podatku na Fundacji Dzieciom zdazyć z Pomocą.
Więcej informacji na dug.net.pl/pomagamy/.
Myślę o przesiadce z systemd na openrc ponieważ wydaje mi się że trochę ten init próbuje traktować adminów jak idiotów. Coś co można zrobić prostą edycją pliku tekstowego systemd chce jeszcze bardziej ułatwiać. Od takich rzeczy powinno być GUI na desktopie a na serwerze takie rzeczy są zbędne, jak jest kumaty sysadmin. Najbardziej absurdalnym przykładem jest run0, który próbuje nieudolnie naśladować sudo. Inna rzecz, która mi się nie podoba to to, że systemd próbuje integrować zbyt wiele rzeczy naraz i wprowadza swoje niepotrzebne moim zdaniem funkcjonalnosci typu http server dla journala. Binarne logi też niezbyt mi się podobają. No i ogólnie wolę mieć chyba tradycyjnie crona, sysklogd itd. niż wszystko w jednej paczce.
Są tu osoby, które wcześniej używały systemd zanim przesiadły się na dystrybucje bez systemd? Czy to prawda, że wiele rzeczy które powinien ogarniać porządny init openrc umie czy może się zdarzyć że openrc zacznie mnie ograniczać? Z tego co piszą na gentoo wiki openrc wspiera cgroups, user services itp rzeczy
Online
Niestety mało dystrybucji z takim wyborem, systemd robi się jak WIndows - "jedynie słuszny..". Gentoo to jedne z nielicznych distro gdzie user sam wybiera to i OpenRC jest w pełni dopracowany dla programów. Żeby chociaż te najpopularniejsze distra miały taką możliwość wyboru. A poza tym warto obejrzeć: https://www.youtube.com/watch?v=CV1NXYFXjIE
Offline
whiteman8 napisał(-a):
Są tu osoby, które wcześniej używały systemd zanim przesiadły się na dystrybucje bez systemd? Czy to prawda, że wiele rzeczy które powinien ogarniać porządny init openrc umie czy może się zdarzyć że openrc zacznie mnie ograniczać? Z tego co piszą na gentoo wiki openrc wspiera cgroups, user services itp rzeczy
Tak, korzystałem z openrc na Debianie Sidzie ale lat temu to było może z ~10. Miał swoje plusy i minusy, na pewno był szybszy niż sysv i zastępował sysv (i częściowo systemd).
Tyle, że jak mi w sidzie schrzanili dźwięk a nie chciało mi się bawić w cofanie paczek to poszedłem na Ubuntu LTS na okres chyba dwóch wydań, a potem finalnie na Debiana Stable z systemd i tak sobie korzystam już ładnych kilka lat.
whiteman8 napisał(-a):
Najbardziej absurdalnym przykładem jest run0, który próbuje nieudolnie naśladować sudo.
W Debianie -> aktualnie systemd z tym run0 jest w sidzie. Z ciekawości sprawdzę w ciągu kilku dni, jakoś cudem taka niespodzianka mi umknęła. Do stable jak nie wejdzie do 13 to na pewno do 14.
Nie da się tego wyłączyć? Lub skonfigurować jak sudo? XD
whiteman8 napisał(-a):
Inna rzecz, która mi się nie podoba to to, że systemd próbuje integrować zbyt wiele rzeczy naraz i wprowadza swoje niepotrzebne moim zdaniem funkcjonalnosci typu http server dla journala. Binarne logi też niezbyt mi się podobają. No i ogólnie wolę mieć chyba tradycyjnie crona, sysklogd itd. niż wszystko w jednej paczce.
No nie do końca tak jest. Według mnie, jeśli jesteś ogarniętem sysadminem to stawiasz system od zera. Tylko że czasami niektórych zależności nie da się uniknąć:
https://forum.dug.net.pl/viewtopic.php?pid=336020#p336020
Dwa systemy i dwa różne podejścia XD wydaje mi się że większość problemów pochodzi po prostu ze złej, domyślnej konfiguracji w Ubuntu pochodnych (bo samo LTS do 22.04 sprawdzało się ok).
Ja np z network managera korzystam bo u mnie się sprawdza, paczek z "systemd" w nazwie mam ze 3 (systemd, systemd-sysv i systemd-timesyncd) i nigdy problemów nie miałem. U mnie żadnych dodatków w postaci networkd, netplanów i innych bzdetów po prostu nie ma bo - jeszcze - się da. Raz czy dwa razy jakiś tam zgrzyt z montowaniem partycji miałem ale doszedłem o co chodzi i tyle.
Systemd ma swoje plusy bo zamiast pamiętać o konfiguracji 15 innych paczek to robisz wszystko w jednym. Dopóki w Debianie Stable, Archu i Gentoo będą mieli w miarę rozsądne podejście to nie ma czego się obawiać. Problem będzie jak systemd zacznie wymuszać ich własne narzędzia do np konfiguracji sieci itd. Jak tego systemd wprowadzali do użytku to było dużo płaczu, lamentu i zgrzytu i co, i taki zły wcale nie jest XD
Offline
Nie tyle "jedynie słuszny" co wygodny — cała masa ludzi przestała pracować nad innymi projektami, które mają swoje ograniczenia, przez co przepaść między systemd a tymi projektami jeszcze bardziej się pogłębiła przez ostatnią dekadę. Czyli wszedł systemd ze swoimi rozwiązaniami, ludzie zobaczyli, że to w sumie użyteczne, więc po co tworzyć inne rozwiązania skoro są te. Systemd wdraża kolejne rozwiązania... itd. Tak samo z run0. Sudo miało problemy od początku swojego istnienia i każdy kto używał "su" (i kto dalej używa, np. ja. xD) nigdy tak naprawdę nie korzystał z sudo, bo po co? To tylko wdrażanie dodatkowej przestrzeni ataku, a błędów w tym sudo było (i ciągle jest) tyle, że powinno się go zlikwidować do jego i naszego dobra. xD I dlatego własnie wymyślili ten run0, który ma adresować te problemy z sudo. Czy można było stworzyć inny projekt niż pchać run0 do systemd, no można ale jakoś nikt tego nie zrobił no i dlatego ci od systemd to sobie ogarnęli, tak samo jak i całą masę innych rzeczy.
Ten przykład z serwerem http i journal'em jest trochę dziwny. jeśli chcesz przesyłać logi z jednej maszyny do drugiej przez sieć, to nie ma innej opcji jak taka, by jedna maszyna była klientem, a druga serwerem. Nie oznacza to, że na maszynie docelowej będziesz miał oprogramowanie pokroju apache, który będzie nasłuchiwał zapytań www. xD Jasne, jakieś oprogramowanie jest potrzebne by te pakiety odebrać i przetworzyć ale tak działa komunikacja sieciowa i bez oprogramowania nie była by możliwa.
Ja mam u siebie journal zbierający logi z całego systemu. Mam też rsyslog, i pewne logi rozgraniczam sobie równolegle do osobnych plików tekstowych. Np. u mnie rsyslog działa też jako serwer logów:
# netstat -napletu | grep -i rsyslog tcp 0 0 0.0.0.0:514 0.0.0.0:* LISTEN 0 25876 2002/rsyslogd tcp 0 0 192.168.1.150:514 192.168.1.1:51612 ESTABLISHED 0 3594848 2002/rsyslogd tcp 0 0 192.168.1.150:514 192.168.1.1:56580 ESTABLISHED 0 8353494 2002/rsyslogd tcp 0 0 192.168.1.150:514 192.168.1.1:47572 ESTABLISHED 0 8341372 2002/rsyslogd tcp 0 0 192.168.1.150:514 192.168.1.1:49540 ESTABLISHED 0 2212460 2002/rsyslogd tcp 0 0 192.168.1.150:514 192.168.1.238:59888 ESTABLISHED 0 11860721 2002/rsyslogd tcp 0 0 192.168.1.150:514 192.168.1.1:34360 ESTABLISHED 0 13393505 2002/rsyslogd tcp 0 0 192.168.1.150:514 192.168.1.1:36188 ESTABLISHED 0 86345 2002/rsyslogd tcp6 0 0 :::514 :::* LISTEN 0 25877 2002/rsyslogd udp 0 0 0.0.0.0:514 0.0.0.0:* 0 25233 2002/rsyslogd udp6 0 0 :::514 :::* 0 25234 2002/rsyslogd
No i jakoś nie słyszę oburzenia typu: dlaczego rsyslog działa jak serwer www?!?! Przecie to narzędzie do logowania komunikatów systemowych. xD Dla tych ciekawskich, to logi są z RPI (TV) i OpenWRT (router) i wyświetlane u mnie na konsoli na pulpicie. xD
Mówisz o formacie binarnym logów — to nie tyle format binarny co bardziej struktura optymalizacyjna, która nie może być zapisana w postaci zwykłego tekstu i dlatego masz format binarny. To tak jakbyś napisał na realnej kartce program komputerowy i dziwił się, że się nie uruchamia jak w niego klikniesz dwa razy. xD Jak zajrzysz sobie w plik tekstowy z logiem, to raz dwa zobaczysz, że pewne pozycje się nieustannie powtarzają, np. data, hostname, nazwa procesu czy jego numerki, itp. To z kolei sprawia, że log zaczyna rosnąć objętościowo. Po to własnie wymyślili ten format logu journal'a, by te wszystkie pola zoptymalizować i by log, który można zapisać w 10M, nie zajmował 1G przestrzeni dysku. Oczywiście kompresja w standardzie. xD Wciąż możesz taki log wyeksportować sobie do formatu tekstowego, jeśli faktycznie potrzebujesz takiego.
Systemd ma swoje nieudolne podejścia np. te z przetwarzaniem plików fstab czy crypttab, choć ogromna większość ludzi, którzy używają tych plików nie wie, że systemd generuje z nich swoje rzeczy i to w oparciu o nie montuje zasoby a nie bezpośrednio przetwarza wpisy w fstab/crypttab. I tak, z jednej strony struktura tych plików jest prosta i raz dwa można się zorientować co gdzie montować, a w razie problemów szybka edycja i po sprawie. A w przypadku tych mechanizmów systemd? Ja za CH nie wiem, który dysk jest sprawdzany w poszukiwaniu błędów podczas startu systemu albo z którym są problemy, bo w fstab mam zdefiniowane wpisy po UUID — więc tak to wnerwia, choć jeszcze jakiś czas temu tak samo było z usługami podczas startu systemu, gdzie tylko opis był chyba uwzględniany, więc też nie szło się połapać z jaką usługą są problemy ale to zmienili i teraz do wyboru jest nazwa usługi, jej opis albo jedno i drugie. Może kiedyś te usługi od montowania zasobów ogarną by było wiadomo co jest co. xD
A co do innych init'ów, to jak sobie ogarniesz system, tak się w nocy wyśpisz. xD Jak systemd zaczął szantażować mojego debiana to próbowałem się go pozbyć, tj. wywalić systemd i wgrać sysvinit. Technicznie jest to wykonalne ale lepszym rozwiązaniem jest fabryczne zainstalowanie systemu bez systemd. Niemniej jednak, debian na sysvinit obecnie jest moim zdaniem nieużywalny dla nawet dość zaawansowanego użytkownika — po takim przejściu trzeba by poświęcić sporo czasu by odtworzyć funkcjonalność oferowaną przez systemd. I dlatego prawie nikomu się nie chce już w to bawić — to było dobre 20 lat temu jak chodziliśmy do szkoły i mieliśmy czas. xD
Ja lubię pewne rozwiązania systemd, ze sporej części innych nie korzystam, a przez parę z nich mnie szlag trafia. Gdyby była alternatywa dla tego init'a to bym się z niego zawiną ale problem w tym, że takiej nie ma i raczej nie prędko ktoś ją stworzy. xD Może kiedyś postawię swój system od nowa i po mału będę implementował kolejno rozwiązania, których używam na co dzień i bez których zbytnio nie idzie funkcjonować ale to będzie raczej dualboot, z tym że zamiast windows/linux, to będzie linux-systemd/linux-sysvinit. xD
Offline
morfik napisał(-a):
Nie tyle "jedynie słuszny" co wygodny — cała masa ludzi przestała pracować nad innymi projektami, które mają swoje ograniczenia, przez co przepaść między systemd a tymi projektami jeszcze bardziej się pogłębiła przez ostatnią dekadę. Czyli wszedł systemd ze swoimi rozwiązaniami, ludzie zobaczyli, że to w sumie użyteczne, więc po co tworzyć inne rozwiązania skoro są te.
Rozumiem że integracja, wygoda ale pomyśl, co jeśli dane rozwiązanie oferowane przez systemd okaże się albo niewystarczające, bądź będzie coś robić nie tak jak powinno i nic nie będzie się dało na to poradzić. Nie wszystko wyłączysz flagami na etapie kompilacji tak jak w Gentoo. Na dystrybucjach opartych na paczkach jesteś właściwie zdany na łaskę maintainerów. Co w takiej sytuacji? systemctl mask będziesz robić? Według mnie prościej postawić te usługi co trzeba niż wyłączać to co niepotrzebne w systemd. Można też postawić drugą usługę obok tej oferowanej przez systemd, tylko nawet jeśli uda ci się wyłączyć tę systemd to nadal marnujesz miejsce na dysku. Przy ograniczonych zasobach sprzętowych to może mieć znaczenie.
Skąd pewność że wszystkie projekty systemd-cośtam są dopracowane a nie zrobione na zasadzie że może się przyda? Czy pchanie wszystkiego do jednego wora jakim jest systemd nie doprowadzi do takiego podejścia? Mi się wydaje że każdy program w systemie powinien robić jedną rzecz a dobrze i oferować jakiś prosty input/output, niekoniecznie musi być to plajntekst, może to być też unix socket. Takie podejście według mnie bardziej sprzyja dobrym praktykom jeśli chodzi o rozwój oprogramowania.
Od konfiguracji całego systemu są takie narzędzia jak Chef, Salt, Ansible, tym nie powinien się zajmować init.
morfik napisał(-a):
Sudo miało problemy od początku swojego istnienia i każdy kto używał "su" (i kto dalej używa, np. ja. xD) nigdy tak naprawdę nie korzystał z sudo, bo po co?
Chyba kogoś ostro porąbało żeby run0, który ma pełnić podobną funkcję co sudo defaultował do gui i do tego zmieniał kolor terminala na czerwony. Kolejne traktowanie użytkowników linuksa jak debili, podobnie jak hostnamectl czy localectl jakby nie można było manualnie wyedytować /etc/hostname. Znowu, od takich rzeczy są dedykowane narzędzia do automatyzacji, zarządzania konfiguracją. Moje podejście do sysadminki jest takie że każdy serwis ma robić jedną rzecz a porządnie.
Co do sudo to przymierzam się do wypróbowania alternatywy w postaci narzędzia doas.
morfik napisał(-a):
Nie oznacza to, że na maszynie docelowej będziesz miał oprogramowanie pokroju apache, który będzie nasłuchiwał zapytań www.
Co gdy to oprogramowanie przestanie spełniać twoje wymagania? Jak wtedy wyeksportujesz journala po http nie tracąc funkcjonalności.
s/journal i http/cokolwiek z systemd zależne od rozwiązań oferowanych przez systemd/
Online