Skydive ืืื ืึทื ืขืคึฟืขื ืขื ืืงืืจ, ืคืึทืงืืืฉ-ืฆืืื ื ืขืฅ ืืึทืคึผืึทืืึทืืืฉื ืืื ืคึผืจืึธืืึธืงืึธื ืึทื ืึทืืืืขืจ. ืขืก ืืืื ืฆื ืฆืืฉืืขืื ืึท ืคืืืฉืืขื ืืืง ืืืขื ืฆื ืคึฟืึทืจืฉืืืื ืืืึธืก ืืื ืืขืฉืขืขื ืืฉ ืืื ืึท ื ืขืฅ ืื ืคืจืึทืกืืจืึทืงืืฉืขืจ.
ืฆื ืืื ืืขืจืขืกืืจื ืืืจ, ืืื ืืืขื ืืขืื ืืืจ ืึท ืคึผืึธืจ ืคืื ืกืงืจืขืขื ืฉืึธืฅ ืืืขืื Skydive. ืื ืืขืจ ืขืก ืืืขื ืืืื ืึท ืคึผืึธืกืื ืืืืฃ ืึท ืืงืืื ืฆื Skydive.


ืคึผืึธืกืื "ยป ืืืืฃ Habrรฉ.
Skydive ืืืกืคึผืืืื ืื ื ืขืฅ ืืึธืคึผืึธืืึธืื ืืืจื ืจืืกืืืืื ื ื ืขืฅ ืืขืฉืขืขื ืืฉื ืคืื Skydive ืืืขื ืื. ืืึธืื ืืืจ ืืืฅ ืืขืืืืืฉื ืืื ืฆื ืืืืื ืึธืืขืจ ืึทืจืืืกืืืืึทืื ืืื ืึท ืืึทืคึผืึทืืึทืืืฉื ืืืึทืืจืึทืืข ื ืขืฅ ืงืึทืืคึผืึธืื ืึทื ืฅ ืืืึธืก ืืขื ืขื ืึทืจืืืก ืื Skydive ืึทืืขื ื ื ืขืฅ ืึธืืขืจ ื ืื-ื ืขืฅ ืึทืืืืฉืขืงืฅ ืึทืืึท ืืื TOR, ืืึทืื ืกืืึธืจืืืืฉ, ืขืืง. ื ืื ืืึทืจืคึฟื ืฆื ืืึธืจื ืืืขืื ืืขื ืขื ืืืึธืจ ืืึทื ืง ืฆื ืื Node rule API.
ืืื ื ืืืขืจืกืืข 0.20, Skydive ืืื ืึท ื ืึธืืข ืืขืจืฉื ืึทืคึผื ืืืึธืก ืงืขื ืขื ืืืขืจื ืืขื ืืฆื ืฆื ืฉืึทืคึฟื ื ืืึทืข ื ืึธืืื ืืื ืขืืืฉืึทื ืืื ืฆื ืืขืจืืืึทื ืืืงื ืื ืืขืืึทืืึทืืึท ืคืื ืืืืืกืืื ื ื ืึธืืื. ืื ื ืึธืืข ืืขืจืฉื ืึทืคึผื ืืื ืฆืขืืืืื ืืื ืฆืืืื ืึทืคึผืืก: ืื ื ืึธืืข ืืขืจืฉื ืึทืคึผื ืืื ืื ืืจืขื ืืขืจืฉื ืึทืคึผื. ืื Node Rule API ืืื ืืขื ืืฆื ืฆื ืฉืึทืคึฟื ืึท ื ืืึทืข ื ืึธืืข ืืื ืืขืจืืืึทื ืืืงื ืื ืืขืืึทืืึทืืึท ืคืื ืึท ืืืืืกืืื ื ื ืึธืืข. ืื ืขืืืฉ ืืขืจืฉื API ืืื ืืขื ืืฆื ืฆื ืฉืึทืคึฟื ืึท ืืจืขื ืขืฅ ืฆืืืืฉื ืฆืืืื ื ืึธืืื, ื.ืข. ืงืึทื ืขืงืฅ ืฆืืืื ื ืึธืืื.
ืืื ืืขื ืืืึธื ืืืจ ืืืขืื ืืขื ืฆืืืื ื ืืฆื ืงืึทืกืขืก, ืืืื ืขืจ ืคืื ืืืึธืก ืืื ืึท ื ืขืฅ ืงืึธืืคึผืึธื ืขื ื ืืืึธืก ืืื ื ืืฉื ืืืื ืคืื ืื ืกืงืืืืืื ื ืขืฅ. ืื ืจืืข ืึธืคึผืฆืืข ืืื ืึท ื ืื-ื ืขืฅ ืงืึธืืคึผืึธื ืขื ื. ืืืืืขืจ ืืขื, ืืืจ ืืืขืื ืงืืงื ืืื ืขืืืขืืข ืืงืขืจืืืง ืืืขืื ืฆื ื ืืฆื ืื Topology Rules API.
ืฉืึทืคึฟื ืึท ืกืงืืืืืื ื ืึธืืข
ืฆื ืฉืึทืคึฟื ืึท ื ืึธืืข, ืืืจ ืืืื ืฆืืฉืืขืื ืึท ืืื ืฆืืง ื ืึธืืข ื ืึธืืขื ืืื ืึท ืืืืืืง ื ืึธืืข ืืืคึผ. ืืืจ ืงืขื ืขื ืืืื ืฆืืฉืืขืื ืขืืืขืืข ื ืึธื ืึธืคึผืฆืืขืก.
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 Nodes
ืฆื ืืขืจืืืึทื ืืืงื ืื ืืขืืึทืืึทืืึท ืคืื ืึท ืืืืืกืืื ื ื ืึธืืข, ืืืจ ืืืื ืฆืืฉืืขืื ืึท ืืจืขืืืื ืึธื ืคึฟืจืขื ืฆื ืืืืกืงืืืึทืื ืื ื ืึธืืื ืืืืฃ ืืืึธืก ืืืจ ืืืืื ืฆื ืืขืจืืืึทื ืืืงื ืื ืืขืืึทืืึทืืึท. ืืืื ืืืื ืืงืฉื, ืืืจ ืงืขื ืขื ืืขืจืืืึทื ืืืงื ืื ืืขืืึทืืึทืืึท ืคืื ืืืื ืึธืืขืจ ืืขืจ ื ืึธืืื ืืื ืึท ืืืื ื ืึธืืข ืืขืจืฉื.
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')"
}ืฉืึทืคึฟื ืึท ืกืงืืืืืื ืขืืืฉ
ืฆื ืฉืึทืคึฟื ืึท ืืจืขื, ืืืจ ืืืื ืกืคึผืขืฆืืคืืฆืืจื ืื ืืงืืจ ืืื ืืขืกืืื ืืืฉืึทื ื ืึธืืื ืืื ืื ืืื ืง ืืืคึผ ืคืื ืื ืืจืขื ืฆื ืฉืึทืคึฟื ืึท ืงืื ื ื ืึธืืข ืืืึทืขืจ2. ืืืจ ืงืขื ืขื ืืึทืื ืืขืจ ืืื ืืืื ืืื ืง ืฆืืืืฉื ืฆืืืื ื ืึธืืื, ืึธืืขืจ ืืขืจ ืืืคึผ ืคืื ืืื ืง ืืืื ืืืื ืึทื ืืขืจืฉ.
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"
}
}ืขืจืฉืืขืจ ื ืืฆื ืคืึทื
ืืื ืืขื ืคืึทื, ืืืจ ืืืขืื ืงืืงื ืืื ืืื ืฆื ืืืืึทืื ืึท ื ืื-ื ืขืฅ ืืืื ืืื ืื ืกืงืืืืืื ืืึทืคึผืึทืืึทืืืฉื. ืืึธืืืจ ืืึทืืจืึทืืื ืึทื ืืืจ ืืึธืื ืึท ืืึทืื ืืืขืจืืึทืืก ืืืึธืก ืืึทืจืฃ ืืืื ืืขืืืืื ืืื ืึท ืกืงืืืืืื ืืึทืคึผืึทืืึทืืืฉื ืืืึทืืจืึทืืข ืืื ืขืืืขืืข ื ืืฆืืง ืืขืืึทืืึทืืึท.
ืืืจ ื ืึธืจ ืืึทืจืคึฟื ืฆื ืฉืึทืคึฟื ืึท ื ืึธืืข ืืขืจืฉื ืฆื ืืืืื ืื ืืืื ืฆื ืื ืืึธืคึผืึธืืึธืื. ืืืจ ืงืขื ืขื ืืืืื ืืืื ืืขืืึทืืึทืืึท ืืื ืึท ืืืื ืคืื ืื ืฉืึทืคึฟื ืืึทืคึฟืขื, ืึธืืขืจ ืฉืคึผืขืืขืจ ืฉืึทืคึฟื ืืืื ืขืจ ืึธืืขืจ ืืขืจ ืืขืจืืืึทื ืืืงื ื ืึธืืข ืืขืจืฉื ืงืึทืืึทื ืื.
ืืืืคื ืื ืคืืืืขื ืืข ืืึทืืขืืึธืก ืืขืจืฉื ืืึทืคึฟืขื ืฆื ืืืืื ืึท ืกืืึธืจืืืืฉ ืืืื ืฆื ืื ืืึทืคึผืึทืืึทืืืฉื ืืืึทืืจืึทืืข.
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"ืืืืคื ืื ืืึทืคึฟืขื ืืื ืืขืจ ืื ืืจืขื ืืขืจืฉื ืฆื ืคืึทืจืืื ืื ืื ืืืฉืืคื ื ืึธืืข ืืื ืื ืืึทืืขืืึธืก ื ืึธืืข.
skydive client edge-rule create --src="G.V().Has('Name', 'node1')" --dst="G.V().Has('Name', 'sda')" --relationtype="ownership"ื ืึธื ืื ืืืืื ืงืึทืืึทื ืื, ืืืจ ืงืขื ืขื ืืืฆื ืืขื ืื ืืืื ืงืขื ืืืง ืืื ืื ืกืงืืืืืื ืืึทืคึผืึทืืึทืืืฉื ืืืึทืืจืึทืืข ืืื ืื ืืขืืขืื ืืขืืึทืืึทืืึท ืืื ืืขืืืืื ืืื ืื ืืืื ืืื ืื.

