2016-02-23 12 views
6

Po pierwsze, chcę używać wyłącznie poleceń gcloud, aby osiągnąć mój cel - NIE interfejsu GCE - więc proszę nie udzielać odpowiedzi za pomocą GUI!Co to jest polecenie gcloud zezwalające na ruch http na instancję maszyny wirtualnej? (To nie jest tworzenie reguły zapory ogniowej!)

Utworzono obraz z dysku dołączonego do wystąpienia maszyny wirtualnej. W tym celu musiałem usunąć instancję, zgodnie z dokumentacją Google dotyczącą tworzenia obrazów. Następnie ponownie utworzyłem instancję za pomocą obrazu.

Wygląda na to, że prawie wszystko działało doskonale, z tym wyjątkiem, że ruch http i https jest teraz wyłączony w instancji! Nie mogę już przeglądać witryny hostowanej na VM. Nie mogę też uzyskać odpowiedzi, wysyłając ping do domeny.

Kiedy patrzę w guid GCE (tylko patrząc - niczego nie modyfikując!) Widzę, że pola wyboru "Zezwalaj na ruch http" i "Zezwalaj na ruch https" nie są zaznaczone dla instancji. Wygląda na to, że musi to być związane z moim problemem.

Sprawdziłem reguły zapory na serwerze (ipTables) oraz w sieci Google utożsamianej z maszyną wirtualną. Nie ma nic złego w żadnym z nich (a VM jest zdecydowanie przypisana do tej sieci). Jeśli słucham na porcie 80 używając tcpdump na serwerze i przeglądam moją domenę, widzę, że żądania docierają do serwera, więc nie są blokowane przez przychodzącą zaporę. Ostrożnie zrestartowałem też Apache, ale upewnij się, że to nie problem.

Czy jest coś, co muszę zrobić, aby odblokować port 80 i 443 na zasadzie wychodzącej? Czy to możliwe w przypadku SELinuksa? Ponieważ obraz powinien dokładnie odzwierciedlać to, co było na dysku, nie powinien. Wygląda na to, że musi to być strona GCE ...

Co faktycznie zaznaczają pola wyboru dla instancji, jeśli nie edytują iptables na serwerze lub reguł zapory sieciowej Google? Co to jest polecenie gcloud, aby ustawić te przełączniki, lub najlepiej określić, że za pomocą polecenia create instancji?

Odpowiedz

13

Rozwiązany. Nie do końca rozumiem, co dzieje się za kulisami, ale rozwiązanie tego problemu wymaga użycia "tagów", które utożsamiają firerules w sieci z instancją VM. O ile widzę w tym momencie, dotyczy to tylko http i https. Inne porty otwarte w sieci i VM działają bez tego dodatkowego elementu.

Jeśli przeglądasz reguły zapory, prawdopodobnie zobaczysz, że reguły portu 80 i 443 mają odpowiednio znaczniki "serwer http" i "serwer https". Jeśli nie, musisz dodać te (lub inne wybrane tagi). Okazuje się, że instancja potrzebuje również dodanych tagów.

Aby dodać tagi do istniejącej instancji VM użyj polecenia gcloud:

gcloud compute instances add-tags [YOUR_INSTANCE_NAME] --tags http-server,https-server 

Aby dodać tagi w momencie utworzenia instancji, to tę flagę w swoim oświadczeniu:

gcloud compute instances create [YOUR_INSTANCE_NAME] --tags http-server,https-server 

Jeśli spojrzysz w GCE gui, zobaczysz pola wyboru "Zezwalaj na ruch HTTP" i "Zezwalaj na ruch z https". Żądania i odpowiedzi następnie przepływają zgodnie z oczekiwaniami w portach 80 i 443.