Cockpit - server manager "za mase"

Pored brojnih prednosti, komandnolinijske edicije serverskih operativnih sustava imaju i jednu manu: potrebno je posvetiti im se, svakodnevno s njima raditi kako bi se stvarno iskoristili njihovi potencijali i efikasno se upravljalo serverima iz Bash ili Powershell ljuske. Nezgodno je što se danas više nego ikada od sistemaca očekuje aktivni angažman u brojnim drugim stručno-tehničkim temama i dilemama, pri čemu većina njih nimalo ne doprinosi unaprijeđenju vještine administriranja servera. Stoga su, iako ne mogu (niti trebaju) zamijeniti naredbeni redak, ipak dobrodošli GUI orijentirani server manageri poput Cockpita, prvenstveno zbog toga što se njihovom implementacijom poslovi nadgledanja servera i jednostavniji zahvati mogu delegirati djelatnicima help-deska, testerima i developerima kad rade u razvojnim i testnim okolinama. I sistemcima-žutokljuncima olakšati će, ili barem uljepšati, neke poslove.  

Za Microsoftov Windows Admin Center zainteresirali smo se dok se još odazivao na ime Honolulu: https://sysportal.carnet.hr/node/1771, sad je na red došao Cockpit, Red Hatovo dijete. Zabavlja spoznaja koliko su ta dva besplatna alata slična i konceptualno i arhitekturalno, usporedite drugu sliku iz članka o MS-ovom alatu s nižom slikom!

 

U terminologiji open source projekta cockpit-project.org, iza kojeg stoji Red Hat, primarni Cockpit server je onaj kojemu pristupamo web preglednikom, on prihvaća HTTPS konekcije. Kako tipičan Linux server, recimo CentOS 7.x, pretvoriti u primarni Cockpit server? Praktično sve popularne serverske Linux distribucije imaju Cockpit u svojim službenim repozitorijima softverskih paketa, znači, maksimalno je olakšana ne samo instalacija nego i održavanje ovog alata tijekom njegovog životnog vijeka na serveru. Na CentOS ćemo Cockpit instalirati kako je prikazano nižom slikom, ali samo na primarnom serveru.

 

Ono što ne piše u instalacijskim uputama – očito su pisane s ciljem da čitatelja motiviraju za instalaciju Cockpita ;o) - jest sljedeće:

Gornjim postupkom smo na primarni Cockpit server instalirali (i omogućili) nekolicinu jezgrenih komponenti Cockpita, jedna od njih je cockpit-ws, servis koji na portu TCP 9090 čeka na HTTPS konekcije. 

Što se tiče sekundarnih servera, na njima ćemo odraditi samo prvu točku uputa i uvjeriti se da sshd sluša na portu TCP 22. To je zato što nas Cockpit instanca na primarnom serveru usmjerava SSH konekcijom ka sekundarnim serverima (vidi prvu sliku), pri čemu gađa baš defaultni SSH port.

Kad se s računala, smartfona... spojimo na web konzolu primarnog Cockpit servera, nećemo odmah moći postaviti sekundarne servere na nadzornu ploču zbog jednostavnog razloga – nema je. Moramo ju instalirati, znači, samo na primarnom serveru zadajemo:

yum install cockpit-dashboard

Osvježimo Cockpitovo sučelje i dalje je lako, rabeći gumb + začas ćemo si složiti popis servera koje planiramo administrirati:

 

Instalacijom jezgre Cockpita dobijamo omanji broj alata, dodatne alate ugnježđujemo u Cockpit instaliranjem ekstenzija, recimo, za upravljanje diskovnim podsustavom servera instalirat ćemo cockpit-storaged, za upravljanje ažuriranjima tu je cockpit-packagekit, cockpit-docker je... znamo već. Uočite da ekstenzije instaliravamo na one servere na kojima ih želimo koristiti, nije rješenje sve to nabacati isključivo na primarni server. 

Cockpit dopušta promjenu defaultnog TCP 9090 na kojem sluša njegov web serverčić, obično se ta mogućnost iskoristi kao jedna od “mina” kontra previše znatiželjnih likova. Mimo očekivanja, ne editira se cockpit.conf nego se ovako napravi:

* u /etc/systemd/system/ kreirati direktorij cockpit.socket.d