ืฆืืืืืืข ื ืืฆื ืคืึทื
ืืื ืืขื ืคืึทื, ืืืจ ืืืขืื ืืขื ืืื ืฆื ืืืืื ืึท ื ืขืฅ ืืืื ืืืึธืก ืืื ื ืืฉื ืืืื ืคืื ืื ืกืงืืืืืื ื ืขืฅ. ืืื ืก ืงืืง ืืืึท ืืขื ืืืึทืฉืคึผืื. ืืืจ ืืึธืื ืฆืืืื ืกืงืืืืืื ืืืขื ืื ืคืืืกื ืืืง ืืืืฃ ืฆืืืื ืคืึทืจืฉืืืขื ืข ืืื ืืช, ืฆื ืคืึทืจืืื ืื ืื ืฆืืืื ืืื ืืช ืืืจ ืืึทืจืคึฟื ืึท TOR ืืึทืฉืืืืขื. ืืคืืื ืืึธืืฉ ืืืจ ืงืขื ืขื ืืขืจืืจืืืื ืืขื ืืืจื ืืืคืืื ืื ื ืกืืจืืงืืืจ ื ืึธืืื ืืื ืคึฟืึทืจืืื ืืื ืืขื ืืื ืึท ืงืึทื ืคืืืืขืจืืืฉืึทื ืืขืงืข, ืืึธืืืจ ืืขื ืืื ืืืจ ืงืขื ืขื ืืึธื ืื ืืขืืืข ืืื ืื Topology Rules API.
ืึธื ืึท TOR ืืึทืฉืืืืขื, ืื ืฆืืืื ืืืขื ืื ืืืขืื ืืขืจืฉืืึทื ืขื ืืื ืฆืืืื ืคืึทืจืฉืืืขื ืข ื ืึธืืื ืึธื ืงืืื ืคึฟืึทืจืืื ืืื ืืขื, ืืื ืืขืืืืื ืืื ืื ืืืื ืืื ืื.

