Skydive on avatud lĂ€htekoodiga reaalaja vĂ”rgu ja protokolli analĂŒsaator. Selle eesmĂ€rk on pakkuda ĂŒksikasjalikku ĂŒlevaadet sellest, mis toimub teie vĂ”rgu infrastruktuuris.
Teie huvi Àratamiseks toome vÀlja mÔned Skydive'i ekraanipildid. Allpool on postitus Skydive'i sissejuhatuseks.


Postitus ââ töötab Habris.
Skydive kuvab vĂ”rgu topoloogiat, saades vĂ”rgu sĂŒndmusi Skydive agentidelt. Kas olete kunagi kĂŒsinud, kuidas lisada vĂ”i kuvada topoloogia diagrammil vĂ”rgu komponente, mis asuvad vĂ€ljaspool Skydive agentide vĂ”rku, vĂ”i mittevernetekohaseid objekte, nagu TOR, andmehoidlad jne? Sellega ei pea enam muretsema tĂ€nu Node rule API-le.
Alates versioonist 0.20 pakub Skydive Node rule API, mida saab kasutada uute sĂ”lmede ja servade loomiseks ning olemasolevate sĂ”lmede metaandmete vĂ€rskendamiseks. Node rule API on jaotatud kaheks API liidesteks: sĂ”lme reegli API ja serva reegli API. SĂ”lme reegli API-d kasutatakse uue sĂ”lme loomiseks ja olemasoleva sĂ”lme metaandmete vĂ€rskendamiseks. Serva reegli API-d kasutatakse kahe sĂ”lme vahelise seose loomiseks, st kahe sĂ”lme ĂŒhendamiseks.
Selles blogis vaatame kahte kasutusjuhtu, millest esimene on vĂ”rgu komponent, mis ei ole osa Skydiveâist. Teine variant on mittevernetekohane komponent. Enne seda uurime mĂ”ningaid pĂ”hiviise topoloogia reegli API kasutamiseks.
Skydive'i sÔlme loomine
SĂ”lme loomiseks peate mÀÀrama unikaalse sĂ”lme nime ja lubatud sĂ”lme tĂŒĂŒbi. Samuti vĂ”ite pakkuda mĂ”ningaid tĂ€iendavaid parameetreid.
skydive client node-rule create --action="create" --node-name="node1" --node-type="fabric" --name="node rule1"
{
"UUID": "ea21c30f-cfaa-4f2d-693d-95159acb71ed",
"Name": "node rule1",
"Description": "",
"Metadata": {
"Name": "node1",
"Type": "fabric"
},
"Action": "create",
"Query": ""
}Skydive'i sÔlmede metaandmete vÀrskendamine
Olemasoleva sĂ”lme metaandmete vĂ€rskendamiseks peate esitama Gremlin keeles pĂ€ringu sĂ”lmede valimiseks, milles soovite metaandmeid vĂ€rskendada. Vastavalt teie pĂ€ringule saate vĂ€rskendada ĂŒhe vĂ”i mitme sĂ”lme metaandmeid ĂŒhe sĂ”lme reegli abil.
skydive client node-rule create --action="update" --name="update rule" --query="G.V().Has('Name', 'node1')" --metadata="key1=val1, key2=val2"
{
"UUID": "3e6c0e15-a863-4583-6345-715053ac47ce",
"Name": "update rule",
"Description": "",
"Metadata": {
"key1": "val1",
"key2": "val2"
},
"Action": "update",
"Query": "G.V().Has('Name', 'node1')"
}Skydive'i servitud luude loomine
Raja loomiseks tuleb mÀÀrata lĂ€hte- ja sihtsĂ”lmed ning serva tĂŒĂŒp. AlamĂ”lemasse sĂ”lme loomisel peab seose tĂŒĂŒp olema ownership. Samuti peab layer2 seose loomisel seose tĂŒĂŒp olema layer2. Kahe sĂ”lme vahel saab luua rohkem kui ĂŒhe seose, kuid seose tĂŒĂŒbid peavad olema erinevad.
skydive client edge-rule create --name="edge" --src="G.v().has('TID', '2f6f9b99-82ef-5507-76b6-cbab28bda9cb')" --dst="G.V().Has('TID', 'd6ec6e2f-362e-51e5-4bb5-6ade37c2ca5c')" --relationtype="both"
{
"UUID": "50fec124-c6d0-40c7-42a3-2ed8d5fbd410",
"Name": "edge",
"Description": "",
"Src": "G.v().has('TID', '2f6f9b99-82ef-5507-76b6-cbab28bda9cb')",
"Dst": "G.V().Has('TID', 'd6ec6e2f-362e-51e5-4bb5-6ade37c2ca5c')",
"Metadata": {
"RelationType": "both"
}
}Esimene kasutusjuht
Selles jaotises vaatame, kuidas nÀidata vÔrku mittekuuluvat seadet skydive topoloogias. Oletame, et meil on andmesalvestus, mida tuleb kuvada skydive topoloogias koos mÔningate kasulike metaandmetega.
Me peame lihtsalt looma sĂ”lme reegli, et lisada seade topoloogiasse. Saame seadmest metaandmeid lisada kas create kĂ€su osana vĂ”i hiljem luua ĂŒhe vĂ”i mitu update node rule kĂ€sku.
KÀivitage allolev sÔlme reegli kÀsk, et lisada salvestusseade topoloogia skeemi.
skydive client node-rule create --action="create" --node-name="sda" --node-type="persistentvolume" --metadata="DEVNAME=\/dev\/sda,DEVTYPE=disk,ID.MODEL=SD_MMC, ID.MODEL ID=0316, ID.PATH TAG=pci-0000_00_14_0-usb-0_3_1_0-scsi-0_0_0_0, ID.SERIAL SHORT=20120501030900000, ID.VENDOR=Generic-, ID.VENDOR ID=0bda, MAJOR=8, MINOR=0, SUBSYSTEM=block, USEC_INITIALIZED=104393719727"KÀivitage allolev servareegli kÀsk, et siduda loodud sÔlm hosti sÔlmega.
skydive client edge-rule create --src="G.V().Has('Name', 'node1')" --dst="G.V().Has('Name', 'sda')" --relationtype="ownership"PĂ€rast ĂŒlaltoodud kĂ€skude kĂ€itamisel on nĂŒĂŒd vĂ”imalik nĂ€ha seadet skydive topoloogia skeemil koos mÀÀratud metaandmetega, nagu on nĂ€idatud alloleval joonisel.