* u tom direktoriju kreirati datoteku listen.conf

* u tu datoteku upisati (i spremiti, dakako) tri retka teksta:

[Socket]

ListenStream=

ListenStream=9876 (ili neki drugi nezauzet visoki port)

* kao minimum, otvoriti na vatrozidu konekcije ka tom portu; vjerojatno ćemo morati rekonfigurirati i selinux podsustav ako radi u enforcing režimu.

 Usput, ako imamo server s više pristupnih IP, u listen.conf datoteci možemo definirati adresu na kojoj će slušati cockpit-ws (defaultno sluša na svima), još jedna lako provediva mjera zaštite sustava. Što se tiče TLS certifikata kao preduvjeta za HTTPS konekcije, trenutkom prvog spajanja na njegovu web konzolu Cockpit će generirati samopotpisani certifikat i spremiti ga u /etc/cockpit/ws-certs.d. Spustimo li ovdje regularni TLS certifikat, bit će prihvaćen od Cockpita. Što se tiče konekcija i autentikacija na sekundarne servere, Cockpit se u cijelosti oslanja na SSH servis OS-a, jedini mu je zahtjev da SSH daemon sluša na portu TCP 22.

Slijedi mala pomoć adminima CentOS-a i Fedore: ekstenzija za krpanje OS-a neće raditi jer ju ometa Subscription Manager, taj sjeda u sustav tijekom inicijalne instalacije Cockpita. Ta rekosmo da je Cockpit Red Hatovo čedo ... :o). Kakogod, zadajte nižu naredbu i sve će biti ok:

rpm -e --nodeps subscription-manager

Cockpit se razvija s idejom da u svakom mogućem aspektu koristi funkcionalnosti OS-a domaćina. Tijekom instalacije, jezgra se povezuje sa sistemskim procesima i API-ima (systemd/DBus) te naša kliketanja u Cocpitovom nadasve ugodnom sučelju prevodi u iste one pozive kojima se služi interpreter naredbi OS-a kad ove koristimo iz SSH ili konzolne sesije. Tijekom ulogiravanja u Cockpit, autentikaciju i autorizaciju odrađuje OS. To znači da će ulogirani korisnik biti identificiran od strane OS-a, potom će u sustavu imati iste dozvole kakve ima u standardnoj sesiji. Utoliko je isplativo uočiti opciju Reuse my password for privileged tasks koja nas čeka već na logon ekranu primarnog Cockpit servera. Opcija je ekvivalent sudo i pkexec naredbama, znači, ako ju uključimo prije ulogiravanja, Cockpit će proslijediti zaporku autorizacijskom podsustavu OS-a kad ovaj to zatraži. Naravno, opcija će djelovati samo za korisničke račune kojima je uistinu omogućeno eskaliranje privilegija unutar aktivne sesije, tipično, zahvatom administratora u sudoers.

Projekt hvali štedljiv odnos svog uratka prema resursima servera domaćina, nakon nekih testova i opažanja slažemo se s tim stavom. Pored spomenute modularnosti, čime nam je omogućeno instaliravanje samo onih funkcionalnosti koje su nam stvarno potrebne, treba pohvaliti i samoinicijativno deaktiviranje većine učitanih programskih modula nakon desetminutnog perioda neaktivnosti. Jasno, oni se brzo reaktiviraju kad dobiju signal od systemd procesa a ovaj, pak, reagira čim osjeti konekciju na Cockpitov port. 

Tijekom perioda ovladavanja ovim GUI alatom, čovjek se ne može oteti dojmu da je uistinu riječ o vrlo kvalitetnom komadu softvera. Tek pomalo iritira prisutnost ekstenzije za primjenu sistemskih zakrpi - tko nije spreman tako važan posao odrađivati uporabom yum/rpm odn. apt/dpkg dueta, ne treba to raditi nikako - a izostanak bilo kakve mogućnosti manipuliranja direktorijima i datotekama, lokalnim ili dijeljenim. Ili je vaš autor postao zadrto mrzovoljno gunđalo... 

Članak završavamo slikom tipične Cockpitove radne površine. Kad odlučite istražiti ponudu neke radne površine, klikećite ili tapkajte gdje god stignete jer puno je podataka ispod prikazanih stavaka.

Vijesti: 
Kategorije: 
Vote: 
0
No votes yet