Skydive แแ แแก แฆแแ แแแแแก, แ แแแแฃแ แแ แแจแ แฅแกแแแแก แขแแแแแแแแ แแ แแ แแขแแแแแแก แแแแแแแแขแแ แ. แแแกแ แแแแแแแ แฃแแ แฃแแแแแงแแก แงแแแแแกแแแแชแแแแ แแแ แแแแก แแแกแแแแแแ, แแฃ แ แ แฎแแแแ แฅแกแแแแก แแแคแ แแกแขแ แฃแฅแขแฃแ แแจแ.
แแแแแแแขแแ แแกแแ, แแ แแแแชแแแ แ แแแแแแแแ แแแ แแแแก แกแฃแ แแแก Skydive-แแก แจแแกแแฎแแ. แฅแแแแแ แแฅแแแแ แแแกแขแ Skydive-แแก แจแแกแแแแแ.
แแแกแขแ "
Skydive แแฉแแแแแแก แฅแกแแแแก แขแแแแแแแแแก Skydive-แแก แแแแแขแแแแกแแแ แฅแกแแแแก แแแแแแแแแแก แแแฆแแแแ. แแแแกแแ แแแคแแฅแ แแแ, แ แแแแ แแแแแแขแแ แแ แแฉแแแแแ แขแแแแแแแแแก แแแแแ แแแแจแ แฅแกแแแแก แแแแแแแแแขแแแ, แ แแแแแแแช แแแแแแ แแแแแ Skydive แแแแแขแฃแ แ แฅแกแแแแก แแแฆแแ แแ แแ แแฅแกแแแฃแ แ แแแแแฅแขแแแ, แ แแแแ แแชแแ TOR, แแแแแชแแแแ แกแแชแแแ แแ แ.แจ. แแฆแแ แแ แแก แกแแญแแ แ แแแแแ แคแแฅแ แ Node rule API-แแก แฌแงแแแแแแ.
0.20 แแแ แกแแแแแ Skydive แฃแแ แฃแแแแแงแแคแก Node rule API-แก, แ แแแแแแช แจแแแซแแแแ แแแแแงแแแแแฃแ แแฅแแแก แแฎแแแ แแแแแซแแแแกแ แแ แแแแแแแแก แจแแกแแฅแแแแแแ แแ แแ แกแแแฃแแ แแแแแซแแแแก แแแขแแแแแแชแแแแแแก แแแแแฎแแแแแกแแแแก. Node rule API แแงแแคแ แแ API-แแ: แแแแแซแแก แฌแแกแ API แแ edge rule API. Node Rule API แแแแแแงแแแแแ แแฎแแแ แแแแแซแแก แจแแกแแฅแแแแแแ แแ แแ แกแแแฃแแ แแแแแซแแก แแแขแแแแแแชแแแแแแก แแแแแฎแแแแแกแแแแก. Edge แฌแแกแ API แแแแแแงแแแแแ แแ แแแแแซแก แจแแ แแก แกแแแฆแแ แแก แจแแกแแฅแแแแแแ, แ.แ. แแแแแจแแ แแแก แแ แแแแแซแก.
แแ แแแแแจแ แฉแแแ แแแฎแแแแแ แแแแแงแแแแแแก แแ แจแแแแฎแแแแแก, แ แแแแแแแแแ แแ แแ แแ แแก แฅแกแแแแก แแแแแแแแแขแ, แ แแแแแแช แแ แแ แแก Skydive แฅแกแแแแก แแแฌแแแ. แแแแ แ แแแ แแแแขแ แแ แแก แแ แแฅแกแแแฃแ แ แแแแแแแแแขแ. แแแแแแแ แฉแแแ แแแแแแฎแแแแแ แขแแแแแแแแแก แฌแแกแแแแก API-แก แแแแแงแแแแแแก แซแแ แแแแ แแแแแก.
Skydive แแแแแซแแก แจแแฅแแแ
แแแแแซแแก แจแแกแแฅแแแแแแ, แแฅแแแ แฃแแแ แแแฃแแแแแ แแแแแซแแก แฃแแแแแแฃแ แ แกแแฎแแแ แแ แกแฌแแ แ แแแแแซแแก แขแแแ. แแฅแแแ แแกแแแ แจแแแแซแแแแ แแแแแแฌแแแแ แ แแแแแแแแ แแแแแขแแแแแ แแแ แแแแขแ.
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 แแแขแแแแแแชแแแแแ
แแ แกแแแฃแแ แแแแแซแแก แแแขแแแแแแชแแแแแแก แแแแแฎแแแแแกแแแแก, แแฅแแแ แฃแแแ แแแแฌแแแแ gremlin แแแแฎแแแแ, แ แแ แแแ แฉแแแ แแแแแซแแแ, แ แแแแแแแแช แแกแฃแ แ แแแขแแแแแแชแแแแแแก แแแแแฎแแแแ. แแฅแแแแ แแแแฎแแแแแก แแแฎแแแแแ, แจแแแแซแแแแ แแแแแแฎแแแ แแ แแ แแ แแแขแ แแแแแซแแก แแแขแแแแแแชแแแแแ แแ แแ แแแแแซแแก แฌแแกแแก แแแแแงแแแแแแ.
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 Edge-แแก แจแแฅแแแ
แแฆแแ แแก แจแแกแแฅแแแแแแ, แแฅแแแ แฃแแแ แแแฃแแแแแ แฌแงแแ แ แแ แแแแแจแแฃแแแแแก แแแแแซแแแ แแ แแแฃแแแก แขแแแ; แจแแแแแแแแ แแแแแซแแก แจแแกแแฅแแแแแแ, แแแฃแแแก แขแแแแก แแแแจแแแแแแแ แฃแแแ แแงแแก แกแแแฃแแ แแแ; แแแแแแแแฃแ แแ, แแแฃแแแก แขแแแแก layer2 แจแแกแแฅแแแแแแ, แแแฃแแแก แขแแแแก แแแแจแแแแแแแ แฃแแแ แแงแแก. แคแแแ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 แขแแแแแแแแแจแ. แแแแแ แแแแแแฎแแแแ, แ แแ แฉแแแ แแแแฅแแก แแแแแชแแแแ แกแแฌแงแแแ, แ แแแแแแช แฃแแแ แแงแแก แแแฉแแแแแแ skydive แขแแแแแแแแแก แแแแแ แแแแจแ แ แแแแแแแแ แกแแกแแ แแแแแ แแแขแแแแแแชแแแแแแ.
แฉแแแ แฃแแ แแแแ แฃแแแ แจแแแฅแแแแ แแแแแซแแก แฌแแกแ แแแฌแงแแแแแแแแก แขแแแแแแแแแจแ แแแกแแแแขแแแแแ. แฉแแแ แจแแแแแซแแแ แแแแแแแขแแ แแแฌแงแแแแแแแแก แแแขแแแแแแชแแแแแ, แ แแแแ แช แจแแฅแแแแก แแ แซแแแแแแก แแแฌแแแ, แแ แแแแแแแแแแแ แจแแแฅแแแแ แแ แแ แแ แแแขแ แแแแแฎแแแแแก แแแแแซแแก แฌแแกแแแแก แแ แซแแแแแ.
แแแฃแจแแแ แจแแแแแแ แฐแแกแขแแก แฌแแกแแก แแ แซแแแแแ แขแแแแแแแแแก แแแแแ แแแแจแ แจแแกแแแแฎแ แแแฌแงแแแแแแแแก แแแกแแแแขแแแแแ.
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"
แแแแแแฆแแแจแแฃแแ แแ แซแแแแแแแแก แจแแแแแ, แแฎแแ แจแแแแซแแแแ แแฎแแแแ แแแฌแงแแแแแแแ, แ แแแแแแช แฉแแแก Skydive แขแแแแแแแแแก แแแแแ แแแแจแ แแแชแแแฃแแ แแแขแแแแแแชแแแแแแ, แ แแแแ แช แแก แแแฉแแแแแแแ แฅแแแแแ แแแชแแแฃแ แกแฃแ แแแแ.
แแแแ แ แแแแแงแแแแแแก แจแแแแฎแแแแ
แแ แจแแแแฎแแแแแจแ แฉแแแ แแแแแแแฎแแแ, แแฃ แ แแแแ แแแแแแแขแแ แฅแกแแแฃแ แ แแแฌแงแแแแแแแ, แ แแแแแแช แแ แแ แแก Skydive แฅแกแแแแก แแแฌแแแ. แแแแแ แจแแแฎแแแแ แแ แแแแแแแแก. แฉแแแ แแแงแแแก แแ แ skydive แแแแแขแ, แ แแแแแแช แแฃแจแแแแก แแ แแแแกแฎแแแแแแฃแ แฐแแกแขแแ, แแ แแ แ แฐแแกแขแแก แแแกแแแแแจแแ แแแแแ แแแญแแ แแแแ TOR แจแแชแแแ. แแแฃแฎแแแแแแ แแแแกแ, แ แแ แแแแก แแแฆแฌแแแ แจแแแแแซแแแ แแแแคแแแฃแ แแชแแแก แคแแแแจแ แกแขแ แฃแฅแขแฃแ แแก แแแแแซแแแแกแ แแ แแแฃแแแแแก แแแแกแแแฆแแ แแ, แแแแฎแแ, แ แแแแ แจแแแแแซแแแ แแแแแ แแแแแแแแแ Topology Rules API-แแก แแแแแงแแแแแแ.
TOR แแแแแแ แแแแแแก แแแ แแจแ, แแ แ แแแแแขแ แแแแแฉแแแแแ, แ แแแแ แช แแ แ แแแแกแฎแแแแแแฃแแ แแแแแซแ แงแแแแแแแแ แ แแแฃแแแก แแแ แแจแ, แ แแแแ แช แแแฉแแแแแแแ แฅแแแแแ แแแชแแแฃแ แกแฃแ แแแแ.
แแฎแแ แแแฃแจแแแ แจแแแแแแ Host Rules แแ แซแแแแแแแ 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 แแแแแแ แแแแแ แแ แแแ แขแแแ แจแแแฅแแแ แแ แแแแแแขแ skydive แขแแแแแแแแแก แแ แขแแแแแแแแ แแฎแแ แแแแแกแแแแกแแแ แฅแแแแแ แแแชแแแฃแ แกแฃแ แแแก.
แแฎแแ แจแแแกแ แฃแแแ แจแแแแแแ 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-แแก แกแฎแแ แคแฃแแฅแชแแแแแก แจแแกแแฎแแ.
แฌแงแแ แ: www.habr.com