Skocz do zawartości
Lindsey

Zarządzanie serwerem z php

Polecane posty

Cześć, potrzebuję zrobić funkcję włączania wyłączania i restartu serwera VPS z poziomu panelu.

Tworzę autorski panel i nie wiem zbytnio jak się za to zabrać to znaczy jak wydać komendy bezpośrednio do serwera ?

 

PHP co prawda oferuje http://php.net/manual/en/book.ssh2.php możliwość łączenia po SSH jednak chodzi mi o to aby nie podawać przy każdej reinstalacji serwera nowego hasła root.

Udostępnij ten post


Link to postu
Udostępnij na innych stronach

chodzi o tego cms-a dla firm hostingowych tak?

 

Zrób to z poziomu api panelu jakie mają firmy - przeważnie jest to solusvm/hypervm.

Udostępnij ten post


Link to postu
Udostępnij na innych stronach
exec('/sbin/shutdown -r now');

Ale oczywiście skrypt musi mieć uprawnienia, aby to zrobić (zarówno dostęp do funkcji exec() jak i do wydania polecenia shutdown).

 

Edit. w/w polecenie dla restartu z konkretnego serwera, bo z matki komenda będzie wyglądała inaczej w zależności od rodzaju VPS.

Edytowano przez is_wm (zobacz historię edycji)

Udostępnij ten post


Link to postu
Udostępnij na innych stronach
Gość Kamikadze

Może zapisz sobie do bazy zakodowane hasło i przed reinstalem przez ssh2 odkoduj hasło i wpisz do komendy.

Udostępnij ten post


Link to postu
Udostępnij na innych stronach

Na innym forum napisałem odpowiedź lecz jak napiszesz w oparciu o jakie oprogramowanie tworzone są kontenery łatwiej będzie to rozpisać by realnie zdało egzamin. Hasło to nie wszystko bo klient może zmienić sobie port i przejść na klucz więc twoja teoria odnoście wykonania funkcji legnie w gruzach i będziesz to musiał zrobić po prostu manualnie.

Udostępnij ten post


Link to postu
Udostępnij na innych stronach

hmm a jak takie funkcje są rozwiązywane w panelach typu vesta ? jest tam opcja restartu poszczególnych usług i samego serwera :)

Udostępnij ten post


Link to postu
Udostępnij na innych stronach

Jest, oczywiście ale mylisz struktury zarządzania usługą www/dns itp w oparciu o konkretny panel i odpowiednie uprawnienia z zarządzaniem niezależnych środowisk wirtualnych. To zupełnie odrębne zagadnienie oparte na innych uprawnieniach.

Udostępnij ten post


Link to postu
Udostępnij na innych stronach

Jak w takim razie najlepiej to wykonać, aby było w miarę bezpieczne. :)

 

Akurat tutaj zależy mi tylko na tych 3 funkcjach. W panelu hostingowym z tego wątku http://www.webhostingtalk.pl/topic/53610-autorski-cms-panel-hostingowy-bilingowy/ do VPS'ów użyję API openstack ale tworzę równolegle drugi CMS/Sklepik/Blog dla serwerów gier i fajnie by było aby można było wykonać restartu serwera bezpośrednio z panelu :)

Udostępnij ten post


Link to postu
Udostępnij na innych stronach
Gość Kamikadze

Pod serwery gier masz łatwiej. Tworzysz powiedzmy dwóch użytkowników. Jeden z logowaniem po ssh drugi po ftp. Z pierwszego wykonujesz przez ssh2 komendy typu start ./ stop / restart / update a z drugiego korzysta "klient" do wrzucania plików.

 

Ewentualnie ssh tylko z wyznaczonych IPków żeby klient nie mógł po ssh się wbić tylko ftp to jeden user wystarczy.

Udostępnij ten post


Link to postu
Udostępnij na innych stronach

Musisz stworzyć w panelu z wątku ,który podałeś moduł odpowiedzialny za komunikację pomiędzy tym panelem ( w oparciu o API) a mechanizmem wykorzystywanym do tworzenia kontenerów i zarządzaniem nimi. To w wielkim skrócie, naprawdę wielkim. Problem polega jednak na tym jakie uprawnienia ma użytkownik końcowy ponieważ jeżeli będzie miał dostęp do SSH może zablokować jeden ze schematów który najłatwiej wdrożyć a mianowicie wykorzystując funkcje na których tobie zależy. Jestem przeciwnikiem stosowania tego typu rozwiązań. Poszedł bym właśnie w kierunku tylko i wyłącznie API co całkowicie pomija zmiany wprowadzone przez użytkownika końcowego ponieważ obsługa by miała formę nadrzędną i tym samym zależna jedynie od właściwości jakie zaprogramujesz - wykorzystasz. OpenStack daje naprawdę duże pole do popisu dla programistów więc albo przestudiujesz dokumentację i zrobisz to jak należy albo będziesz łatał mało profesjonalne i tym samym zawodne rozwiązania z piętrzącymi się co chwilę problemami.

Udostępnij ten post


Link to postu
Udostępnij na innych stronach
Gość Kamikadze

Niektórzy też robią to na zasadzie cron / mysql. Frontend dodaje rekord np. restart serwera o id 123 a na serwerze śmiga sobie jakiś daemon albo skrypt co minutę uruchamiany który wykonuje te polecenia i odhacza jako wykonane :)

Udostępnij ten post


Link to postu
Udostępnij na innych stronach

Niektórzy też robią to na zasadzie cron / mysql. Frontend dodaje rekord np. restart serwera o id 123 a na serwerze śmiga sobie jakiś daemon albo skrypt co minutę uruchamiany który wykonuje te polecenia i odhacza jako wykonane :)

Po co sobie utrudniać i dodatkowo obciążać system? Wykonanie takiej funkcji jest bardzo proste właśnie z wykorzystaniem tylko API. Działa na zasadzie włącz / wyłącz.

Udostępnij ten post


Link to postu
Udostępnij na innych stronach
Gość Kamikadze

Po co sobie utrudniać i dodatkowo obciążać system? Wykonanie takiej funkcji jest bardzo proste właśnie z wykorzystaniem tylko API. Działa na zasadzie włącz / wyłącz.

 

Ja tylko podsunąłem informacje jak niektóre panele były robione :)

Udostępnij ten post


Link to postu
Udostępnij na innych stronach

Bądź aktywny! Zaloguj się lub utwórz konto

Tylko zarejestrowani użytkownicy mogą komentować zawartość tej strony

Utwórz konto

Zarejestruj nowe konto, to proste!

Zarejestruj nowe konto

Zaloguj się

Posiadasz własne konto? Użyj go!

Zaloguj się


×