ืืืฆื ืืืืคื ืื ืคืืืืขื ืืข ืืึธืกื ืจืืืขืก ืงืึทืืึทื ืื ืฆื ืฉืึทืคึฟื ืื TOR ืืึทืฉืืืืขื ืืื ืคึผืึธืจืฅ.
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"ืืื ืืืจ ืงืขื ืขื ืืขื, ืื TOR ืืึทืฉืืืืขื ืืื ืคึผืึธืจืฅ ืืขื ืขื ืืืฉืืคื ืืื ืฆืืืขืืขืื ืฆื ืื ืกืงืืืืืืื ืืึทืคึผืึทืืึทืืืฉื, ืืื ืื ืืึทืคึผืึทืืึทืืืฉื ืืืขื ืืืฆื ืงืืงื ืืื ืื ืืืื ืืื ืื.

ืืืฆื ืืืืคื ืื ืคืืืืขื ืืข Edge Rule ืงืึทืืึทื ืื ืฆื ืฉืึทืคึฟื ืึท ืคึฟืึทืจืืื ืืื ื ืฆืืืืฉื ืื TOR ืืึทืฉืืืืขื, ืคึผืึธืจื 1 ืืื ืื ืขืคื ืืืขื ืฆืืืื ื ืคืื ืืึทืืขืืึธืก 1.
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"ืืืืคื ืื ืคืืืืขื ืืข ืงืึทืืึทื ืื ืฆื ืฉืึทืคึฟื ืึท ืคึฟืึทืจืืื ืืื ื ืฆืืืืฉื TOR ืืึทืฉืืืืขื ืคึผืึธืจื 2 ืืื ืืึทืืขืืึธืก 2 ืขืคื ืืืขื ืฆืืืื ื
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"ืืืฆื ืึธืื ืขืจืฉืืคึผ ืืื Layer2 ืคึฟืึทืจืืื ืืื ืืขื ืืขื ืขื ืืืฉืืคื ืฆืืืืฉื ืื TOR ืืึทืฉืืืืขื ืืื ืื ืคึผืึธืจื, ืืื ืืขืืื ื ืืื Layer2 ืคึฟืึทืจืืื ืืื ืืขื ืฆืืืืฉื ืืืขื ืื ืืื ืคึผืึธืจืฅ. ืืืฆื ืื ืืขืฆื ืืึธืคึผืึธืืึธืื ืืืขื ืงืืงื ืืื ืื ืืืื ืืื ืื.

ืืืฆื ืื ืฆืืืื ืืื ืืช / ืืืขื ืื ืืขื ืขื ืคืืจืืื ืื ืจืืืืืง ืืื ืืืจ ืงืขื ืขื ืคึผืจืืืืจื ืื ืงืฉืจ ืึธืืขืจ ืืึทืื ืึท ืฉืึธืจืืืกื ืืืขื ืืึทืคึผื ืฆืืืืฉื ืื ืฆืืืื ืืื ืืช.
PS ืืื ืง ืฆื
ืืืจ ืืขื ืขื ืงืืงื ืคึฟืึทืจ ืืขื ืืฉื ืืืึธืก ืงืขื ืฉืจืืึทืื ืึทืจืืืงืืขื ืืืขืื ืื ืืขืจืข Skydive ืคึฟืขืึดืงืืืื.
ืืืจื skydive.network.
ืืงืืจ: www.habr.com