Teine kasutusjuht
Sel juhul nĂ€eme, kuidas lisada vĂ”rgu seade, mis ei kuulu skydive vĂ”rgustikku. Vaadake seda nĂ€idet. Meil on kaks skydive agenti, mis töötavad kahes erinevas hostis, ning nende kahe hosti ĂŒhendamiseks vajame TOR lĂŒlitit. Kuigi me saame selle saavutada, mÀÀrates struktuuri sĂ”lmed ja lingid konfiguratsioonifailis, vaatame, kuidas seda saab teha ka API topoloogia reeglitega.
Ilma TOR lĂŒlitita nĂ€evad kaks agenti vĂ€lja nagu kaks erinevat sĂ”lme ilma igasuguste linkideta, nagu on nĂ€idatud alloleval joonisel.

NĂŒĂŒd kĂ€ivitage jĂ€rgmised SĂ”lme reegli kĂ€sklused, et luua TOR lĂŒliti ja port.
skydive client node-rule create --node-name="TOR" --node-type="fabric" --action="create"
skydive client node-rule create --node-name="port1" --node-type="port" --action="create"
skydive client node-rule create --node-name="port2" --node-type="port" --action="create"Nagu nĂ€ete, on TOR lĂŒliti ja port loodud ning lisatud skydive topoloogiasse, ja nĂŒĂŒd nĂ€eb topoloogia vĂ€lja nagu alloleval joonisel.

NĂŒĂŒd kĂ€ivitage allolevad Edge Reegli kĂ€sklused, et luua seos TOR lĂŒliti, port 1 ja hosti 1 avaliku liidese vahel.
skydive client edge-rule create --src="G.V().Has('Name', 'TOR')" --dst="G.V().Has('Name', 'port1')" --relationtype="ownership"
skydive client edge-rule create --src="G.V().Has('Name', 'TOR')" --dst="G.V().Has('Name', 'port1')" --relationtype="layer2"
skydive client edge-rule create --src="G.V().Has('TID', '372c254d-bac9-50c2-4ca9-86dcc6ce8a57')" --dst="G.V().Has('Name', 'port1')" --relationtype="layer2"KĂ€ivitage jĂ€rgmised kĂ€sklused, et luua seos TOR lĂŒliti, port 2 ja hosti 2 avaliku liidese vahel.
skydive client edge-rule create --src="G.V().Has('Name', 'TOR')" --dst="G.V().Has('Name', 'port2')" --relationtype="layer2"
skydive client edge-rule create --src="G.V().Has('Name', 'TOR')" --dst="G.V().Has('Name', 'port2')" --relationtype="ownership"
skydive client edge-rule create --src="G.V().Has('TID', '50037073-7862-5234-4996-e58cc067c69c')" --dst="G.V().Has('Name', 'port2')" --relationtype="layer2"NĂŒĂŒd luuakse seosed ownership ja layer2 TOR lĂŒliti ja porti vahel ning layer2 seosed agentide ja portide vahel. NĂŒĂŒd nĂ€eb lĂ”plik topoloogia vĂ€lja nagu alloleval joonisel.

NĂŒĂŒd on kaks hosti / agenti Ă”igesti ĂŒhendatud ning saate kontrollida ĂŒhendust vĂ”i luua lĂŒhima tee pĂŒĂŒdmise kahe hosti vahel.
P.S. Link
Otsitakse inimesi, kes vÔiksid kirjutada postitusi Skydive'i teiste vÔimaluste kohta.
skydive.network-i kohta.
Allikas: habr.com
