GNU/Linux >> Znalost Linux >  >> Linux

Jaký je příkaz gcloud, který umožňuje provoz http na instanci virtuálního počítače? (Není to pravidlo vytvořit firewall!)

Vyřešeno. Úplně nerozumím tomu, co se děje v zákulisí, ale řešení tohoto vyžaduje použití „tagů“, které spojují pravidla brány firewall v síti s instancí virtuálního počítače. Pokud v tuto chvíli vidím, je to relevantní pouze pro http a https. Zdá se, že ostatní porty, které jsou otevřené v síti a virtuálním počítači, fungují bez tohoto dalšího kusu.

Pokud si prohlédnete pravidla brány firewall, pravděpodobně uvidíte, že pravidla pro port 80 a 443 mají značky „http-server“ a „https-server“. Pokud ne, budete je muset přidat (nebo jiné značky dle vašeho výběru). Ukázalo se, že instance potřebuje tyto značky také přidat.

Chcete-li přidat značky do existující instance virtuálního počítače, použijte tento příkaz gcloud:

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

Chcete-li přidat značky v době vytváření instance, zahrňte tento příznak do svého příkazu:

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

Pokud se podíváte do GCE gui, uvidíte, že zaškrtávací políčka „Povolit http provoz“ a „Povolit https provoz“ jsou poté zaškrtnuta. Požadavky a odpovědi pak proudí přes porty 80 a 443 podle očekávání.


Jednou ze super užitečných věcí, které Google Cloud Console nabízí, je odkaz ve spodní části vytvoření pro většinu zdrojů pro REST API a příkazový řádek k vytvoření stejného zdroje. Snažím se, abych byl schopen dělat vše, co umím v konzole z příkazového řádku SDK, takže to často používám, když mám otázku, jako je ta vaše.

Se stejnou otázkou jako výše jsem v konzole vytvořil VM a vybral „Povolit přenos HTTP“. Když se podíváte na příkazový řádek, uvidíte dva příkazy. První je příkaz create s výše uvedenou značkou (http-server):

gcloud beta compute --project=XXXX instances create cgapperi-vm1 \
--zone=XXXXX --machine-type=f1-micro --subnet=default \
--tags=http-server --image=debian-10-buster-v20200413 \
--image-project=debian-cloud --boot-disk-size=10GB \
--boot-disk-type=pd-standard --boot-disk-device-name=cgapperi-vm1 \
--no-shielded-secure-boot --shielded-vtpm --shielded-integrity-monitoring \
--reservation-affinity=any

Druhý ve skutečnosti vytváří pravidlo brány firewall (default-allow-http ) a nastaví cíl pro požadavky na značku http-server (--target-tags=http-server ) na tcp portu 80 (--rules=tcp:80 ) z příchozích požadavků (--direction=INGRESS ) ze všech zdrojů (--source-ranges=0.0.0.0/0 ):

gcloud compute --project=XXXX firewall-rules create default-allow-http \
--direction=INGRESS --priority=1000 --network=default --action=ALLOW \
--rules=tcp:80 --source-ranges=0.0.0.0/0 --target-tags=http-server

Doufám, že to bude užitečné pro někoho dalšího.

POZNÁMKA: Snížil jsem výstup gcloud compute instance create na příslušné bity, aby se omezil nepořádek.


Linux
  1. Co je příkaz cURL a jak jej používat?

  2. V čem je kouzlo - (pomlčka) v parametrech příkazového řádku?

  3. Změněna PATH, nyní dostávám příkaz nenalezen pro všechno

  1. Povolit webový provoz v softwarové bráně firewall s firewallem

  2. Co má příkaz export dělat v Linuxu?

  3. Jaký je smysl příkazu hostnamectl?

  1. Povolit webový provoz v softwarové bráně iptables

  2. Povolit webový provoz v softwarové bráně ufw

  3. Spravujte bránu firewall systému Windows Server 2012