From e53a35650560418899f3389c8664d4e60db081ba Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=A4=8F=E6=9C=88?= Date: Thu, 14 May 2020 14:07:32 +0800 Subject: [PATCH 1/4] cloudchef-public-account test --- .../README.md" | 1123 +++++ .../index.html" | 2051 ++++++++ .../02\351\246\226\351\241\265/README.md" | 176 + .../02\351\246\226\351\241\265/index.html" | 1199 +++++ ...\345\235\200\347\256\241\347\220\206.html" | 1142 +++++ ...60\345\235\200\347\256\241\347\220\206.md" | 104 + .../README.md" | 11 + .../index.html" | 1050 +++++ ...\345\217\260\347\256\241\347\220\206.html" | 2001 ++++++++ ...63\345\217\260\347\256\241\347\220\206.md" | 511 ++ ...\345\220\215\350\247\204\345\210\231.html" | 1060 +++++ ...75\345\220\215\350\247\204\345\210\231.md" | 24 + ...\345\257\206\351\222\245\345\257\271.html" | 1054 +++++ .../\345\257\206\351\222\245\345\257\271.md" | 24 + ...\346\234\272\347\256\241\347\220\206.html" | 1058 +++++ ...73\346\234\272\347\256\241\347\220\206.md" | 24 + ...\346\234\272\346\250\241\346\235\277.html" | 1413 ++++++ ...37\346\234\272\346\250\241\346\235\277.md" | 341 ++ ...\347\256\227\350\247\204\346\240\274.html" | 1249 +++++ ...41\347\256\227\350\247\204\346\240\274.md" | 103 + ...\346\272\220\346\240\207\347\255\276.html" | 1066 +++++ ...04\346\272\220\346\240\207\347\255\276.md" | 23 + ...\346\261\240\347\256\241\347\220\206.html" | 1454 ++++++ ...20\346\261\240\347\256\241\347\220\206.md" | 417 ++ .../README.md" | 8 + .../index.html" | 1046 +++++ ...\344\270\232\345\212\241\347\273\204.html" | 1203 +++++ .../\344\270\232\345\212\241\347\273\204.md" | 171 + ...\345\212\241\345\233\242\351\230\237.html" | 1076 +++++ ...15\345\212\241\345\233\242\351\230\237.md" | 34 + .../\347\224\250\346\210\267.html" | 1105 +++++ .../\347\224\250\346\210\267.md" | 74 + .../\350\247\222\350\211\262.html" | 1072 +++++ .../\350\247\222\350\211\262.md" | 41 + .../\351\241\271\347\233\256.html" | 1064 +++++ .../\351\241\271\347\233\256.md" | 24 + .../README.md" | 11 + .../index.html" | 1050 +++++ ...\345\212\241\345\210\206\347\273\204.html" | 1053 +++++ ...15\345\212\241\345\210\206\347\273\204.md" | 13 + ...\345\212\241\351\205\215\347\275\256.html" | 2011 ++++++++ ...15\345\212\241\351\205\215\347\275\256.md" | 899 ++++ ...\347\250\213\351\205\215\347\275\256.html" | 1187 +++++ ...01\347\250\213\351\205\215\347\275\256.md" | 195 + ...\347\273\204\344\273\266\345\272\223.html" | 1265 +++++ .../\347\273\204\344\273\266\345\272\223.md" | 221 + ...\350\204\232\346\234\254\345\272\223.html" | 1060 +++++ .../\350\204\232\346\234\254\345\272\223.md" | 28 + ...\345\233\276\350\256\276\350\256\241.html" | 1862 ++++++++ ...35\345\233\276\350\256\276\350\256\241.md" | 610 +++ ...\345\215\225\351\205\215\347\275\256.html" | 1072 +++++ ...50\345\215\225\351\205\215\347\275\256.md" | 35 + .../README.md" | 5 + .../index.html" | 1045 +++++ ...\347\232\204\351\203\250\347\275\262.html" | 1650 +++++++ ...21\347\232\204\351\203\250\347\275\262.md" | 744 +++ ...\345\212\241\347\233\256\345\275\225.html" | 1117 +++++ ...15\345\212\241\347\233\256\345\275\225.md" | 73 + ...\345\212\241\350\257\267\346\261\202.html" | 1096 +++++ ...15\345\212\241\350\257\267\346\261\202.md" | 55 + ...\346\216\247\345\221\212\350\255\246.html" | 1154 +++++ ...21\346\216\247\345\221\212\350\255\246.md" | 148 + ...\346\272\220\345\233\236\346\224\266.html" | 1089 +++++ ...04\346\272\220\345\233\236\346\224\266.md" | 49 + .../README.md" | 35 + .../index.html" | 1067 +++++ ...\351\207\217\347\256\241\347\220\206.html" | 1076 +++++ ...71\351\207\217\347\256\241\347\220\206.md" | 46 + ...\351\207\217\350\256\241\350\264\271.html" | 1126 +++++ ...41\351\207\217\350\256\241\350\264\271.md" | 91 + ...\346\272\220\346\262\273\347\220\206.html" | 1074 +++++ ...04\346\272\220\346\262\273\347\220\206.md" | 36 + .../README.md" | 157 + .../index.html" | 1178 +++++ .../README.md" | 166 + .../index.html" | 1245 +++++ .../README.md" | 40 + .../index.html" | 1080 +++++ .../README.md" | 128 + .../index.html" | 1156 +++++ .../README.md" | 50 + .../index.html" | 1075 +++++ ...2\347\241\200\346\246\202\345\277\265.pdf" | Bin 0 -> 1040213 bytes ...0\346\210\267\346\211\213\345\206\214.pdf" | Bin 0 -> 637516 bytes ...6\345\221\230\346\211\213\345\206\214.pdf" | Bin 0 -> 2308145 bytes ...2\347\241\200\346\246\202\345\277\265.pdf" | Bin 0 -> 1520407 bytes ...0\346\210\267\346\211\213\345\206\214.pdf" | Bin 0 -> 658898 bytes ...6\345\221\230\346\211\213\345\206\214.pdf" | Bin 0 -> 2572828 bytes PDF/README.md | 9 +- ...6\345\221\230\346\211\213\345\206\214.pdf" | Bin 0 -> 2992415 bytes ...0\346\210\267\346\211\213\345\206\214.pdf" | Bin 0 -> 747010 bytes PDF/index.html | 1046 +++++ .../README.md" | 177 + .../index.html" | 1213 +++++ .../02\351\246\226\351\241\265/README.md" | 102 + .../02\351\246\226\351\241\265/index.html" | 1122 +++++ .../README.md" | 724 +++ .../index.html" | 1633 +++++++ .../README.md" | 55 + .../index.html" | 1088 +++++ .../README.md" | 69 + .../index.html" | 1103 +++++ .../index.html" | 732 ++- .../README.md" | 2 - .../index.html" | 728 ++- .../index.html" | 728 ++- .../README.md" | 47 +- .../index.html" | 1140 +++++ .../index.html" | 442 -- .../README.md" | 83 + .../index.html" | 1108 +++++ .../gitbook-plugin-fontsettings/website.css | 2 +- .../lib/plugin.js | 35 + .../style/plugin.css | 19 + .../footer.css | 15 - gitbook/images/favicon.ico | Bin 4286 -> 4286 bytes gitbook/style.css | 916 +++- gitbook/theme.js | 4127 ++++++++++++++++- index.html | 817 +++- picture/Admin/AWS.png | Bin 0 -> 8863 bytes picture/Admin/Ali.png | Bin 0 -> 8916 bytes picture/Admin/Azure.png | Bin 0 -> 13803 bytes picture/Admin/DNS.png | Bin 0 -> 3372 bytes "picture/Admin/F5\344\270\216OpenStack.png" | Bin 0 -> 25607 bytes picture/Admin/Gitlab01.png | Bin 0 -> 97723 bytes picture/Admin/Hyper-V.png | Bin 0 -> 9332 bytes picture/Admin/Kubernetes.png | Bin 0 -> 18904 bytes ...nStack LoadBalancer with SecurityGroup.png | Bin 0 -> 28075 bytes picture/Admin/Openstack Firewall.png | Bin 0 -> 3472 bytes ...5\345\212\241\346\250\241\345\236\213.png" | Bin 0 -> 41741 bytes picture/Admin/Qcloud.png | Bin 0 -> 9446 bytes picture/Admin/VMware NSX.png | Bin 0 -> 17052 bytes picture/Admin/devops01.png | Bin 0 -> 22819 bytes picture/Admin/devops02.png | Bin 0 -> 9253 bytes picture/Admin/flowable01.png | Bin 0 -> 13408 bytes picture/Admin/flowable02.png | Bin 0 -> 81480 bytes picture/Admin/flowable03.png | Bin 0 -> 11545 bytes picture/Admin/flowable04.png | Bin 0 -> 33214 bytes picture/Admin/github1.png | Bin 0 -> 24432 bytes picture/Admin/github2.png | Bin 0 -> 84387 bytes picture/Admin/openStack.png | Bin 0 -> 11494 bytes picture/Admin/trigger.png | Bin 0 -> 22354 bytes picture/Admin/vSphere MySQL.png | Bin 0 -> 16873 bytes picture/Admin/vSphere.png | Bin 0 -> 11657 bytes ...5\350\265\226\345\205\263\347\263\273.png" | Bin 0 -> 20696 bytes ...3\345\273\272\350\204\232\346\234\254.png" | Bin 0 -> 55701 bytes ...1\351\207\217\347\256\241\347\220\206.png" | Bin 0 -> 99043 bytes ...7\350\241\214\350\204\232\346\234\254.png" | Bin 0 -> 23102 bytes ...3\345\222\214\351\203\250\347\275\262.png" | Bin 0 -> 58963 bytes ...345\222\214\351\203\250\347\275\262V2.png" | Bin 0 -> 112467 bytes ...2\346\234\254\344\277\241\346\201\257.png" | Bin 0 -> 27510 bytes ...2\346\234\254\345\210\227\350\241\250.png" | Bin 0 -> 58050 bytes ...5\345\212\241\346\250\241\345\236\213.png" | Bin 0 -> 54006 bytes ...3\347\256\241\347\220\206\345\221\230.png" | Bin 0 -> 34261 bytes ...2\346\234\254\345\217\202\346\225\260.png" | Bin 0 -> 20305 bytes ...2\344\271\211\350\204\232\346\234\254.png" | Bin 0 -> 25640 bytes ...0\347\273\264\346\223\215\344\275\234.png" | Bin 0 -> 65126 bytes ...\347\275\256-\345\217\202\346\225\260.png" | Bin 0 -> 19173 bytes ...\347\275\256-\350\241\250\345\215\225.png" | Bin 0 -> 22143 bytes ...1\351\207\217\350\256\241\350\264\271.png" | Bin 0 -> 42074 bytes ...0\346\234\237\347\256\241\347\220\206.png" | Bin 0 -> 12680 bytes ...5\345\212\241\347\233\256\345\275\225.png" | Bin 99368 -> 0 bytes picture/foundationConcepts/pipeline.gif | Bin 0 -> 453442 bytes ...5\345\212\241\346\250\241\345\236\213.png" | Bin 0 -> 155837 bytes .../\345\267\245\345\205\267\351\223\276.png" | Bin 0 -> 62606 bytes ...346\236\266\346\236\204\345\233\276V1.png" | Bin 0 -> 37895 bytes ...346\236\266\346\236\204\345\233\276V2.png" | Bin 0 -> 32094 bytes ...346\236\266\346\236\204\345\233\276V3.png" | Bin 0 -> 75429 bytes .../\346\265\201\346\260\264\347\272\277.png" | Bin 0 -> 82546 bytes ...0\345\272\246\345\217\221\345\270\203.png" | Bin 0 -> 38557 bytes ...4\346\210\220\350\223\235\345\233\276.png" | Bin 0 -> 88412 bytes ...6\345\223\201\347\256\241\347\220\206.png" | Bin 0 -> 64457 bytes releaseNotes/5.2.0README.html | 1105 +++++ releaseNotes/5.2.0README.md | 169 + releaseNotes/5.5.0README.html | 1122 +++++ releaseNotes/5.5.0README.md | 183 + releaseNotes/6.0.0README.html | 1168 +++++ releaseNotes/6.0.0README.md | 226 + releaseNotes/README.md | 167 - releaseNotes/index.html | 439 -- ...\347\237\245\351\227\256\351\242\230.html" | 375 -- ...62\347\237\245\351\227\256\351\242\230.md" | 129 - ...\345\206\263\351\227\256\351\242\230.html" | 375 -- ...43\345\206\263\351\227\256\351\242\230.md" | 1 - search_plus_index.json | 2 +- styles/website.css | 72 +- 186 files changed, 79892 insertions(+), 2142 deletions(-) create mode 100644 "AdminDoc/01\345\277\253\351\200\237\344\270\212\346\211\213/README.md" create mode 100644 "AdminDoc/01\345\277\253\351\200\237\344\270\212\346\211\213/index.html" create mode 100644 "AdminDoc/02\351\246\226\351\241\265/README.md" create mode 100644 "AdminDoc/02\351\246\226\351\241\265/index.html" create mode 100644 "AdminDoc/03\345\237\272\347\241\200\350\256\276\346\226\275\347\256\241\347\220\206/IP\345\234\260\345\235\200\347\256\241\347\220\206.html" create mode 100644 "AdminDoc/03\345\237\272\347\241\200\350\256\276\346\226\275\347\256\241\347\220\206/IP\345\234\260\345\235\200\347\256\241\347\220\206.md" create mode 100644 "AdminDoc/03\345\237\272\347\241\200\350\256\276\346\226\275\347\256\241\347\220\206/README.md" create mode 100644 "AdminDoc/03\345\237\272\347\241\200\350\256\276\346\226\275\347\256\241\347\220\206/index.html" create mode 100644 "AdminDoc/03\345\237\272\347\241\200\350\256\276\346\226\275\347\256\241\347\220\206/\344\272\221\345\271\263\345\217\260\347\256\241\347\220\206.html" create mode 100644 "AdminDoc/03\345\237\272\347\241\200\350\256\276\346\226\275\347\256\241\347\220\206/\344\272\221\345\271\263\345\217\260\347\256\241\347\220\206.md" create mode 100644 "AdminDoc/03\345\237\272\347\241\200\350\256\276\346\226\275\347\256\241\347\220\206/\345\221\275\345\220\215\350\247\204\345\210\231.html" create mode 100644 "AdminDoc/03\345\237\272\347\241\200\350\256\276\346\226\275\347\256\241\347\220\206/\345\221\275\345\220\215\350\247\204\345\210\231.md" create mode 100644 "AdminDoc/03\345\237\272\347\241\200\350\256\276\346\226\275\347\256\241\347\220\206/\345\257\206\351\222\245\345\257\271.html" create mode 100644 "AdminDoc/03\345\237\272\347\241\200\350\256\276\346\226\275\347\256\241\347\220\206/\345\257\206\351\222\245\345\257\271.md" create mode 100644 "AdminDoc/03\345\237\272\347\241\200\350\256\276\346\226\275\347\256\241\347\220\206/\347\211\251\347\220\206\344\270\273\346\234\272\347\256\241\347\220\206.html" create mode 100644 "AdminDoc/03\345\237\272\347\241\200\350\256\276\346\226\275\347\256\241\347\220\206/\347\211\251\347\220\206\344\270\273\346\234\272\347\256\241\347\220\206.md" create mode 100644 "AdminDoc/03\345\237\272\347\241\200\350\256\276\346\226\275\347\256\241\347\220\206/\350\231\232\346\213\237\346\234\272\346\250\241\346\235\277.html" create mode 100644 "AdminDoc/03\345\237\272\347\241\200\350\256\276\346\226\275\347\256\241\347\220\206/\350\231\232\346\213\237\346\234\272\346\250\241\346\235\277.md" create mode 100644 "AdminDoc/03\345\237\272\347\241\200\350\256\276\346\226\275\347\256\241\347\220\206/\350\256\241\347\256\227\350\247\204\346\240\274.html" create mode 100644 "AdminDoc/03\345\237\272\347\241\200\350\256\276\346\226\275\347\256\241\347\220\206/\350\256\241\347\256\227\350\247\204\346\240\274.md" create mode 100644 "AdminDoc/03\345\237\272\347\241\200\350\256\276\346\226\275\347\256\241\347\220\206/\350\265\204\346\272\220\346\240\207\347\255\276.html" create mode 100644 "AdminDoc/03\345\237\272\347\241\200\350\256\276\346\226\275\347\256\241\347\220\206/\350\265\204\346\272\220\346\240\207\347\255\276.md" create mode 100644 "AdminDoc/03\345\237\272\347\241\200\350\256\276\346\226\275\347\256\241\347\220\206/\350\265\204\346\272\220\346\261\240\347\256\241\347\220\206.html" create mode 100644 "AdminDoc/03\345\237\272\347\241\200\350\256\276\346\226\275\347\256\241\347\220\206/\350\265\204\346\272\220\346\261\240\347\256\241\347\220\206.md" create mode 100644 "AdminDoc/04\347\273\204\347\273\207\346\236\266\346\236\204\347\256\241\347\220\206/README.md" create mode 100644 "AdminDoc/04\347\273\204\347\273\207\346\236\266\346\236\204\347\256\241\347\220\206/index.html" create mode 100644 "AdminDoc/04\347\273\204\347\273\207\346\236\266\346\236\204\347\256\241\347\220\206/\344\270\232\345\212\241\347\273\204.html" create mode 100644 "AdminDoc/04\347\273\204\347\273\207\346\236\266\346\236\204\347\256\241\347\220\206/\344\270\232\345\212\241\347\273\204.md" create mode 100644 "AdminDoc/04\347\273\204\347\273\207\346\236\266\346\236\204\347\256\241\347\220\206/\346\234\215\345\212\241\345\233\242\351\230\237.html" create mode 100644 "AdminDoc/04\347\273\204\347\273\207\346\236\266\346\236\204\347\256\241\347\220\206/\346\234\215\345\212\241\345\233\242\351\230\237.md" create mode 100644 "AdminDoc/04\347\273\204\347\273\207\346\236\266\346\236\204\347\256\241\347\220\206/\347\224\250\346\210\267.html" create mode 100644 "AdminDoc/04\347\273\204\347\273\207\346\236\266\346\236\204\347\256\241\347\220\206/\347\224\250\346\210\267.md" create mode 100644 "AdminDoc/04\347\273\204\347\273\207\346\236\266\346\236\204\347\256\241\347\220\206/\350\247\222\350\211\262.html" create mode 100644 "AdminDoc/04\347\273\204\347\273\207\346\236\266\346\236\204\347\256\241\347\220\206/\350\247\222\350\211\262.md" create mode 100644 "AdminDoc/04\347\273\204\347\273\207\346\236\266\346\236\204\347\256\241\347\220\206/\351\241\271\347\233\256.html" create mode 100644 "AdminDoc/04\347\273\204\347\273\207\346\236\266\346\236\204\347\256\241\347\220\206/\351\241\271\347\233\256.md" create mode 100644 "AdminDoc/05\346\234\215\345\212\241\345\273\272\346\250\241/README.md" create mode 100644 "AdminDoc/05\346\234\215\345\212\241\345\273\272\346\250\241/index.html" create mode 100644 "AdminDoc/05\346\234\215\345\212\241\345\273\272\346\250\241/\346\234\215\345\212\241\345\210\206\347\273\204.html" create mode 100644 "AdminDoc/05\346\234\215\345\212\241\345\273\272\346\250\241/\346\234\215\345\212\241\345\210\206\347\273\204.md" create mode 100644 "AdminDoc/05\346\234\215\345\212\241\345\273\272\346\250\241/\346\234\215\345\212\241\351\205\215\347\275\256.html" create mode 100644 "AdminDoc/05\346\234\215\345\212\241\345\273\272\346\250\241/\346\234\215\345\212\241\351\205\215\347\275\256.md" create mode 100644 "AdminDoc/05\346\234\215\345\212\241\345\273\272\346\250\241/\346\265\201\347\250\213\351\205\215\347\275\256.html" create mode 100644 "AdminDoc/05\346\234\215\345\212\241\345\273\272\346\250\241/\346\265\201\347\250\213\351\205\215\347\275\256.md" create mode 100644 "AdminDoc/05\346\234\215\345\212\241\345\273\272\346\250\241/\347\273\204\344\273\266\345\272\223.html" create mode 100644 "AdminDoc/05\346\234\215\345\212\241\345\273\272\346\250\241/\347\273\204\344\273\266\345\272\223.md" create mode 100644 "AdminDoc/05\346\234\215\345\212\241\345\273\272\346\250\241/\350\204\232\346\234\254\345\272\223.html" create mode 100644 "AdminDoc/05\346\234\215\345\212\241\345\273\272\346\250\241/\350\204\232\346\234\254\345\272\223.md" create mode 100644 "AdminDoc/05\346\234\215\345\212\241\345\273\272\346\250\241/\350\223\235\345\233\276\350\256\276\350\256\241.html" create mode 100644 "AdminDoc/05\346\234\215\345\212\241\345\273\272\346\250\241/\350\223\235\345\233\276\350\256\276\350\256\241.md" create mode 100644 "AdminDoc/05\346\234\215\345\212\241\345\273\272\346\250\241/\350\241\250\345\215\225\351\205\215\347\275\256.html" create mode 100644 "AdminDoc/05\346\234\215\345\212\241\345\273\272\346\250\241/\350\241\250\345\215\225\351\205\215\347\275\256.md" create mode 100644 "AdminDoc/06\344\272\221\346\234\215\345\212\241\347\256\241\347\220\206/README.md" create mode 100644 "AdminDoc/06\344\272\221\346\234\215\345\212\241\347\256\241\347\220\206/index.html" create mode 100644 "AdminDoc/06\344\272\221\346\234\215\345\212\241\347\256\241\347\220\206/\346\210\221\347\232\204\351\203\250\347\275\262.html" create mode 100644 "AdminDoc/06\344\272\221\346\234\215\345\212\241\347\256\241\347\220\206/\346\210\221\347\232\204\351\203\250\347\275\262.md" create mode 100644 "AdminDoc/06\344\272\221\346\234\215\345\212\241\347\256\241\347\220\206/\346\234\215\345\212\241\347\233\256\345\275\225.html" create mode 100644 "AdminDoc/06\344\272\221\346\234\215\345\212\241\347\256\241\347\220\206/\346\234\215\345\212\241\347\233\256\345\275\225.md" create mode 100644 "AdminDoc/06\344\272\221\346\234\215\345\212\241\347\256\241\347\220\206/\346\234\215\345\212\241\350\257\267\346\261\202.html" create mode 100644 "AdminDoc/06\344\272\221\346\234\215\345\212\241\347\256\241\347\220\206/\346\234\215\345\212\241\350\257\267\346\261\202.md" create mode 100644 "AdminDoc/06\344\272\221\346\234\215\345\212\241\347\256\241\347\220\206/\347\233\221\346\216\247\345\221\212\350\255\246.html" create mode 100644 "AdminDoc/06\344\272\221\346\234\215\345\212\241\347\256\241\347\220\206/\347\233\221\346\216\247\345\221\212\350\255\246.md" create mode 100644 "AdminDoc/06\344\272\221\346\234\215\345\212\241\347\256\241\347\220\206/\350\265\204\346\272\220\345\233\236\346\224\266.html" create mode 100644 "AdminDoc/06\344\272\221\346\234\215\345\212\241\347\256\241\347\220\206/\350\265\204\346\272\220\345\233\236\346\224\266.md" create mode 100644 "AdminDoc/07\344\272\221\350\265\204\346\272\220\345\210\206\346\236\220/README.md" create mode 100644 "AdminDoc/07\344\272\221\350\265\204\346\272\220\345\210\206\346\236\220/index.html" create mode 100644 "AdminDoc/07\344\272\221\350\265\204\346\272\220\345\210\206\346\236\220/\345\256\271\351\207\217\347\256\241\347\220\206.html" create mode 100644 "AdminDoc/07\344\272\221\350\265\204\346\272\220\345\210\206\346\236\220/\345\256\271\351\207\217\347\256\241\347\220\206.md" create mode 100644 "AdminDoc/07\344\272\221\350\265\204\346\272\220\345\210\206\346\236\220/\350\256\241\351\207\217\350\256\241\350\264\271.html" create mode 100644 "AdminDoc/07\344\272\221\350\265\204\346\272\220\345\210\206\346\236\220/\350\256\241\351\207\217\350\256\241\350\264\271.md" create mode 100644 "AdminDoc/07\344\272\221\350\265\204\346\272\220\345\210\206\346\236\220/\350\265\204\346\272\220\346\262\273\347\220\206.html" create mode 100644 "AdminDoc/07\344\272\221\350\265\204\346\272\220\345\210\206\346\236\220/\350\265\204\346\272\220\346\262\273\347\220\206.md" create mode 100644 "AdminDoc/08\345\267\245\345\215\225\346\234\215\345\212\241\347\256\241\347\220\206/README.md" create mode 100644 "AdminDoc/08\345\267\245\345\215\225\346\234\215\345\212\241\347\256\241\347\220\206/index.html" create mode 100644 "AdminDoc/09\347\263\273\347\273\237\347\256\241\347\220\206/README.md" create mode 100644 "AdminDoc/09\347\263\273\347\273\237\347\256\241\347\220\206/index.html" create mode 100644 "AdminDoc/10\347\247\237\346\210\267\347\256\241\347\220\206/README.md" create mode 100644 "AdminDoc/10\347\247\237\346\210\267\347\256\241\347\220\206/index.html" create mode 100644 "AdminDoc/11\351\233\206\346\210\220\344\270\216\345\217\221\345\270\203\347\256\241\347\220\206/README.md" create mode 100644 "AdminDoc/11\351\233\206\346\210\220\344\270\216\345\217\221\345\270\203\347\256\241\347\220\206/index.html" create mode 100644 "AdminDoc/12\345\256\211\345\205\250\345\256\241\350\256\241/README.md" create mode 100644 "AdminDoc/12\345\256\211\345\205\250\345\256\241\350\256\241/index.html" create mode 100644 "PDF/5.1.0\345\237\272\347\241\200\346\246\202\345\277\265.pdf" create mode 100644 "PDF/5.1.0\347\224\250\346\210\267\346\211\213\345\206\214.pdf" create mode 100644 "PDF/5.1.0\347\256\241\347\220\206\345\221\230\346\211\213\345\206\214.pdf" create mode 100644 "PDF/5.2.0\345\237\272\347\241\200\346\246\202\345\277\265.pdf" create mode 100644 "PDF/5.2.0\347\224\250\346\210\267\346\211\213\345\206\214.pdf" create mode 100644 "PDF/5.2.0\347\256\241\347\220\206\345\221\230\346\211\213\345\206\214.pdf" create mode 100644 "PDF/SmartCMP5.5.0 \347\256\241\347\220\206\345\221\230\346\211\213\345\206\214.pdf" create mode 100644 "PDF/SmartCMP5.5.0\347\224\250\346\210\267\346\211\213\345\206\214.pdf" create mode 100644 PDF/index.html create mode 100644 "UserDoc/01\345\277\253\351\200\237\344\270\212\346\211\213/README.md" create mode 100644 "UserDoc/01\345\277\253\351\200\237\344\270\212\346\211\213/index.html" create mode 100644 "UserDoc/02\351\246\226\351\241\265/README.md" create mode 100644 "UserDoc/02\351\246\226\351\241\265/index.html" create mode 100644 "UserDoc/03\344\272\221\350\265\204\346\272\220\346\234\215\345\212\241\344\275\277\347\224\250\346\214\207\345\215\227/README.md" create mode 100644 "UserDoc/03\344\272\221\350\265\204\346\272\220\346\234\215\345\212\241\344\275\277\347\224\250\346\214\207\345\215\227/index.html" create mode 100644 "UserDoc/04\346\211\213\345\267\245\345\267\245\345\215\225\346\234\215\345\212\241\344\275\277\347\224\250\346\214\207\345\215\227/README.md" create mode 100644 "UserDoc/04\346\211\213\345\267\245\345\267\245\345\215\225\346\234\215\345\212\241\344\275\277\347\224\250\346\214\207\345\215\227/index.html" create mode 100644 "UserDoc/05\351\233\206\346\210\220\344\270\216\345\217\221\345\270\203\344\275\277\347\224\250\346\214\207\345\215\227/README.md" create mode 100644 "UserDoc/05\351\233\206\346\210\220\344\270\216\345\217\221\345\270\203\344\275\277\347\224\250\346\214\207\345\215\227/index.html" rename "foundationConcepts/04\346\234\215\345\212\241\347\233\256\345\275\225/README.md" => "foundationConcepts/04\346\234\215\345\212\241\346\250\241\345\236\213/README.md" (56%) create mode 100644 "foundationConcepts/04\346\234\215\345\212\241\346\250\241\345\236\213/index.html" delete mode 100644 "foundationConcepts/04\346\234\215\345\212\241\347\233\256\345\275\225/index.html" create mode 100644 "foundationConcepts/05\351\233\206\346\210\220\344\270\216\345\217\221\345\270\203/README.md" create mode 100644 "foundationConcepts/05\351\233\206\346\210\220\344\270\216\345\217\221\345\270\203/index.html" create mode 100644 gitbook/gitbook-plugin-page-footer-ex/lib/plugin.js create mode 100644 gitbook/gitbook-plugin-page-footer-ex/style/plugin.css delete mode 100644 gitbook/gitbook-plugin-tbfed-pagefooter/footer.css create mode 100644 picture/Admin/AWS.png create mode 100644 picture/Admin/Ali.png create mode 100644 picture/Admin/Azure.png create mode 100644 picture/Admin/DNS.png create mode 100644 "picture/Admin/F5\344\270\216OpenStack.png" create mode 100644 picture/Admin/Gitlab01.png create mode 100644 picture/Admin/Hyper-V.png create mode 100644 picture/Admin/Kubernetes.png create mode 100644 picture/Admin/OpenStack LoadBalancer with SecurityGroup.png create mode 100644 picture/Admin/Openstack Firewall.png create mode 100644 "picture/Admin/Pic05-\346\234\215\345\212\241\346\250\241\345\236\213.png" create mode 100644 picture/Admin/Qcloud.png create mode 100644 picture/Admin/VMware NSX.png create mode 100644 picture/Admin/devops01.png create mode 100644 picture/Admin/devops02.png create mode 100644 picture/Admin/flowable01.png create mode 100644 picture/Admin/flowable02.png create mode 100644 picture/Admin/flowable03.png create mode 100644 picture/Admin/flowable04.png create mode 100644 picture/Admin/github1.png create mode 100644 picture/Admin/github2.png create mode 100644 picture/Admin/openStack.png create mode 100644 picture/Admin/trigger.png create mode 100644 picture/Admin/vSphere MySQL.png create mode 100644 picture/Admin/vSphere.png create mode 100644 "picture/Admin/\344\276\235\350\265\226\345\205\263\347\263\273.png" create mode 100644 "picture/Admin/\345\210\233\345\273\272\350\204\232\346\234\254.png" create mode 100644 "picture/Admin/\345\256\271\351\207\217\347\256\241\347\220\206.png" create mode 100644 "picture/Admin/\346\211\247\350\241\214\350\204\232\346\234\254.png" create mode 100644 "picture/Admin/\346\214\201\347\273\255\345\217\221\345\270\203\345\222\214\351\203\250\347\275\262.png" create mode 100644 "picture/Admin/\346\214\201\347\273\255\345\217\221\345\270\203\345\222\214\351\203\250\347\275\262V2.png" create mode 100644 "picture/Admin/\346\223\215\344\275\234-\345\237\272\346\234\254\344\277\241\346\201\257.png" create mode 100644 "picture/Admin/\346\223\215\344\275\234-\350\204\232\346\234\254\345\210\227\350\241\250.png" create mode 100644 "picture/Admin/\346\234\215\345\212\241\346\250\241\345\236\213.png" create mode 100644 "picture/Admin/\347\216\257\345\242\203\347\256\241\347\220\206\345\221\230.png" create mode 100644 "picture/Admin/\350\204\232\346\234\254\345\217\202\346\225\260.png" create mode 100644 "picture/Admin/\350\207\252\345\256\232\344\271\211\350\204\232\346\234\254.png" create mode 100644 "picture/Admin/\350\207\252\345\256\232\344\271\211\350\277\220\347\273\264\346\223\215\344\275\234.png" create mode 100644 "picture/Admin/\350\241\250\345\215\225\351\205\215\347\275\256-\345\217\202\346\225\260.png" create mode 100644 "picture/Admin/\350\241\250\345\215\225\351\205\215\347\275\256-\350\241\250\345\215\225.png" create mode 100644 "picture/Admin/\350\256\241\351\207\217\350\256\241\350\264\271.png" create mode 100644 "picture/Admin/\350\265\204\346\272\220\345\205\250\347\224\237\345\221\275\345\221\250\346\234\237\347\256\241\347\220\206.png" delete mode 100644 "picture/foundationConcepts/Pic05-\346\234\215\345\212\241\347\233\256\345\275\225.png" create mode 100644 picture/foundationConcepts/pipeline.gif create mode 100644 "picture/foundationConcepts/\344\272\221\346\234\215\345\212\241\346\250\241\345\236\213.png" create mode 100644 "picture/foundationConcepts/\345\267\245\345\205\267\351\223\276.png" create mode 100644 "picture/foundationConcepts/\346\236\266\346\236\204\345\233\276V1.png" create mode 100644 "picture/foundationConcepts/\346\236\266\346\236\204\345\233\276V2.png" create mode 100644 "picture/foundationConcepts/\346\236\266\346\236\204\345\233\276V3.png" create mode 100644 "picture/foundationConcepts/\346\265\201\346\260\264\347\272\277.png" create mode 100644 "picture/foundationConcepts/\347\201\260\345\272\246\345\217\221\345\270\203.png" create mode 100644 "picture/foundationConcepts/\347\273\204\344\273\266\346\236\204\346\210\220\350\223\235\345\233\276.png" create mode 100644 "picture/foundationConcepts/\350\275\257\344\273\266\345\210\266\345\223\201\347\256\241\347\220\206.png" create mode 100644 releaseNotes/5.2.0README.html create mode 100644 releaseNotes/5.2.0README.md create mode 100644 releaseNotes/5.5.0README.html create mode 100644 releaseNotes/5.5.0README.md create mode 100644 releaseNotes/6.0.0README.html create mode 100644 releaseNotes/6.0.0README.md delete mode 100644 releaseNotes/README.md delete mode 100644 releaseNotes/index.html delete mode 100644 "releaseNotes/\345\267\262\347\237\245\351\227\256\351\242\230.html" delete mode 100644 "releaseNotes/\345\267\262\347\237\245\351\227\256\351\242\230.md" delete mode 100644 "releaseNotes/\350\247\243\345\206\263\351\227\256\351\242\230.html" delete mode 100644 "releaseNotes/\350\247\243\345\206\263\351\227\256\351\242\230.md" diff --git "a/AdminDoc/01\345\277\253\351\200\237\344\270\212\346\211\213/README.md" "b/AdminDoc/01\345\277\253\351\200\237\344\270\212\346\211\213/README.md" new file mode 100644 index 0000000..8188c77 --- /dev/null +++ "b/AdminDoc/01\345\277\253\351\200\237\344\270\212\346\211\213/README.md" @@ -0,0 +1,1123 @@ + +**管理员快速上手** + +SmartCMP主要有两种服务场景,其一是云资源蓝图服务场景;其二是工单服务场景。 ++ 云资源蓝图服务场景 +云资源蓝图服务基于蓝图建模来定义标准的服务框架与组件,提供丰富的开箱即用的软件组件,以可视化的形式编排蓝图,实现自动化部署。 +例如:配置一项vSphere单节点虚拟机服务是云资源蓝图服务的典型场景。 +管理员经过蓝图建模之后,通过服务配置指定用户可以申请使用的资源、参数,形成基于蓝图的标准服务,发布后用户可以自助申请,自动化交付。 + ++ 工单服务场景 +工单服务分为两种类型: +1. 申请非标准化资源的服务(例如:为了卸除某项服务部署,申请云资源蓝图服务,申请此项云资源服务的操作是工单服务的典型服务场景) +2. 需要IT人工介入的服务(例如:申请重新设置密码的手工工单服务,申请此项手工工单服务也是工单服务的典型服务场景) +支持管理员定义标准工单服务、通过服务配置指定服务流程和服务团队再发布服务、通过服务目录进行服务申请,服务团队接收服务工单,进行工单处理操作。 + +>「Note」配置更多云资源蓝图服务请您参考[快速配置云资源蓝图服务](#快速配置云资源蓝图服务),工单服务详细介绍,请您参考[手工工单服务管理](https://cloudchef.github.io/doc/AdminDoc/08工单服务管理/) + + +管理员初次使用系统发布服务,需要做如下操作以配置系统: + +1. 配置云平台入口:如vSphere、OpenStack的管理员登录信息 + +2. 添加IP池:定义可用的IP地址范围 + +3. 定义资源池:配置可使用的物理资源,并设置配额,例如CPU、内存、存储、网络等 + +4. 定义业务组,关联人员、资源池,配置审批流程、部署规范等 + +5. 定义虚拟机模板:选择云平台和对应的模板或镜像 + +6. 定义蓝图:定义服务的架构及自动化安装逻辑 + +7. 配置并发布服务:关联蓝图到业务组及资源池,并配置部署参数,例如选择虚拟机模板等 + +8. 申请服务:服务目录里申请服务,也可以在「组织架构」-「业务组」中启用业务组的向导式申请功能,直接开始向导式部署 + +9. 自助运维:在「我的部署」菜单栏中查看服务部署、云主机或云资源的详细信息,并进行自助运维操作 + +接下来的章节将介绍如何建立自己第一个云资源,发布并申请服务。您可以根据[快速配置云资源蓝图服务](#快速配置云资源蓝图服务),配置多种类型的云资源蓝图服务。 + +# 登录系统 + + ++ 浏览器输入SmartCMP的IP,例如:http://cmp.smartcmp.online:1688/#/login ++ 输入用户名和密码。 + +# 配置云平台入口 + + +云平台入口定义了SmartCMP纳管的公有云、私有云、容器或物理机的云基础设施资源。不同云基础设施账号的形式及获取方式各有不同,管理员可以通过填写对应的基础设施的访问信息完成云平台基础设施的注册。 + +>「Note」请使用租户管理员或基础设施管理员登录SmartCMP平台。公有云的访问信息获取方式,请您参考[添加阿里云平台](https://cloudchef.github.io/doc/AdminDoc/03基础设施管理/云平台管理.html#添加阿里云平台) + +## 添加vSphere云平台 + +1. 进入「基础设施」-「云平台管理」,选择「vSphere」,点击「添加」 + +2. 输入所需参数(请根据自己的真实环境输入相关参数,示例只给出参考) + +|参数名称 |描述 |示例| +|:------:|:------:|:-----:| +|云名称|vSphere云平台名称|数据中心A--vCenter| +|用户名|vSphere用户名|administrator\@vsphere.local| +|密码| vSphere密码 |确认密码 | +|地址|vSphere API URL |192.168.xx.xx| +|端口|API端口|443| +|数据中心|数据中心所在地|上海| +|关联VMware NSX云平台|NSX云平台(需先添加VMware平台)|选择对应的NSX云平台名称| + + +3. 点击「验证」,验证连接vSphere虚拟化平台;若输入参数错误,则提示配置错误;若配置正确,则提示验证连接成功 + +4. 验证成功后,点击「提交」,vSphere虚拟化平台连接成功 + +## 添加OpenStack云平台 + +1. 进入「基础设施」-「云平台管理」,选择「OpenStack」,点击「添加」 + +2. 输入所需参数(请根据自己的真实环境输入相关参数) + + +|参数名称| 描述| 示例| +|:------:|:------:|:-----:| +|云名称 | OpenStack云平台名称| OpenStack| +|认证URL| OpenStack keystone认证URL| http://xxx.xxx.xxx.x:500/v2| +|API版本 | 选择API版本:版本2 版本3| 版本2| +|租户名称 | 租户名称 | admin| +|用户名| 用户名| admin| +|密码| 密码 | 确认密码| +|区域| 区域名称 | RegionOne| +|数据中心| 数据中心所在地| 上海| + +3. 点击「验证」,验证连接OpenStack虚拟化平台;若输入参数错误,则提示配置错误;若配置正确,则提示验证连接成功 + +4. 验证连接成功后,点击「提交」, OpenStack云平台入口已保存 + +## 添加阿里云平台 + +您可以根据下面的步骤来添加一个阿里云平台: + +1. 在左边导航选择「基础设施」-「云平台管理」,在左边选择「阿里云」类型 + +2. 点击「添加」按钮,填入下列信息: + +|参数名称|描述 |示例| +| :------:|:------:|:-----:| +|云名称| 阿里云云平台名称| Aliyun| +|访问密钥ID| 阿里云访问密钥ID| 获取方式请参考接入云平台| +|访问密钥| 阿里云访问密钥 | 获取方式请参考接入云平台| + +3. 点击「验证」,验证连接成功后,点击「提交」, 阿里云平台入口已保存 + +# 添加IP池 + + +管理员可在SmartCMP中配置IP池,管理IP地址段,并可在IP池中查看IP地址使用情况,可占用以及释放被占用的IP地址。 + +1. 用户可以根据需要对IP池进行添加,选择「基础设施」-「IP地址管理」,点击「添加」,选择IP池(还支持F5 + BIG-IP、ACI IP池),进入创建IP池页面 + +2. 在「概况」页面:输入名称、描述(选填)、CIDR、网关等 + +3. 点击「IP范围」菜单,IP范围下点击「添加」:在创建IP范围页面输入名称,起始IP和结束IP,点击「提交」,IP范围创建成功。在列表下方可看到IP范围内的IP地址的状态(可用、已占用、预留、冷却中),可进行释放和占用操作。 + +4. 点击「保存」,IP池创建成功 + +>「Note」IP池的起始ID应大于等于CIDR,IP池的结束IP应大于起始IP + +# 定义资源池 + + +SmartCMP可通过定义资源池来将一个云平台中的资源映射到多个逻辑单元中,并配置到不同的组织架构,从而指定不同的组织和用户使用该云平台中的基础设施资源,包括计算、存储和网络资源等。一个云平台可以定义一个资源池,也可以定义多个资源池。 + +定义该资源池和业务组的关联关系,资源的共享情况分为三种: + +1. 资源池仅分配给唯一的业务组,操作方法:不选择「允许共享给多个业务组」,点击「业务组」选择该业务组 + +2. 资源池分配给所有的业务组,并且新增的业务组自动关联该资源池,操作方法:选择「允许共享给多个业务组」,点击「业务组」选择全部业务组 + +3. 资源池共享给多个业务组,操作方法:选择「允许共享给多个业务组」,单价「业务组」选择相应的多个业务组 + +创建资源池的步骤如下: + +>「Note」请使用租户管理员或基础设施管理员角色登录SmartCMP平台。 + +## 添加vSphere资源池 + +1. 进入「基础设施」-「资源池管理」,点击「添加」,选择vSphere,填写下列信息: + +2. 「基本信息」页面: + + + 基本信息:名称,资源标签(选填),优先级(数值越小,优先级越高), + + + 云平台资源信息:选择云平台入口(选择刚创建的vSphere云平台),资源入口,文件夹(选填) + +3. 「基本信息」页面加载成功后点击「计算资源」: + + + 资源入口信息:仅查看 + + + 物理主机信息:仅查看 + + + 计算资源:vCPU数量(上限),内存(上限),虚机数量(上限),每台虚拟机允许快照数量(上限) + + + 存储:选择存储及其预留空间 + +4. 「网络资源」页面: + + + 网络资源:选择某一网络,IP分配方式选择IP池,并在「IP地址管理」栏下选择新建的IP池 + + + 分布式虚拟交换机:默认 + +5. 点击「保存」,保存后在资源池列表出现刚添加成功的vSphere资源池 + +## 添加OpenStack资源池 + +1. 进入「基础设施」-「资源池管理」,点击「添加」,选择OpenStack,填写下列信息: + +2. 「基本信息」页面: + + + 基本信息:名称,业务组、是否共享给多个业务组、资源标签(选填),优先级 + + + 云平台资源信息:选择云平台入口(选择刚创建的OpenStack云平台)、可用区(选择云平台后出现)、DNS域(选填) + +>「Note」域名由根域名、顶级域、二级、三级等多级域名构成,每级域名由字母、数字和连字符(-)构成(第一个字符不能是连字符),不区分大小写,长度不超过63个字符。一个完整域名总长度不超过255个字符,必须以点结尾。配置资源池DNS域前请先配置租户中的DNS域。 + +业务组关联情况请参考 + +3. 「基本信息」加载成功后点击「计算资源」: + + + 资源信息:仅查看 + + + 计算资源:vCPU数量(上限),内存(上限),存储(上限),虚机数量(上限),浮动IP数量(上限) + +4. 「网络资源」 + + + 「网络资源」:选择网络及对应的子网、IP分配方式选择IP池,并在「IP池」栏下选择刚创建的IP池 + + + 「安全策略组」:选择一个或多个安全策略组 + + + 「防火墙」:选择一个或多个防火墙 + +5. 「路由」:可选 + +6. 点击「保存」,保存后在资源池列表出现刚添加成功的OpenStack资源池 + +## 添加阿里云资源池 + +您可以根据下面的步骤来添加阿里云资源池: + +1. 进入「基础设施」-「资源池管理」,点击「添加」,选择阿里云,填写下列信息: + +2. 「基本信息」页面: + + + 基本信息:名称,是否共享给多个业务组、资源标签(选填),优先级(数值越小,优先级越高) + + + 云平台资源信息:选择云平台入口(阿里云云平台)、区域以及可用区(选择区域后出现对应的可用区,可多选)、网络类型(经典网络/专有网络) + +3. 「基本信息」加载成功后点击「计算资源」:vCPU数量(上限),内存(上限),虚机数量(上限) + +4. 「付费方式」:选择预付费或后付费 + +预付费:预付费是指您需要先付费才能使用资源。根据计费周期不同,预付费可以分为: + + + 按周付费:计费周期为一周 + + + 包年包月:计费周期为月或年 + +选择预付费后,请选择购买时长,小至一周,大至5年。可勾选自动续费,按周购买自动续费时长为一周,按月购买自动续费时长为1个月,按年购买自动续费时长为1年 + +后付费:后付费是指您先使用资源后付费的方式。使用这种方式,您可以按需取用资源,随时开启和释放资源,无需提前购买大量资源。 + +「网络资源」 + +「安全策略组」:选择一个或多个安全策略组 + +「虚拟交换机」:若选择专有网络,可选择虚拟交换机 + + 点击「保存」,阿里云资源池创建成功 + +# 定义业务组 + + +业务组是租户内的逻辑组织结构,支持创建多级业务组,用于在SmartCMP系统内对应企业的组织架构。业务组内关联该业务组所属的用户以及该业务组可使用的资源池。 + +业务组是一个逻辑概念,有需要把用户、服务目录和资源配额联系在一起的实体都可以用业务组来对应,比如子公司,不同层级的部门等。 + +系统默认创建Default业务组以及租户管理员、业务组管理员和业务组普通用户等。可通过以下步骤分配资源池: + +>「Note」如需修改该业务组的设置,或创建新的业务组,请参考 [组织架构](https://cloudchef.github.io/doc/AdminDoc/04组织架构管理/)中的详细步骤。 + +1. 点击左侧导航栏「组织架构」-「业务组」,点击业务组名称(Default)进入编辑页面 + +2. 「概况」页面,保持默认值 + +3. 「用户」页面,保持默认值。系统默认设置两个用户,分别为业务组管理员和业务组普通用户 + +4. 「资源池」页面,点击「添加资源池」,选择上节创建的vSphere资源池和OpenStack资源池,点击「确定」 + +5. 点击「保存」,业务组与资源池关联成功 + +6. 为业务组申请资源和服务关联审批流程 + +7. 为业务组成员配置云资源操作许可和服务部署操作许可 + +# 定义虚拟机模板 + + +平台支持创建虚拟机模板,一个操作系统可对应多个虚拟机模板,一个虚拟机模板可在多个云平台中使用。虚拟机模板与vSphere平台中的模板或OpenStack平台中的镜像相关联。 + +在虚拟机模板中可配置SmartCMP两种代理的安装方式和账号信息,这两种代理是监控代理和自动化代理。SmartCMP平台中的一些自动化功能依赖自动化代理, + +例如:蓝图带应用部署或添加磁盘,服务配置初始化并挂载磁盘、创建新用户,以及部分虚机运维操作(包括重置密码,执行脚本,应用启动停止,添加、扩展Linux逻辑卷或Windows磁盘等)。 + +创建虚拟机模板之后,可在服务配置中直接指定。SmartCMP可根据蓝图对象所在的云平台自动识别虚拟机模板。 + +这里定义两个虚拟机模板:CentOS 7和Windows 2012 R2: + +>「Note」请使用租户管理员或基础设施管理员角色登录SmartCMP平台。租户管理员可为某用户指定基础设施管理员角色。系统默认创建了3个虚拟机模板:Windows2012 R2、Redhat 7、CentOS7,还需添加相应的云平台信息才可使用。创建虚拟机模板详见下文 + +添加虚拟机模板 + +## 添加Linux虚拟机模板 + +1. 选择「基础设施」-「虚拟机模板」,进入虚拟机模板列表界面。该页面默认有2个Linux虚拟机模板,分别为Redhat + 7和CentOS 7 + +2. 点击「CentOS + 7」,进入虚拟机模板「基本信息」页面,该页面显示操作系统名称、描述、以及系统类型(Linux + 或Windows) + +3. 点击「虚拟机模板」标签页,进入虚拟机模板列表界面 + +## 添加一个vSphere虚拟机模板 {#添加一个vsphere虚拟机模板 .afff6} + +1. 点击「添加」,输入模板名称:Linux CentOS 7 on + vSphere,选择2.2.1节配置的vSphere云平台并做如下配置: + ++ 克隆模式:选择「完全克隆」或「链接克隆」 + +>「Note」完全克隆是和原始虚拟机完全独立的一个拷贝,它不和原始虚拟机共享任何资源,可以脱离原始虚拟机独立使用;链接克隆需要和原始虚拟机共享同一虚拟磁盘文件,不能脱离原始虚拟机独立运行。但采用共享磁盘文件却大大缩短了创建克隆虚拟机的时间,同时还节省了宝贵的物理磁盘空间。 + + + 完全克隆 +模板,选择一个Linux CentOS 7模板 + + + 链接克隆 + +虚拟机:选择一个Linux CentOS 7的模板;快照模式:默认"指定一个快照",可选择"申请时候选择"或"总是使用最新"这两种快照模式, +选择"申请时候选择"将在服务申请的时候选择虚拟机快照; 快照:若快照模式选择"指定一个快照",将选择一个快照;使用规范:选择「内建」(按需求选择无、内建或自定义规范,规范有助于防止在部署相同设置的虚机时而产生冲突);模板中已启用SSH:勾选该选项,表示模板中已经启用和配置SSH,可以选择通过SSH的方式安装监控代理和自动化代理;默认SSH端口为22,如果模板中修改了SSH的端口,可输入模板中修改的SSH端口号;用户名、密码:若选择启用SSH,填写具有SSH权限的用户及其密码 + ++ 监控方式: + + + + + 无监控:若不安装监控代理,则平台的监控功能不可用 + + + SSH安装监控代理:选择SSH安装的话,会通过SSH的方式访问虚拟机并安装监控代理;设置监控端口,默认是9100 + + + 预安装监控代理:预安装是指模板中已经安装了监控代理 + + + 云平台监控:从vCenter上直接读取虚机的监控数据,不需要安装监控代理 + ++ 安装自动化代理: + + + + + 不安装:若不安装自动化代理,则平台的一些自动化功能将无法使用,例如蓝图带应用部署或添加磁盘,某些虚拟机的操作如重置密码,执行脚本等 + + + SSH安装:选择SSH安装,会通过SSH的方式访问虚拟机并安装自动化代理 + + + 预安装:预安装是指模板中已经安装了自动化代理 + + ++ 管理员用户:输入模板中配置的管理员用户名 + ++ 管理员密码:输入模板中配置的管理员密码 + +2. 点击「提交」,提示虚拟机模板已创建。点击「保存」,提示虚拟机模板已更新 + +## 添加一个OpenStack虚拟机模板 {#添加一个openstack虚拟机模板 .afff6} + + 点击「添加」,输入虚拟机模板名称Linux CentOS 7 on OpenStack,选择2.2.2节配置的OpenStack云平台并做如下配置: + + + 启动源类型:选择从镜像启动、从快照启动、从云硬盘启动、从云硬盘快照启动 + + 从镜像启动:选择镜像名称和快照模式;快照模式默认为"不使用快照",可选择"申请时候选择"和"总是使用最新的"。若选择"申请时候选择"将在服务申请时指定虚拟机快照 + + 从快照启动:选择快照名称 + + 从云硬盘启动:选择镜像名称和快照模式;快照模式默认为"不使用快照",可选择"申请时候选择"和"总是使用最新的"。若选择"申请时候选择"将在服务申请时指定虚拟机快照;若勾选"终止后删除",将在终止主机后删除硬盘。选择"从云硬盘启动"模式需要在服务配置时选择卷类型和配置卷大小 + + 从云硬盘快照启动:选择云硬盘快照名称,若勾选"终止后删除",将在终止主机后删除硬盘。选择"从云硬盘快照启动"模式需要在服务配置时选择卷类型和配置卷大小 + + 监控方式和自动化代理的方式:与vSphere的Linux模板相同,可配置SSH端口,此外SSH用户支持密钥方式(可在「基础设施」-「密钥对」中新建密钥或导入密钥) + + 管理员用户名和密码:输入需要设置的操作系统管理员用户名和密码 + +点击「提交」,提示虚拟机模板已创建。点击「保存」,提示虚拟机模板已更新此时CentOS7的Linux操作系统,关联了2个虚拟机模板。在[配置服务](https://cloudchef.github.io/doc/AdminDoc/05服务建模/服务配置.html)的时候,平台会自动选择与该服务相对应的虚拟机模板,无需重复设置。 + +## 添加Windows虚拟机模板 + +1. 选择「基础设施」-「虚拟机模板」,进入虚拟机模板列表界面。该页面默认有1个Windows虚拟机模板,Windows + 2012 R2 + +2. 点击「Windows 2012 R2」,进入虚拟机模板「基本信息」页面 + +3. 该页面显示操作系统名称、描述、以及系统类型 + +4. 点击「虚拟机模板」标签页,进入虚拟机模板列表界面 + +## 添加一个vSphere虚拟机模板 {#添加一个vsphere虚拟机模板-1 .afff6} + +1. 点击「添加」,输入虚拟机模板名称:Windows 2012 R2 onvSphere,选择vSphere云平台并做如下配置: + ++ 克隆模式:选择「完全克隆」(按需求选择完全克隆或链接克隆) + +>「Note」完全克隆是和原始虚拟机完全独立的一个拷贝,它不和原始虚拟机共享任何资源,可以脱离原始虚拟机独立使用;链接克隆需要和原始虚拟机共享同一虚拟磁盘文件,不能脱离原始虚拟机独立运行。但采用共享磁盘文件却大大缩短了创建克隆虚拟机的时间,同时还节省了宝贵的物理磁盘空间。 + + + 完全克隆:模板:选择Windows 2012模板 + + + + + 链接克隆 + 虚拟机:选择一个Windows 2012的模板; 使用规范:选择「内建」(按需求选择无、内建或自定义规范,规范有助于防止在部署相同设置的虚机时而产生冲突);模板中已启用WinRM:勾选该选项,表示模板中已经启用和配置WinRM,可以选择通过WinRM的方式安装监控代理和自动化代理 + ++ 监控方式: + + + + 无监控:不安装监控代理,则平台的监控功能不可用 + + + WinRM安装监控代理:会通过WinRM的方式访问虚拟机并安装监控代理;设置监控端口,默认是9182 + + + 预安装监控代理:指模板中已经安装了监控代理 + + + 云平台监控:从vCenter上直接读取虚机的监控数据,不需要安装监控代理 + + + ++ 安装自动化代理: + + + + 不安装:若不安装自动化代理,则平台的一些自动化功能将无法使用,例如蓝图带应用部署或添加磁盘,某些虚拟机的操作如重置密码,执行脚本等 + + + WinRM安装:选择WinRM安装,会通过WinRM的方式访问虚拟机并安装自动化代理 + + + 预安装:是指模板中已经安装了自动化代理 + + + ++ Windows用户名:输入需要设置的Windows管理员用户名 + ++ Windows密码:输入需要设置的Windows管理员密码 + +2. 点击「提交」,提示虚拟机模板已创建。点击「保存」,提示虚拟机模板已更新 + +## 添加一个OpenStack虚拟机模板 {#添加一个openstack虚拟机模板-1 .afff6} + +1. 点击「添加」,输入虚拟机模板名称:Windows 2012 R2 on OpenStack,选择2.3.2节配置的OpenStack云平台并做如下配置: + + + 启动源类型:选择从镜像启动、从快照启动、从云硬盘启动或从云硬盘快照启动 + + + 1. 从镜像启动:选择镜像名称(选择Windows + 2012的镜像)和快照模式(不使用快照、申请时候选择、总是使用最新) + + 2. 从快照启动:选择快照名称(选择Windows 2012的快照) + + 3. 从云硬盘启动:选择镜像名称(选择Windows + 2012的镜像)和快照模式(不使用快照、申请时候选择、总是使用最新) + + 4. 从云硬盘快照启动:选择云硬盘快照名称(选择Windows 2012的快照) + + + + 安装监控和自动化代理的方式与vSphere的Windows模板相同 + + + Windows用户名: 输入需要设置的Windows管理员用户名 + + + 验证类型:密钥对、密码两种类型,选择密码 + + + Windows密码:设置用户名对应的密码 + +2. 点击「提交」,提示虚拟机模板已创建。点击「保存」,提示虚拟机模板已更新 + + + +# 定义蓝图 + + +软件架构师可以通过蓝图管理界面以可视化的方式设计虚拟机或应用蓝图。蓝图是对应用的抽象,包含应用的拓扑,工作流以及策略三部分。 + +通过拖拽式可视化的蓝图建模,软件架构师可以非常高效对复杂多节点应用建模。 + +普通用户可以在其基础上,通过服务目录申请服务,完成一键申请,快速多次部署。 + +系统默认内置了蓝图,包括vSphere Linux,vSphere +Windows等,可直接使用,进入下一节进行服务配置和发布。 + +>「Note」如需创建新的蓝图,请参考[服务建模](https://cloudchef.github.io/doc/AdminDoc/05服务建模)中的详细步骤。 + +# 配置并发布服务 + + +在SmartCMP云管理平台的服务配置界面里可以创建、配置和发布服务。这里将系统默认配置的**vSphere +Linux**蓝图(1个Server+1个Network)与底层资源池相关联,配置模板等部署所需的必要参数。 + +>「Note」请使用业务组管理员或基础设施管理员角色登录SmartCMP平台。 + +## 添加vSphere Linux单节点服务 + +1. 在左边导航栏选择「服务建模」-「服务配置」,点击「添加」:输入服务名称及服务描述(选填),选择系统默认的vSphere + Linux蓝图,选择系统默认的Default业务组或全部业务组,点击「提交」 + +2. 服务配置项创建成功后进入编辑页面,「概况」页面全都选择默认值(可根据需求修改配置) + +>「Note」配置服务时,很多选项可以勾选「允许修改」和「仅审批时可修改」。这里存在两种情况:如果勾选一项「允许修改」,则用户在请求服务时,可修改参数,在服务审批阶段也可修改参数;如果勾选两项「允许修改」和「仅审批时可修改」,用户在服务请求中,不可修改参数,只在服务审批阶段允许修改参数; + + 进入「组件配置」页面,选择「Server」,进入server节点详细设置页面 + +「基本信息」:保留默认值(可根据需求修改云主机数量) + + + + 计算资源 + + OS主机名(Hostname):继承业务组命名规则 + (不勾选「允许改变」和「仅审批时可修改」) + + 云主机名称:继承业务组命名规则 + (不勾选「允许改变」和「仅审批时可修改」) + + 注释:选填(不勾选「允许改变」和「仅审批时可修改」) + + + 资源池配置 + + 资源池选择策略:默认自动选择 + + + 模板设置 + +选择上节配置的vSphere虚拟机模板(Centos 7 --- Linux CentOS 7 on + vSphere) + + + 计算规格配置 + + 计算规格模式:自定义 + + vCPU数量:2(不勾选「允许改变」和「仅审批时可修改」) + + 内存(GB):8(不勾选「允许改变」和「仅审批时可修改」) + + + 系统盘配置 + + 置备模式:虚拟机模板中完全克隆时可选 + + 文件夹:选择一个文件夹,虚机会部署在选中的vCenter文件夹里(资源池中配置) + + 虚拟机存储策略:默认数据存储默认值,(不勾选「允许改变」和「仅审批时可修改」) +存储:虚机会部署在选中的存储里。若不选,则部署在资源池定义的存储里 + +允许用户添加新磁盘时选择置备模式和存储:不勾选 + + + 「网络」 + + 配置IP分配方式。点击配置网络下的「IP分配方式」,选择「IP池」(根据资源池中的「网络资源」配置提供可选范围,若资源池中仅配置IP池的分配方式,则服务配置默认且仅有IP池的分配方式) + + 「用户」:保持默认 + + 「磁盘」:保持默认 + + 「关系」:保持默认 + + 「操作许可」:保持默认 + + 点击「保存」,返回组件配置页面。选择「Network」进行编辑 + + 进入Network「属性」页面,选择所需网络标签(根据资源池中「网络资源」配置的网络标签可选项进行选择),勾选「管理网络」,点击「保存」,返回组件配置页面 + + 点击「保存并发布」,新的服务变成已发布状态 + +>「Note」发布成功后,使用业务组成员角色登录SmartCMP平台,在「服务目录」中申请虚拟机。 + +## 添加OpenStack Linux 单节点服务 + +1. 在左边导航栏选择「服务建模」-「服务配置」,点击「添加」:输入服务名称及服务描述(选填),选择系统默认的**OpenStack + Linux蓝图**,选择系统默认的Default业务组或全部业务组,点击「提交」 + +2. 服务配置项创建成功后进入编辑页面,「概况」页面全都选择默认值(可根据需求修改配置) + +>「Note」配置服务时,很多选项可以勾选「允许修改」和「仅审批时可修改」。这里存在两种情况:如果勾选一项「允许修改」,则用户在请求服务时,可以进行修改参数,在服务审批阶段也可以进行修改参数;如果勾选两项项「允许修改」和「仅审批时可修改」,则用户在请求服务时,不可以进行修改参数,只在服务审批阶段允许进行修改参数; + + 进入「组件配置」页面,选择「Server」,配置云服务器,进入节点详细设置页面 + + + 「概况」 + +保留默认值(可根据需求修改云主机数量) + + + 「云资源属性」 + + + + + 基本信息 + + OS主机名(Hostname):继承业务组命名规则 + (不勾选「允许改变」和「仅审批时可修改」) + +云主机名称:继承业务组命名规则 +(不勾选「允许改变」和「仅审批时可修改」) + + 主机集合:不选择 + + + 资源池配置 + + 资源池选择策略:默认自动选择 + + + 虚拟机模板 + + 选择上节配置的虚拟机模板Linux CentOS 7 on OpenStack + + + 「网络资源」 + + 默认不配置DNS + + 「磁盘」:保持默认 + + 「安全策略组」:保持默认 + + 「关系」:保持默认 + + 「操作许可」:保持默认 + + 点击「保存」,返回组件配置页面。选择「Network」进行编辑 + + 进入Network「属性」页面,选择所需网络和子网,不勾选「允许改变」和「仅审批时可修改」,IP分配方式根据所选网络和子网在资源池中的配置决定。不勾选「管理网络」,点击「保存」,返回组件配置页面 + + 点击「保存并发布」,新的服务变成已发布状态 + +# 申请服务 + + +服务发布成功后,可在服务目录界面查看并申请已发布的服务。 + +1. 点击左侧导航栏的一级菜单「服务目录」,选择上节配置的vSphere单节点服务或OpenStack单节点服务,点击进入服务申请界面 + +2. 在该页面查看该服务的详情信息,如:组织信息,部署信息,申请参数等 + +3. 填写/修改相关信息,若无直接进入下一步 + +4. 点击申请,根据该业务组的流程控制(审批模板)获得批准后申请成功。Default业务组无审批流程,申请后直接进入部署 + +# 自助运维 + + +服务申请后,可在「我的部署」-「服务部署」查看该部署的进行状态。 + + + 若有审批流程,可在「服务请求」-「待审批」进入待审批页面,可查看当前审批流程走向 + + + 若无审批流程,可点击服务部署名称进入部署详情页面,可查看该部署的基本信息,服务部署拓扑,以及操作历史 + + + + + 可在操作历史中查看当前部署进程。在「我的部署」-「服务部署」-「操作历史」标签页中,选中操作,可在下方查看当前部署进程。 + + + 在基本信息页面:查看服务名称、蓝图、部署时间、到期时间、保留时间、业务组、项目、所有者等信息 + + + 在页面上方可进行服务部署的运维操作。 + +## 查看服务部署详情和自助运维 + +服务成功部署后,可在「服务部署」页面查看该服务部署的详细信息以及云主机、应用组件的监控信息。一个服务部署包含一台或多台云主机。 + +1. 在左侧菜单选择「我的部署」-「服务部署」后,您将会看到服务部署列表,可在「高级搜索」中根据业务组、阶段(运行、操作进行中、关闭、操作失败、已取消、部署审批中 + )、状态(正常、异常)、所有者、项目进行筛选,也可直接进行搜索操作 + +2. 在服务部署列表中,您可以选中一个或者多个服务部署快速进行一些运维操作,包括「停止服务部署」「安装软件」「复制服务部署」「延长过期时间」「卸除服务部署」「删除管理信息」「更改所有者」「更改项目」「更改业务组」和「伸缩」(示例为vSphere服务部署,不同云平台的运维操作有差异) + + >「Note」只有在业务组设置或服务配置时配置虚拟机的操作许可,虚拟机在部署生成后才能看到允许的操作列表。Default 业务组默认全部操作启用给业务组管理员,且无审批流程。 + + 点击服务部署名称,可查看该服务部署的详细信息。服务部署详情信息界面包括「基本信息」「服务部署拓扑」「操作历史」和「监控」(对云主机和应用组件的监控) + + + 「基本信息」:包括服务部署的名称、业务组、项目、蓝图、资源池、云平台,以及费用、状态、时间等相关信息。还包括该服务部署的输入参数列表以及输出结果信息。服务部署失败后,某些场景可线下修复,修复成功后支持更改服务部署状态,将"操作失败"更改为"运行" + + +「服务部署拓扑」:包括服务部署的蓝图、详情和流程信息。鼠标悬停至服务拓扑图中,将显示该节点的关键信息,如Server节点将显示云主机名称、客户操作系统、IP地址、内存、磁盘总空间、vCPU数量、CPU使用率、内存使用率等 + + +「操作历史」:显示该服务部署的操作历史记录 + + +「监控」:显示对该部署中的云主机和组件应用的监控信息 + +## 查看云主机详情和自助运维 + +同时,可在「云主机」中查看云主机状态和详情来对其进行管理和操作,操作的启用和是否需要审批需要在业务组级别或者服务配置级别进行设置。 + +1. 在左侧菜单选择「我的部署」-「云主机」,您将会看到云主机的列表,在列表右上角「高级搜索」中可以根据业务组、状态(已启动、遗失、已停止)、所有者、项目、标签进行筛选。点击「展示列」,可以勾选或者不选某些列进行展示 + +2. 在云主机列表中,您可以选中一个或者多个云主机快速进行一些操作,包括「启动」「重新启动」「挂起」「停止」「执行脚本」「设置标签」「启用/切换监控」「更新监控代理」「更新自动化代理」等 + +3. 您也可以单击某一个云主机进入其详情界面进行管理和操作,包括「基本信息」「操作历史」「快照信息」「监控」「应用列表」标签页和顶部的运维操作列表 + +>「Note」只有当该云主机安装监控和带应用时,部署成功后,在云主机详情页才能看见监控和应用标签页 + +「基本信息」包括: + + + 虚拟机及其相关主机的基本信息,如:名称、操作系统、已装软件、vCPU、内存、状态、SSH端口、自动化代理、监控方式、监控端口、租用/保留到期时间等 + + + 关系:服务器信息、资源池、数据存储、虚拟机存储策略以及网络标签等 + + + 物理主机信息 + + + 用户和组 + + + 组织信息:服务部署名称、服务名称、业务组、租户、项目等 + + + 运行状态 + + + IP地址 + + + 键值标签 + +>「Note」更多主机相关信息,将根据不同云平台、不同服务配置项决定 + + 「操作历史」包括了该虚拟机进行过的操作历史记录 + + 「快照信息」显示当前的快照信息(快照名称、创建时间等),可对快照进行「刷新」「添加」「恢复」和「删除」操作 + + 「监控」包括了该虚拟机CPU、内存、磁盘、网络的监控数据(可以按照需要调整时间跨度或者平均时间来查看历史监控数据) + +>「Note」只有在虚拟机模板中配置安装监控的虚拟机在部署生成后,才可以在监控中看到数据。 + + 「应用列表」显示当前虚机已安装的应用列表(若该虚机未安装应用,则不显示应用列表菜单) + + 「运维操作列表」包括了该虚拟机可执行的操作列表,具体操作介绍会在下文展开 + +>「Note」只有在业务组设置或服务配置时配置虚拟机的操作许可,虚拟机在部署生成后才能看到允许的操作列表。Default业务组默认业务组管理员启用全部操作,且无审批流程;业务组成员已启用常见操作,且无审批流程。 + +## 查看云资源详情 + +「云资源」中可查看相关云资源状态和详情来对其进行管理和操作。 + +在左侧菜单选择「我的部署」-「云资源」,您将会看到列表左侧有以下几个类别:存储、容器服务、网络资源、PaaS资源、软件资源。 + + + 「存储资源」:云硬盘、对象存储 + + + 「容器服务」:部署、守护进程集、有状态副本集、容器、服务、路由、存储卷、配置字典、保密字典 + + + 「网络资源」:负载均衡器、负载均衡监听器、负载均衡成员池、负载均衡SNAT池、浮动IP、防火墙、安全组、域名系统DNS + + + 「PaaS资源」:关系型数据库、Web应用 + + + 「软件资源」:软件 + + +# 工单服务 + + +SmartCMP支持租户和系统管理员定义和发布标准的工单服务,支持用户自服务申请与跟踪。接下来的章节将介绍如何建立自己第一个工单,发布并申请服务。 + +## 定义服务团队 + +服务团队是工单服务管理过程中处理工单任务的服务人员集合,支持租户管理员自定义关联用户。 + +创建服务团队的简要步骤: + +1. 点击左侧导航栏「组织架构」-「服务团队」,点击服务团队名称,进入编辑页面 + +2. 「基本信息」页面,键入名称和描述 + +3. 「用户」页面,关联和取消关联用户 + +4. 点击「保存」,服务团队创建成功,与用户关联成功 + +>「Note」如需修改该服务团队的设置,或创建新的服务团队,请参考[组织架构](https://cloudchef.github.io/doc/AdminDoc/04组织架构管理)中的详细步骤。 + +## 配置与发布服务 + +配置服务的简要步骤: + +1. 在左边导航栏选择「服务建模」-「服务配置」,点击「添加」 + +2. 填写服务名称、服务描述(选填)、选择业务组,服务类型为手工工单服务时,增选一项服务流程,点击「提交」,进入服务配置「概况」页面 + +3. 在「基本信息」标签页填入下列信息:名称,描述,logo图像,服务组,顺序,流程配置页面指定处理人来处理工单任务,配置处理人的角色类型和具体的处理人 + +4. 点击保存按钮,服务将被保存不发布,点击保存并发布按钮,服务将被发布到服务目录页面。 + +>「Note」请使用租户管理员角色登录SmartCMP平台。如需修改配置与发布的设置,或创建新的配置与发布,请参考[创建和配置服务工单](https://cloudchef.github.io/doc/AdminDoc/08工单服务管理/)中的详细步骤。如需修改服务流程的配置,或创建新的服务流程配置,请参考[服务流程管理](https://cloudchef.github.io/doc/AdminDoc/08工单服务管理/)。 + +## 工单处理和跟踪 + +工单处理和跟踪的简要步骤: + +1. 在左侧导航栏点击「服务请求」-「待处理」,其中显示处理请求的基本信息:请求编号,请求类型,标题,业务组,项目,申请状态,申请时间,完成时间。 + +2. 选择一个待处理的服务请求,点击「请求编号」链接,跳转到请求详情页面,查看该请求的基本信息,工单信息,处理记录,流程步骤,服务处理信息等。 + +3. 处理方式定义为两种,直接处理和转派处理。选择直接处理方式,点击直接处理,填上处理结果描述,即可点击提交处理。 + +4. 点击「服务请求」-「所有请求」,即可查看所有服务请求的详细信息。 + +>「Note」具体的工单处理和跟踪,请您参考[处理和跟踪工单](https://cloudchef.github.io/doc/AdminDoc/08工单服务管理/) + + + + +# 快速配置云资源蓝图服务 {#快速配置云资源蓝图服务} + + +本节简述配置以下几个服务所需的步骤以及配置过程的链接,帮助您快速定位内容。 + +[vSphere 单节点虚拟机服务](#vSphere单节点虚拟机服务) + +[VMware NSX 服务](#VMwareNSX服务) + +[vSphere MySQL带监控服务](#vSphereMysql带监控服务) + +[OpenStack 单节点服务](#OpenStack单节点服务) + +[OpenStack Firewall 服务](#OpenStackFirewall服务) + +[OpenStack LoadBalancer withSecurityGroup服务](#OpenStackLoadBalanceWithSecurityGroup服务) + +[OpenStack FloatingIP服务](#OpenStackFloatingIP服务) + +[Kubernetes服务](#Kubernetes服务) + +[阿里云服务](#阿里云服务) + +[Azure服务](#Azure服务) + +[AWS服务](#AWS服务) + +[青云服务](#青云服务) + +[Hyper-V服务](#Hyper-V服务) + +## vSphere单节点虚拟机服务{#vSphere单节点虚拟机服务} + +i. 添加vSphere云平台:参照[添加vSphere云平台](https://cloudchef.github.io/doc/AdminDoc/03基础设施管理/云平台管理.html#添加vSphere云平台) + +ii. 添加vSphere 资源池:参照[ 添加vSphere资源池](https://cloudchef.github.io/doc/AdminDoc/03基础设施管理/资源池管理.html#添加vSphere资源池) + +iii. 添加业务组与资源池的关联:参照[业务组添加资源池](https://cloudchef.github.io/doc/AdminDoc/04组织架构管理/业务组.html#业务组添加资源池) + +iv. 配置虚拟机模板:参照[添加一个vSphere虚拟机模板](https://cloudchef.github.io/doc/AdminDoc/03基础设施管理/虚拟机模板.html#添加vSphere虚拟机模板) + +v. 定义计算规格:参照[添加vSphere计算规格](https://cloudchef.github.io/doc/AdminDoc/03基础设施管理/计算规格.html#添加vSphere计算规格) + +vi. 创建vSphere单节点蓝图:参照[创建vSphere单节点蓝图](https://cloudchef.github.io/doc/AdminDoc/05服务建模/蓝图设计.html#创建vSphere单节点蓝图) + +vii. 配置vSphere单节点服务:参照[ 配置vSphere单节点服务](https://cloudchef.github.io/doc/AdminDoc/05服务建模/服务配置.html#配置vSphere单节点服务) + +viii. 服务申请:参照[服务目录申请](https://cloudchef.github.io/doc/AdminDoc/06云服务管理/#服务目录申请) + +ix. 服务部署运维操作:参照[服务部署运维操作](https://cloudchef.github.io/doc/AdminDoc/06云服务管理/我的部署.html#服务部署运维操作) + +x. 云主机相关运维操作:参照[云主机运维操作](https://cloudchef.github.io/doc/AdminDoc/06云服务管理/我的部署.html#云主机运维操作) + +## VMwareNSX服务{#VMwareNSX服务} + +i. 添加VMware NSX平台:参照[ 添加VMware NSX平台](https://cloudchef.github.io/doc/AdminDoc/03基础设施管理/云平台管理.html#添加VMwareNSX平台) + +ii. 添加vSphere云平台:参照[ 添加vSphere云平台](https://cloudchef.github.io/doc/AdminDoc/03基础设施管理/云平台管理.html#添加vSphere云平台) + +iii. 添加vSphere with NSX资源池:参照[ 添加vSphere with NSX资源池](https://cloudchef.github.io/doc/AdminDoc/03基础设施管理/资源池管理.html#添加vSphereWithNSX资源池) + +iv. 配置虚拟机模板:参照[添加一个vSphere虚拟机模板](https://cloudchef.github.io/doc/AdminDoc/03基础设施管理/虚拟机模板.html#添加vSphere虚拟机模板) + +v. 定义计算规格:参照[添加vSphere计算规格](https://cloudchef.github.io/doc/AdminDoc/03基础设施管理/计算规格.html#添加vSphere计算规格) + +vi. 添加业务组与资源池的关联:参照[业务组添加资源池](https://cloudchef.github.io/doc/AdminDoc/04组织架构管理/业务组.html#业务组添加资源池) + +vii. 创建VMware NSX蓝图:参照[ 创建VMware NSX蓝图](https://cloudchef.github.io/doc/AdminDoc/05服务建模/蓝图设计.html#创建VMwareNSX蓝图) + +viii. 配置VMware NSX服务:参照[ 配置VMware NSX服务](https://cloudchef.github.io/doc/AdminDoc/05服务建模/服务配置.html#配置VMwareNSX服务) + +ix. 服务申请:参照[ 服务目录申请](https://cloudchef.github.io/doc/AdminDoc/06云服务管理/#服务目录申请) + +x. 服务部署运维操作:参照[服务部署运维操作](https://cloudchef.github.io/doc/AdminDoc/06云服务管理/我的部署.html#服务部署运维操作) + +xi. 云主机相关运维操作:参照[云主机运维操作](https://cloudchef.github.io/doc/AdminDoc/06云服务管理/我的部署.html#云主机运维操作) + +## vSphereMySQL带监控服务{#vSphereMysql带监控服务} + +i. 添加vSphere云平台:参照[ 添加vSphere云平台](https://cloudchef.github.io/doc/AdminDoc/03基础设施管理/云平台管理.html#添加vSphere云平台) + +ii. 添加vSphere 资源池:参照[ 添加vSphere资源池](https://cloudchef.github.io/doc/AdminDoc/03基础设施管理/资源池管理.html#添加vSphere资源池) + +iii. 添加业务组与资源池的关联:参照[业务组添加资源池](https://cloudchef.github.io/doc/AdminDoc/04组织架构管理/业务组.html#业务组添加资源池) + +iv. 配置虚拟机模板:参照[添加vSphere虚拟机模板](https://cloudchef.github.io/doc/AdminDoc/03基础设施管理/虚拟机模板.html#添加vSphere虚拟机模板) + +v. 定义计算规格:参照[添加vSphere计算规格](https://cloudchef.github.io/doc/AdminDoc/03基础设施管理/计算规格.html#添加vSphere计算规格) + +vi. 创建vSphere MySQL带监控蓝图:参照[ 创建vSphereMySQL带监控蓝图](https://cloudchef.github.io/doc/AdminDoc/05服务建模/蓝图设计.html#创建vSphereMySQL带监控蓝图) + +vii. 配置vSphereMySQL带监控服务:参照[配置vSphereMySQL带监控服务](https://cloudchef.github.io/doc/AdminDoc/05服务建模/服务配置.html#配置vSphereMySQL带监控服务) + +viii. 服务申请:参照[ 服务目录申请](https://cloudchef.github.io/doc/AdminDoc/06云服务管理/#服务目录申请) + +ix. 服务部署运维操作:参照[ 服务部署运维操作](https://cloudchef.github.io/doc/AdminDoc/06云服务管理/我的部署.html#服务部署运维操作) + +x. 云主机相关运维操作:参照[云主机运维操作](https://cloudchef.github.io/doc/AdminDoc/06云服务管理/我的部署.html#云主机运维操作) + +## OpenStack单节点服务{#OpenStack单节点服务} + +i. 添加OpenStack云平台:参照[ 添加OpenStack云平台](https://cloudchef.github.io/doc/AdminDoc/03基础设施管理/云平台管理.html#添加OpenStack云平台) + +ii. 添加OpenStack 资源池:参照[ 添加OpenStack资源池](https://cloudchef.github.io/doc/AdminDoc/03基础设施管理/资源池管理.html#添加OpenStack资源池) + +iii. 添加业务组与资源池的关联:参照[业务组添加资源池](https://cloudchef.github.io/doc/AdminDoc/04组织架构管理/业务组.html#业务组添加资源池) + +iv. 配置虚拟机模板:参照[添加一个OpenStack虚拟机模板](https://cloudchef.github.io/doc/AdminDoc/03基础设施管理/虚拟机模板.html#OpenStack虚拟机模板) + +v. 定义计算规格:参照[添加OpenStack计算规格](https://cloudchef.github.io/doc/AdminDoc/03基础设施管理/计算规格.html#添加OpenStack计算规格) + +vi. 创建OpenStack单节点蓝图:参照[创建OpenStack单节点蓝图](https://cloudchef.github.io/doc/AdminDoc/05服务建模/蓝图设计.html#创建OpenStack单节点蓝图) + +vii. 配置OpenStack单节点服务:参照[配置OpenStack单节点服务](https://cloudchef.github.io/doc/AdminDoc/05服务建模/服务配置.html#配置OpenStack单节点服务) + +viii. 服务申请:参照[ 服务目录申请](https://cloudchef.github.io/doc/AdminDoc/06云服务管理/#服务目录申请) + +ix. 服务部署运维操作:参照[服务部署运维操作](https://cloudchef.github.io/doc/AdminDoc/06云服务管理/我的部署.html#服务部署运维操作) + +x. 云主机相关运维操作:参照[云主机运维操作](https://cloudchef.github.io/doc/AdminDoc/06云服务管理/我的部署.html#云主机运维操作) + +## OpenStackFirewall服务{#OpenStackFirewall服务} + +i. 添加OpenStack云平台:参照[ 添加OpenStack云平台](https://cloudchef.github.io/doc/AdminDoc/03基础设施管理/云平台管理.html#添加OpenStack云平台) + +ii. 添加OpenStack 资源池:参照[ 添加OpenStack资源池](https://cloudchef.github.io/doc/AdminDoc/03基础设施管理/资源池管理.html#添加OpenStack资源池) + +iii. 添加业务组与资源池的关联:参照[业务组添加资源池](https://cloudchef.github.io/doc/AdminDoc/04组织架构管理/业务组.html#业务组添加资源池) + + +xi. 配置虚拟机模板:参照[添加一个OpenStack虚拟机模板](https://cloudchef.github.io/doc/AdminDoc/03基础设施管理/虚拟机模板.html#添加OpenStack虚拟机模板) + +xii. 定义计算规格:参照[添加OpenStack计算规格](https://cloudchef.github.io/doc/AdminDoc/03基础设施管理/计算规格.html#添加OpenStack计算规格) + +iv. 创建OpenStack Firewall蓝图:参照[ 创建OpenStackFirewall蓝图](https://cloudchef.github.io/doc/AdminDoc/05服务建模/蓝图设计.html#创建OpenStackFirewall蓝图) + +v. 配置OpenStack Firewall服务:参照[ 配置OpenStackFirewall服务](https://cloudchef.github.io/doc/AdminDoc/05服务建模/服务配置.html#配置OpenStackFirewall服务) + +vi. 服务申请:参照[ 服务目录申请](https://cloudchef.github.io/doc/AdminDoc/06云服务管理/#服务目录申请) + +vii. 服务部署运维操作:参照[服务部署运维操作](https://cloudchef.github.io/doc/AdminDoc/06云服务管理/我的部署.html#服务部署运维操作) + + + +## OpenStackLoadBalancerWithSecurityGroup服务{#OpenStackLoadBalancerWithSecurityGroup服务} + +i. 添加OpenStack云平台:参照[添加OpenStack云平台](https://cloudchef.github.io/doc/AdminDoc/03基础设施管理/云平台管理.html#添加OpenStack云平台) + +ii. 添加OpenStack 资源池:参照[ 添加OpenStack资源池](https://cloudchef.github.io/doc/AdminDoc/03基础设施管理/资源池管理.html#添加OpenStack资源池) + +iii. 添加业务组与资源池的关联:参照[业务组添加资源池](https://cloudchef.github.io/doc/AdminDoc/04组织架构管理/业务组.html#业务组添加资源池) + +iv. 配置虚拟机模板:参照[添加一个OpenStack虚拟机模板](https://cloudchef.github.io/doc/AdminDoc/03基础设施管理/虚拟机模板.html#添加OpenStack虚拟机模板) + +xiii. 定义计算规格:参照[添加OpenStack计算规格](https://cloudchef.github.io/doc/AdminDoc/03基础设施管理/计算规格.html#添加OpenStack计算规格) + +v. 创建OpenStack LoadBalancer with SecuriryGruop蓝图:参照[创建OpenStack LoadBalancer SecurityGroup蓝图](https://cloudchef.github.io/doc/AdminDoc/05服务建模/蓝图设计.html#创建OpenStackLoadBalancerSecurityGroup蓝图) + +vi. 配置OpenStack LoadBalancer with SecuriryGruop服务:参照[配置OpenStack LoadBalancer with SecuriryGruop服务](https://cloudchef.github.io/doc/AdminDoc/05服务建模/服务配置.html#配置OpenStackLoadBalancerWithSecuriryGruop服务) + +vii. 服务申请:参照[ 服务目录申请](https://cloudchef.github.io/doc/AdminDoc/06云服务管理/#服务目录申请) + +viii. 服务部署运维操作:参照[服务部署运维操作](https://cloudchef.github.io/doc/AdminDoc/06云服务管理/我的部署.html#服务部署运维操作) + +ix. 云主机相关运维操作:参照[云主机运维操作](https://cloudchef.github.io/doc/AdminDoc/06云服务管理/我的部署.html#云主机运维操作) + + + +## OpenStackFloatingIP服务{#OpenStackFloatingIP服务} + +i. 添加OpenStack云平台:参照[添加OpenStack云平台](https://cloudchef.github.io/doc/AdminDoc/03基础设施管理/云平台管理.html#添加OpenStack云平台) + +ii. 添加OpenStack 资源池:参照[ 添加OpenStack资源池](https://cloudchef.github.io/doc/AdminDoc/03基础设施管理/资源池管理.html#添加OpenStack资源池) + +iii. 添加业务组与资源池的关联:参照[业务组添加资源池](https://cloudchef.github.io/doc/AdminDoc/04组织架构管理/业务组.html#业务组添加资源池) + +iv. 配置虚拟机模板:参照[添加一个OpenStack虚拟机模板](https://cloudchef.github.io/doc/AdminDoc/03基础设施管理/虚拟机模板.html#添加OpenStack虚拟机模板) + +v. 定义计算规格:参照[添加OpenStack计算规格](https://cloudchef.github.io/doc/AdminDoc/03基础设施管理/计算规格.html#添加OpenStack计算规格) + +vi. 创建OpenStack FloatingIP蓝图:参照[ 创建OpenStackFloatingIP蓝图](https://cloudchef.github.io/doc/AdminDoc/05服务建模/蓝图设计.html#创建OpenStackFloatingIP蓝图) + +vii. 配置OpenStack Firewall服务:参照[ 配置OpenStackFloatingIP服务](https://cloudchef.github.io/doc/AdminDoc/05服务建模/服务配置.html#配置OpenStackFloatingIP服务) + +viii. 服务申请:参照[ 服务目录申请](https://cloudchef.github.io/doc/AdminDoc/06云服务管理/#服务目录申请) + +ix. 服务部署运维操作:参照[服务部署运维操作](https://cloudchef.github.io/doc/AdminDoc/06云服务管理/我的部署.html#服务部署运维操作) + + + +## OpenStackDNS服务{#OpenStackDNS服务} + +i. 添加OpenStack云平台:参照[ 添加OpenStack云平台](https://cloudchef.github.io/doc/AdminDoc/03基础设施管理/云平台管理.html#添加OpenStack云平台) + +ii. 添加OpenStack 资源池:参照[ 添加OpenStack资源池](https://cloudchef.github.io/doc/AdminDoc/03基础设施管理/资源池管理.html#添加OpenStack资源池) + +iii. 添加业务组与资源池的关联:参照[业务组添加资源池](https://cloudchef.github.io/doc/AdminDoc/04组织架构管理/业务组.html#业务组添加资源池) + +iv. 配置虚拟机模板:参照[添加一个OpenStack虚拟机模板](https://cloudchef.github.io/doc/AdminDoc/03基础设施管理/虚拟机模板.html#添加OpenStack虚拟机模板) + +v. 定义计算规格:参照[添加OpenStack计算规格](https://cloudchef.github.io/doc/AdminDoc/03基础设施管理/计算规格.html#添加OpenStack计算规格) + +vi. 创建OpenStack DNS蓝图:参照[创建OpenStackDNS蓝图](https://cloudchef.github.io/doc/AdminDoc/05服务建模/蓝图设计.html#创建OpenStackDNS蓝图) + +vii. 配置OpenStack DNS服务:参照[ 配置OpenStack DNS服务](https://cloudchef.github.io/doc/AdminDoc/05服务建模/服务配置.html#配置OpenStackDNS服务) + +viii. 服务申请:参照[ 服务目录申请](https://cloudchef.github.io/doc/AdminDoc/06云服务管理/#服务目录申请) + +ix. 服务部署运维操作:参照[服务部署运维操作](https://cloudchef.github.io/doc/AdminDoc/06云服务管理/我的部署.html#服务部署运维操作) + + + +## Kubernetes服务{#Kubernetes服务} + +i. 添加Kubernetes云平台:参照[ 添加Kubernetes云平台](https://cloudchef.github.io/doc/AdminDoc/03基础设施管理/云平台管理.html#添加Kubernetes云平台) + +ii. 添加Kubernetes 资源池:参照[添加Kubernetes资源池](https://cloudchef.github.io/doc/AdminDoc/03基础设施管理/资源池管理.html#添加Kubernetes资源池) + +iii. 添加业务组与资源池的关联:参照[业务组添加资源池](https://cloudchef.github.io/doc/AdminDoc/04组织架构管理/业务组.html#业务组添加资源池) + +iv. 创建Kubernetes蓝图:参照[ 创建Kubernetes蓝图](https://cloudchef.github.io/doc/AdminDoc/05服务建模/蓝图设计.html#创建Kubernetes蓝图) + +v. 配置Kubernetes服务:参照[ 配置Kubernetes服务](https://cloudchef.github.io/doc/AdminDoc/05服务建模/服务配置.html#配置Kubernetes服务) + +vi. 服务申请:参照[ 服务目录申请](https://cloudchef.github.io/doc/AdminDoc/06云服务管理/#服务目录申请) + +vii. 服务部署运维操作:参照[服务部署运维操作](https://cloudchef.github.io/doc/AdminDoc/06云服务管理/我的部署.html#服务部署运维操作) + + + +## 阿里云服务{#阿里云服务} + +i. 添加阿里云云平台:参照[添加阿里云云平台](https://cloudchef.github.io/doc/AdminDoc/03基础设施管理/云平台管理.html#添加阿里云云平台) + +ii. 添加阿里云资源池:参照[添加阿里云资源池](https://cloudchef.github.io/doc/AdminDoc/03基础设施管理/资源池管理.html#添加阿里云资源池) + +iii. 添加业务组与资源池的关联:参照[业务组添加资源池](https://cloudchef.github.io/doc/AdminDoc/04组织架构管理/业务组.html#业务组添加资源池) + +iv. 配置虚拟机模板(阿里云虚拟机模板配置与Azure的配置步骤相似):参照[添加一个Azure虚拟机模板](https://cloudchef.github.io/doc/AdminDoc/03基础设施管理/虚拟机模板.html#添加Azure虚拟机模板) + +v. 定义计算规格(阿里云计算规格以及云平台规格的定义与Azure相似):参照[添加Azure计算规格](https://cloudchef.github.io/doc/AdminDoc/03基础设施管理/计算规格.html#添加Azure计算规格) + +vi. 创建阿里云蓝图:参照[创建阿里云蓝图](https://cloudchef.github.io/doc/AdminDoc/05服务建模/蓝图设计.html#创建阿里云蓝图) + +vii. 配置阿里云服务:参照[配置阿里云服务](https://cloudchef.github.io/doc/AdminDoc/05服务建模/服务配置.html#配置阿里云服务) + +viii. 服务申请:参照[服务目录申请](https://cloudchef.github.io/doc/AdminDoc/06云服务管理/#服务目录申请) + +ix. 服务部署运维操作:参照[服务部署运维操作](https://cloudchef.github.io/doc/AdminDoc/06云服务管理/我的部署.html#服务部署运维操作) + +x. 云主机相关运维操作:参照[云主机运维操作](https://cloudchef.github.io/doc/AdminDoc/06云服务管理/我的部署.html#云主机运维操作) + +## Azure服务{#Azure服务} + +i. 添加Azure云平台:参照[添加Azure云平台](https://cloudchef.github.io/doc/AdminDoc/03基础设施管理/云平台管理.html#添加Azure云平台) + +ii. 添加Azure资源池:参照[添加Azure资源池](https://cloudchef.github.io/doc/AdminDoc/03基础设施管理/资源池管理.html#添加Azure资源池) + +iii. 添加业务组与资源池的关联:参照[业务组添加资源池](https://cloudchef.github.io/doc/AdminDoc/04组织架构管理/业务组.html#业务组添加资源池) + +iv. 配置虚拟机模板:参照[添加一个Azure虚拟机模板](https://cloudchef.github.io/doc/AdminDoc/03基础设施管理/虚拟机模板.html#添加Azure虚拟机模板) + +v. 定义计算规格:参照[添加Azure计算规格](https://cloudchef.github.io/doc/AdminDoc/03基础设施管理/计算规格.html#添加Azure计算规格) + +vi. 创建Azure蓝图:参照[创建Azure蓝图](https://cloudchef.github.io/doc/AdminDoc/05服务建模/蓝图设计.html#创建Azure蓝图) + +vii. 配置Azure服务:参照[配置Azure服务](https://cloudchef.github.io/doc/AdminDoc/05服务建模/服务配置.html#配置Azure服务) + +viii. 服务申请:参照[服务目录申请](https://cloudchef.github.io/doc/AdminDoc/06云服务管理/#服务目录申请) + +ix. 服务部署运维操作:参照[服务部署运维操作](https://cloudchef.github.io/doc/AdminDoc/06云服务管理/我的部署.html#服务部署运维操作) + +x. 云主机相关运维操作:参照[云主机运维操作](https://cloudchef.github.io/doc/AdminDoc/06云服务管理/我的部署.html#云主机运维操作) + + + +## AWS服务{#AWS服务} + +i. 添加AWS云平台:参照[添加AWS云平台](https://cloudchef.github.io/doc/AdminDoc/03基础设施管理/云平台管理.html#添加AWS云平台) + +ii. 添加AWS资源池:参照[添加AWS资源池](https://cloudchef.github.io/doc/AdminDoc/03基础设施管理/资源池管理.html#添加AWS资源池) + +iii. 添加业务组与资源池的关联:参照[业务组添加资源池](https://cloudchef.github.io/doc/AdminDoc/04组织架构管理/业务组.html#业务组添加资源池) + + +xiv. 配置虚拟机模板(AWS虚拟机模板配置与Azure的配置步骤相似):参照[添加一个Azure虚拟机模板](https://cloudchef.github.io/doc/AdminDoc/03基础设施管理/虚拟机模板.html#添加Azure虚拟机模板) + +xv. 定义计算规格(AWS计算规格以及云平台规格的定义与Azure相似):参照[添加Azure计算规格](https://cloudchef.github.io/doc/AdminDoc/03基础设施管理/计算规格.html#添加Azure计算规格) + + +iv. 创建AWS蓝图:参照[创建AWS蓝图](https://cloudchef.github.io/doc/AdminDoc/05服务建模/蓝图设计.html#创建AWS蓝图) + +v. 配置AWS服务:参照[配置AWS服务](https://cloudchef.github.io/doc/AdminDoc/05服务建模/服务配置.html#[配置AWS服务) + +vi. 服务申请:参照[服务目录申请](https://cloudchef.github.io/doc/AdminDoc/06云服务管理/#服务目录申请) + +vii. 服务部署运维操作:参照[服务部署运维操作](https://cloudchef.github.io/doc/AdminDoc/06云服务管理/我的部署.html#服务部署运维操作) + +viii. 云主机相关运维操作:参照[云主机运维操作](https://cloudchef.github.io/doc/AdminDoc/06云服务管理/我的部署.html#云主机运维操作) + +## 青云服务{#青云服务} + +i. 添加青云云平台:参照[添加青云云平台](https://cloudchef.github.io/doc/AdminDoc/03基础设施管理/云平台管理.html#添加青云云平台) + +ii. 添加青云资源池:参照[添加青云资源池](https://cloudchef.github.io/doc/AdminDoc/03基础设施管理/资源池管理.html#) + +iii. 添加业务组与资源池的关联:参照[业务组添加资源池](https://cloudchef.github.io/doc/AdminDoc/04组织架构管理/业务组.html#业务组添加资源池) + +xvi. 配置虚拟机模板(青云虚拟机模板配置与Azure的配置步骤相似):参照[添加一个Azure虚拟机模板](https://cloudchef.github.io/doc/AdminDoc/03基础设施管理/虚拟机模板.html#添加Azure虚拟机模板) + +xvii. 定义计算规格(青云计算规格以及云平台规格的定义与Azure相似):参照[添加Azure计算规格](https://cloudchef.github.io/doc/AdminDoc/03基础设施管理/计算规格.html#添加Azure计算规格) + + +iv. 创建青云蓝图:参照[创建青云蓝图](https://cloudchef.github.io/doc/AdminDoc/05服务建模/蓝图设计.html#创建青云蓝图) + +v. 配置青云服务:参照[配置青云服务](https://cloudchef.github.io/doc/AdminDoc/05服务建模/服务配置.html#配置青云服务) + +vi. 服务申请:参照[服务目录申请](https://cloudchef.github.io/doc/AdminDoc/06云服务管理/#服务目录申请) + +vii. 服务部署运维操作:参照[服务部署运维操作](https://cloudchef.github.io/doc/AdminDoc/06云服务管理/我的部署.html#服务部署运维操作) + +viii. 云主机相关运维操作:参照[云主机运维操作](https://cloudchef.github.io/doc/AdminDoc/06云服务管理/我的部署.html#云主机运维操作) + + +## Hyper-V服务{#Hyper-V服务} + +i. 添加Hyper-V云平台:参照[添加Hyper-V云平台](https://cloudchef.github.io/doc/AdminDoc/03基础设施管理/云平台管理.html#添加Hyper-V云平台) + +ii. 添加Hyper-V资源池:参照[添加Hyper-V资源池](https://cloudchef.github.io/doc/AdminDoc/03基础设施管理/资源池管理.html#) + +iii. 添加业务组与资源池的关联:参照[业务组添加资源池](https://cloudchef.github.io/doc/AdminDoc/04组织架构管理/业务组.html#业务组添加资源池) + +iv. 配置虚拟机模板:参照[添加Hyper-V虚拟机模板](https://cloudchef.github.io/doc/AdminDoc/03基础设施管理/虚拟机模板.html#添加Hyper-V虚拟机模板) + +v. 定义计算规格(Hyper-V计算规格定义与vSphere相似):参照[添加vSphere计算规格](https://cloudchef.github.io/doc/AdminDoc/03基础设施管理/计算规格.html#添加vSphere计算规格) + +vi. 创建Hyper-V 蓝图:参照[创建Hyper-V蓝图](https://cloudchef.github.io/doc/AdminDoc/05服务建模/蓝图设计.html#创建Hyper-V蓝图) + +vii. 配置Hyper-V服务:参照[配置Hyper-V服务](https://cloudchef.github.io/doc/AdminDoc/05服务建模/服务配置.html#配置Hyper-V服务) + +viii. 服务申请:参照[服务目录申请](https://cloudchef.github.io/doc/AdminDoc/06云服务管理/#服务目录申请) + +ix. 服务部署运维操作:参照[服务部署运维操作](https://cloudchef.github.io/doc/AdminDoc/06云服务管理/我的部署.html#服务部署运维操作) + +x. 云主机相关运维操作:参照[云主机运维操作](https://cloudchef.github.io/doc/AdminDoc/06云服务管理/我的部署.html#云主机运维操作) + +## F5服务{#F5服务} + +平台支持F5的管理和建模,主要功能点包括: +1. 新建和设计蓝图部署虚拟机和应用软件时,可以协同F5的Virtual + Server,Pool以及SNAT Pool网络配置同时自动化部署下发服务。 + +2. 支持为已经部署好的虚拟机添加F5负载均衡 +3. 服务部署完成之后,支持对Virtual Server和SNAT Pool的配置进行运维修改 + +您可以通过以下步骤部署F5服务: + +i. 添加F5 BIG-IP云平台:参照[添加F5 BIG-IP云平台](https://cloudchef.github.io/doc/AdminDoc/03基础设施管理/云平台管理.html#添加F5BIG-IP云平台) + +ii. 添加IP池:参照[添加IP池](https://cloudchef.github.io/doc/AdminDoc/03基础设施管理/IP地址管理.html#添加IP池) + +iii. 创建F5 BIG-IP资源池:参照[创建F5 BIG-IP资源池](https://cloudchef.github.io/doc/AdminDoc/03基础设施管理/资源池管理.html#创建F5BIG-IP资源池) + +iv. 创建F5 BIG-IP资源池与业务组的关联:参照[业务组添加资源池](https://cloudchef.github.io/doc/AdminDoc/04组织架构管理/业务组.html#业务组添加资源池) + +v. 创建F5蓝图:参照[创建F5与OpenStack组合蓝图](https://cloudchef.github.io/doc/AdminDoc/05服务建模/蓝图设计.html#创建F5与OpenStack组合蓝图) + +vi. 配置F5服务:参照[配置F5与OpenStack组合蓝图](https://cloudchef.github.io/doc/AdminDoc/05服务建模/服务配置.html#配置F5与OpenStack组合蓝图) + +vii. F5服务部署运维操作:参照[ 服务部署运维操作](https://cloudchef.github.io/doc/AdminDoc/06云服务管理/我的部署.html#服务部署运维操作) diff --git "a/AdminDoc/01\345\277\253\351\200\237\344\270\212\346\211\213/index.html" "b/AdminDoc/01\345\277\253\351\200\237\344\270\212\346\211\213/index.html" new file mode 100644 index 0000000..6cb3fe1 --- /dev/null +++ "b/AdminDoc/01\345\277\253\351\200\237\344\270\212\346\211\213/index.html" @@ -0,0 +1,2051 @@ + + + + + + + 快速上手 · 发行说明 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+
+ + + + + + + + +
+ +
+ +
+ + + + + + + + +
+
+ +
+
+ +
+ +

管理员快速上手

+

SmartCMP主要有两种服务场景,其一是云资源蓝图服务场景;其二是工单服务场景。

+
    +
  • 云资源蓝图服务场景 +云资源蓝图服务基于蓝图建模来定义标准的服务框架与组件,提供丰富的开箱即用的软件组件,以可视化的形式编排蓝图,实现自动化部署。 +例如:配置一项vSphere单节点虚拟机服务是云资源蓝图服务的典型场景。 +管理员经过蓝图建模之后,通过服务配置指定用户可以申请使用的资源、参数,形成基于蓝图的标准服务,发布后用户可以自助申请,自动化交付。

    +
  • +
  • 工单服务场景 +工单服务分为两种类型:

    +
  • +
  • 申请非标准化资源的服务(例如:为了卸除某项服务部署,申请云资源蓝图服务,申请此项云资源服务的操作是工单服务的典型服务场景)
  • +
  • 需要IT人工介入的服务(例如:申请重新设置密码的手工工单服务,申请此项手工工单服务也是工单服务的典型服务场景) +支持管理员定义标准工单服务、通过服务配置指定服务流程和服务团队再发布服务、通过服务目录进行服务申请,服务团队接收服务工单,进行工单处理操作。
  • +
+
+

「Note」配置更多云资源蓝图服务请您参考快速配置云资源蓝图服务,工单服务详细介绍,请您参考手工工单服务管理

+
+

管理员初次使用系统发布服务,需要做如下操作以配置系统:

+
    +
  1. 配置云平台入口:如vSphere、OpenStack的管理员登录信息

    +
  2. +
  3. 添加IP池:定义可用的IP地址范围

    +
  4. +
  5. 定义资源池:配置可使用的物理资源,并设置配额,例如CPU、内存、存储、网络等

    +
  6. +
  7. 定义业务组,关联人员、资源池,配置审批流程、部署规范等

    +
  8. +
  9. 定义虚拟机模板:选择云平台和对应的模板或镜像

    +
  10. +
  11. 定义蓝图:定义服务的架构及自动化安装逻辑

    +
  12. +
  13. 配置并发布服务:关联蓝图到业务组及资源池,并配置部署参数,例如选择虚拟机模板等

    +
  14. +
  15. 申请服务:服务目录里申请服务,也可以在「组织架构」-「业务组」中启用业务组的向导式申请功能,直接开始向导式部署

    +
  16. +
  17. 自助运维:在「我的部署」菜单栏中查看服务部署、云主机或云资源的详细信息,并进行自助运维操作

    +
  18. +
+

接下来的章节将介绍如何建立自己第一个云资源,发布并申请服务。您可以根据快速配置云资源蓝图服务,配置多种类型的云资源蓝图服务。

+

1. 登录系统

+ +

2. 配置云平台入口

+

云平台入口定义了SmartCMP纳管的公有云、私有云、容器或物理机的云基础设施资源。不同云基础设施账号的形式及获取方式各有不同,管理员可以通过填写对应的基础设施的访问信息完成云平台基础设施的注册。

+
+

「Note」请使用租户管理员或基础设施管理员登录SmartCMP平台。公有云的访问信息获取方式,请您参考添加阿里云平台

+
+

2.1. 添加vSphere云平台

+
    +
  1. 进入「基础设施」-「云平台管理」,选择「vSphere」,点击「添加」

    +
  2. +
  3. 输入所需参数(请根据自己的真实环境输入相关参数,示例只给出参考)

    +
  4. +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
参数名称描述示例
云名称vSphere云平台名称数据中心A--vCenter
用户名vSphere用户名administrator\@vsphere.local
密码vSphere密码确认密码
地址vSphere API URL192.168.xx.xx
端口API端口443
数据中心数据中心所在地上海
关联VMware NSX云平台NSX云平台(需先添加VMware平台)选择对应的NSX云平台名称
+
    +
  1. 点击「验证」,验证连接vSphere虚拟化平台;若输入参数错误,则提示配置错误;若配置正确,则提示验证连接成功

    +
  2. +
  3. 验证成功后,点击「提交」,vSphere虚拟化平台连接成功

    +
  4. +
+

2.2. 添加OpenStack云平台

+
    +
  1. 进入「基础设施」-「云平台管理」,选择「OpenStack」,点击「添加」

    +
  2. +
  3. 输入所需参数(请根据自己的真实环境输入相关参数)

    +
  4. +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
参数名称描述示例
云名称OpenStack云平台名称OpenStack
认证URLOpenStack keystone认证URLhttp://xxx.xxx.xxx.x:500/v2
API版本选择API版本:版本2 版本3版本2
租户名称租户名称admin
用户名用户名admin
密码密码确认密码
区域区域名称RegionOne
数据中心数据中心所在地上海
+
    +
  1. 点击「验证」,验证连接OpenStack虚拟化平台;若输入参数错误,则提示配置错误;若配置正确,则提示验证连接成功

    +
  2. +
  3. 验证连接成功后,点击「提交」, OpenStack云平台入口已保存

    +
  4. +
+

2.3. 添加阿里云平台

+

您可以根据下面的步骤来添加一个阿里云平台:

+
    +
  1. 在左边导航选择「基础设施」-「云平台管理」,在左边选择「阿里云」类型

    +
  2. +
  3. 点击「添加」按钮,填入下列信息:

    +
  4. +
+ + + + + + + + + + + + + + + + + + + + + + + + + +
参数名称描述示例
云名称阿里云云平台名称Aliyun
访问密钥ID阿里云访问密钥ID获取方式请参考接入云平台
访问密钥阿里云访问密钥获取方式请参考接入云平台
+
    +
  1. 点击「验证」,验证连接成功后,点击「提交」, 阿里云平台入口已保存
  2. +
+

3. 添加IP池

+

管理员可在SmartCMP中配置IP池,管理IP地址段,并可在IP池中查看IP地址使用情况,可占用以及释放被占用的IP地址。

+
    +
  1. 用户可以根据需要对IP池进行添加,选择「基础设施」-「IP地址管理」,点击「添加」,选择IP池(还支持F5 +BIG-IP、ACI IP池),进入创建IP池页面

    +
  2. +
  3. 在「概况」页面:输入名称、描述(选填)、CIDR、网关等

    +
  4. +
  5. 点击「IP范围」菜单,IP范围下点击「添加」:在创建IP范围页面输入名称,起始IP和结束IP,点击「提交」,IP范围创建成功。在列表下方可看到IP范围内的IP地址的状态(可用、已占用、预留、冷却中),可进行释放和占用操作。

    +
  6. +
  7. 点击「保存」,IP池创建成功

    +
  8. +
+
+

「Note」IP池的起始ID应大于等于CIDR,IP池的结束IP应大于起始IP

+
+

4. 定义资源池

+

SmartCMP可通过定义资源池来将一个云平台中的资源映射到多个逻辑单元中,并配置到不同的组织架构,从而指定不同的组织和用户使用该云平台中的基础设施资源,包括计算、存储和网络资源等。一个云平台可以定义一个资源池,也可以定义多个资源池。

+

定义该资源池和业务组的关联关系,资源的共享情况分为三种:

+
    +
  1. 资源池仅分配给唯一的业务组,操作方法:不选择「允许共享给多个业务组」,点击「业务组」选择该业务组

    +
  2. +
  3. 资源池分配给所有的业务组,并且新增的业务组自动关联该资源池,操作方法:选择「允许共享给多个业务组」,点击「业务组」选择全部业务组

    +
  4. +
  5. 资源池共享给多个业务组,操作方法:选择「允许共享给多个业务组」,单价「业务组」选择相应的多个业务组

    +
  6. +
+

创建资源池的步骤如下:

+
+

「Note」请使用租户管理员或基础设施管理员角色登录SmartCMP平台。

+
+

4.1. 添加vSphere资源池

+
    +
  1. 进入「基础设施」-「资源池管理」,点击「添加」,选择vSphere,填写下列信息:

    +
  2. +
  3. 「基本信息」页面:

    +
      +
    • 基本信息:名称,资源标签(选填),优先级(数值越小,优先级越高),

      +
    • +
    • 云平台资源信息:选择云平台入口(选择刚创建的vSphere云平台),资源入口,文件夹(选填)

      +
    • +
    +
  4. +
  5. 「基本信息」页面加载成功后点击「计算资源」:

    +
      +
    • 资源入口信息:仅查看

      +
    • +
    • 物理主机信息:仅查看

      +
    • +
    • 计算资源:vCPU数量(上限),内存(上限),虚机数量(上限),每台虚拟机允许快照数量(上限)

      +
    • +
    • 存储:选择存储及其预留空间

      +
    • +
    +
  6. +
  7. 「网络资源」页面:

    +
      +
    • 网络资源:选择某一网络,IP分配方式选择IP池,并在「IP地址管理」栏下选择新建的IP池

      +
    • +
    • 分布式虚拟交换机:默认

      +
    • +
    +
  8. +
  9. 点击「保存」,保存后在资源池列表出现刚添加成功的vSphere资源池

    +
  10. +
+

4.2. 添加OpenStack资源池

+
    +
  1. 进入「基础设施」-「资源池管理」,点击「添加」,选择OpenStack,填写下列信息:

    +
  2. +
  3. 「基本信息」页面:

    +
      +
    • 基本信息:名称,业务组、是否共享给多个业务组、资源标签(选填),优先级

      +
    • +
    • 云平台资源信息:选择云平台入口(选择刚创建的OpenStack云平台)、可用区(选择云平台后出现)、DNS域(选填)

      +
    • +
    +
  4. +
+
+

「Note」域名由根域名、顶级域、二级、三级等多级域名构成,每级域名由字母、数字和连字符(-)构成(第一个字符不能是连字符),不区分大小写,长度不超过63个字符。一个完整域名总长度不超过255个字符,必须以点结尾。配置资源池DNS域前请先配置租户中的DNS域。

+
+

业务组关联情况请参考

+
    +
  1. 「基本信息」加载成功后点击「计算资源」:

    +
      +
    • 资源信息:仅查看

      +
    • +
    • 计算资源:vCPU数量(上限),内存(上限),存储(上限),虚机数量(上限),浮动IP数量(上限)

      +
    • +
    +
  2. +
  3. 「网络资源」

    +
      +
    • 「网络资源」:选择网络及对应的子网、IP分配方式选择IP池,并在「IP池」栏下选择刚创建的IP池

      +
    • +
    • 「安全策略组」:选择一个或多个安全策略组

      +
    • +
    • 「防火墙」:选择一个或多个防火墙

      +
    • +
    +
  4. +
  5. 「路由」:可选

    +
  6. +
  7. 点击「保存」,保存后在资源池列表出现刚添加成功的OpenStack资源池

    +
  8. +
+

4.3. 添加阿里云资源池

+

您可以根据下面的步骤来添加阿里云资源池:

+
    +
  1. 进入「基础设施」-「资源池管理」,点击「添加」,选择阿里云,填写下列信息:

    +
  2. +
  3. 「基本信息」页面:

    +
      +
    • 基本信息:名称,是否共享给多个业务组、资源标签(选填),优先级(数值越小,优先级越高)

      +
    • +
    • 云平台资源信息:选择云平台入口(阿里云云平台)、区域以及可用区(选择区域后出现对应的可用区,可多选)、网络类型(经典网络/专有网络)

      +
    • +
    +
  4. +
  5. 「基本信息」加载成功后点击「计算资源」:vCPU数量(上限),内存(上限),虚机数量(上限)

    +
  6. +
  7. 「付费方式」:选择预付费或后付费

    +
  8. +
+

预付费:预付费是指您需要先付费才能使用资源。根据计费周期不同,预付费可以分为:

+
    +
  • 按周付费:计费周期为一周

    +
  • +
  • 包年包月:计费周期为月或年

    +
  • +
+

选择预付费后,请选择购买时长,小至一周,大至5年。可勾选自动续费,按周购买自动续费时长为一周,按月购买自动续费时长为1个月,按年购买自动续费时长为1年

+

后付费:后付费是指您先使用资源后付费的方式。使用这种方式,您可以按需取用资源,随时开启和释放资源,无需提前购买大量资源。

+

「网络资源」

+

「安全策略组」:选择一个或多个安全策略组

+

「虚拟交换机」:若选择专有网络,可选择虚拟交换机

+

点击「保存」,阿里云资源池创建成功

+

5. 定义业务组

+

业务组是租户内的逻辑组织结构,支持创建多级业务组,用于在SmartCMP系统内对应企业的组织架构。业务组内关联该业务组所属的用户以及该业务组可使用的资源池。

+

业务组是一个逻辑概念,有需要把用户、服务目录和资源配额联系在一起的实体都可以用业务组来对应,比如子公司,不同层级的部门等。

+

系统默认创建Default业务组以及租户管理员、业务组管理员和业务组普通用户等。可通过以下步骤分配资源池:

+
+

「Note」如需修改该业务组的设置,或创建新的业务组,请参考 组织架构中的详细步骤。

+
+
    +
  1. 点击左侧导航栏「组织架构」-「业务组」,点击业务组名称(Default)进入编辑页面

    +
  2. +
  3. 「概况」页面,保持默认值

    +
  4. +
  5. 「用户」页面,保持默认值。系统默认设置两个用户,分别为业务组管理员和业务组普通用户

    +
  6. +
  7. 「资源池」页面,点击「添加资源池」,选择上节创建的vSphere资源池和OpenStack资源池,点击「确定」

    +
  8. +
  9. 点击「保存」,业务组与资源池关联成功

    +
  10. +
  11. 为业务组申请资源和服务关联审批流程

    +
  12. +
  13. 为业务组成员配置云资源操作许可和服务部署操作许可

    +
  14. +
+

6. 定义虚拟机模板

+

平台支持创建虚拟机模板,一个操作系统可对应多个虚拟机模板,一个虚拟机模板可在多个云平台中使用。虚拟机模板与vSphere平台中的模板或OpenStack平台中的镜像相关联。

+

在虚拟机模板中可配置SmartCMP两种代理的安装方式和账号信息,这两种代理是监控代理和自动化代理。SmartCMP平台中的一些自动化功能依赖自动化代理,

+

例如:蓝图带应用部署或添加磁盘,服务配置初始化并挂载磁盘、创建新用户,以及部分虚机运维操作(包括重置密码,执行脚本,应用启动停止,添加、扩展Linux逻辑卷或Windows磁盘等)。

+

创建虚拟机模板之后,可在服务配置中直接指定。SmartCMP可根据蓝图对象所在的云平台自动识别虚拟机模板。

+

这里定义两个虚拟机模板:CentOS 7和Windows 2012 R2:

+
+

「Note」请使用租户管理员或基础设施管理员角色登录SmartCMP平台。租户管理员可为某用户指定基础设施管理员角色。系统默认创建了3个虚拟机模板:Windows2012 R2、Redhat 7、CentOS7,还需添加相应的云平台信息才可使用。创建虚拟机模板详见下文

+
+

添加虚拟机模板

+

6.1. 添加Linux虚拟机模板

+
    +
  1. 选择「基础设施」-「虚拟机模板」,进入虚拟机模板列表界面。该页面默认有2个Linux虚拟机模板,分别为Redhat +7和CentOS 7

    +
  2. +
  3. 点击「CentOS +7」,进入虚拟机模板「基本信息」页面,该页面显示操作系统名称、描述、以及系统类型(Linux +或Windows)

    +
  4. +
  5. 点击「虚拟机模板」标签页,进入虚拟机模板列表界面

    +
  6. +
+

6.2. 添加一个vSphere虚拟机模板

+
    +
  1. 点击「添加」,输入模板名称:Linux CentOS 7 on +vSphere,选择2.2.1节配置的vSphere云平台并做如下配置:

    +
  2. +
  3. 克隆模式:选择「完全克隆」或「链接克隆」

    +
  4. +
+
+

「Note」完全克隆是和原始虚拟机完全独立的一个拷贝,它不和原始虚拟机共享任何资源,可以脱离原始虚拟机独立使用;链接克隆需要和原始虚拟机共享同一虚拟磁盘文件,不能脱离原始虚拟机独立运行。但采用共享磁盘文件却大大缩短了创建克隆虚拟机的时间,同时还节省了宝贵的物理磁盘空间。

+
+
    +
  • 完全克隆 +模板,选择一个Linux CentOS 7模板

    +
  • +
  • 链接克隆

    +
  • +
+

虚拟机:选择一个Linux CentOS 7的模板;快照模式:默认"指定一个快照",可选择"申请时候选择"或"总是使用最新"这两种快照模式, +选择"申请时候选择"将在服务申请的时候选择虚拟机快照; 快照:若快照模式选择"指定一个快照",将选择一个快照;使用规范:选择「内建」(按需求选择无、内建或自定义规范,规范有助于防止在部署相同设置的虚机时而产生冲突);模板中已启用SSH:勾选该选项,表示模板中已经启用和配置SSH,可以选择通过SSH的方式安装监控代理和自动化代理;默认SSH端口为22,如果模板中修改了SSH的端口,可输入模板中修改的SSH端口号;用户名、密码:若选择启用SSH,填写具有SSH权限的用户及其密码

+
    +
  • 监控方式:
  • +
+
    +
  • 无监控:若不安装监控代理,则平台的监控功能不可用

    +
  • +
  • SSH安装监控代理:选择SSH安装的话,会通过SSH的方式访问虚拟机并安装监控代理;设置监控端口,默认是9100

    +
  • +
  • 预安装监控代理:预安装是指模板中已经安装了监控代理

    +
  • +
  • 云平台监控:从vCenter上直接读取虚机的监控数据,不需要安装监控代理

    +
  • +
+
    +
  • 安装自动化代理:
  • +
+
    +
  • 不安装:若不安装自动化代理,则平台的一些自动化功能将无法使用,例如蓝图带应用部署或添加磁盘,某些虚拟机的操作如重置密码,执行脚本等

    +
  • +
  • SSH安装:选择SSH安装,会通过SSH的方式访问虚拟机并安装自动化代理

    +
  • +
  • 预安装:预安装是指模板中已经安装了自动化代理

    +
  • +
+
    +
  • 管理员用户:输入模板中配置的管理员用户名

    +
  • +
  • 管理员密码:输入模板中配置的管理员密码

    +
  • +
  • 点击「提交」,提示虚拟机模板已创建。点击「保存」,提示虚拟机模板已更新

    +
  • +
+

6.3. 添加一个OpenStack虚拟机模板

+

点击「添加」,输入虚拟机模板名称Linux CentOS 7 on OpenStack,选择2.2.2节配置的OpenStack云平台并做如下配置:

+
    +
  • 启动源类型:选择从镜像启动、从快照启动、从云硬盘启动、从云硬盘快照启动
  • +
  • 从镜像启动:选择镜像名称和快照模式;快照模式默认为"不使用快照",可选择"申请时候选择"和"总是使用最新的"。若选择"申请时候选择"将在服务申请时指定虚拟机快照
  • +
  • 从快照启动:选择快照名称
  • +
  • 从云硬盘启动:选择镜像名称和快照模式;快照模式默认为"不使用快照",可选择"申请时候选择"和"总是使用最新的"。若选择"申请时候选择"将在服务申请时指定虚拟机快照;若勾选"终止后删除",将在终止主机后删除硬盘。选择"从云硬盘启动"模式需要在服务配置时选择卷类型和配置卷大小
  • +
  • 从云硬盘快照启动:选择云硬盘快照名称,若勾选"终止后删除",将在终止主机后删除硬盘。选择"从云硬盘快照启动"模式需要在服务配置时选择卷类型和配置卷大小
  • +
  • 监控方式和自动化代理的方式:与vSphere的Linux模板相同,可配置SSH端口,此外SSH用户支持密钥方式(可在「基础设施」-「密钥对」中新建密钥或导入密钥)
  • +
  • 管理员用户名和密码:输入需要设置的操作系统管理员用户名和密码
  • +
+

点击「提交」,提示虚拟机模板已创建。点击「保存」,提示虚拟机模板已更新此时CentOS7的Linux操作系统,关联了2个虚拟机模板。在配置服务的时候,平台会自动选择与该服务相对应的虚拟机模板,无需重复设置。

+

6.4. 添加Windows虚拟机模板

+
    +
  1. 选择「基础设施」-「虚拟机模板」,进入虚拟机模板列表界面。该页面默认有1个Windows虚拟机模板,Windows +2012 R2

    +
  2. +
  3. 点击「Windows 2012 R2」,进入虚拟机模板「基本信息」页面

    +
  4. +
  5. 该页面显示操作系统名称、描述、以及系统类型

    +
  6. +
  7. 点击「虚拟机模板」标签页,进入虚拟机模板列表界面

    +
  8. +
+

6.5. 添加一个vSphere虚拟机模板

+
    +
  1. 点击「添加」,输入虚拟机模板名称:Windows 2012 R2 onvSphere,选择vSphere云平台并做如下配置:

    +
  2. +
  3. 克隆模式:选择「完全克隆」(按需求选择完全克隆或链接克隆)

    +
  4. +
+
+

「Note」完全克隆是和原始虚拟机完全独立的一个拷贝,它不和原始虚拟机共享任何资源,可以脱离原始虚拟机独立使用;链接克隆需要和原始虚拟机共享同一虚拟磁盘文件,不能脱离原始虚拟机独立运行。但采用共享磁盘文件却大大缩短了创建克隆虚拟机的时间,同时还节省了宝贵的物理磁盘空间。

+
+
    +
  • 完全克隆:模板:选择Windows 2012模板
  • +
+
    +
  • 链接克隆 +虚拟机:选择一个Windows 2012的模板; 使用规范:选择「内建」(按需求选择无、内建或自定义规范,规范有助于防止在部署相同设置的虚机时而产生冲突);模板中已启用WinRM:勾选该选项,表示模板中已经启用和配置WinRM,可以选择通过WinRM的方式安装监控代理和自动化代理
  • +
+
    +
  • 监控方式:
  • +
+
    +
  • 无监控:不安装监控代理,则平台的监控功能不可用

    +
  • +
  • WinRM安装监控代理:会通过WinRM的方式访问虚拟机并安装监控代理;设置监控端口,默认是9182

    +
  • +
  • 预安装监控代理:指模板中已经安装了监控代理

    +
  • +
  • 云平台监控:从vCenter上直接读取虚机的监控数据,不需要安装监控代理

    +
  • +
+
    +
  • 安装自动化代理:
  • +
+
    +
  • 不安装:若不安装自动化代理,则平台的一些自动化功能将无法使用,例如蓝图带应用部署或添加磁盘,某些虚拟机的操作如重置密码,执行脚本等

    +
  • +
  • WinRM安装:选择WinRM安装,会通过WinRM的方式访问虚拟机并安装自动化代理

    +
  • +
  • 预安装:是指模板中已经安装了自动化代理

    +
  • +
+
    +
  • Windows用户名:输入需要设置的Windows管理员用户名

    +
  • +
  • Windows密码:输入需要设置的Windows管理员密码

    +
  • +
  • 点击「提交」,提示虚拟机模板已创建。点击「保存」,提示虚拟机模板已更新

    +
  • +
+

6.6. 添加一个OpenStack虚拟机模板

+
    +
  1. 点击「添加」,输入虚拟机模板名称:Windows 2012 R2 on OpenStack,选择2.3.2节配置的OpenStack云平台并做如下配置:

    +
      +
    • 启动源类型:选择从镜像启动、从快照启动、从云硬盘启动或从云硬盘快照启动
    • +
    +
  2. +
+
    +
  1. 从镜像启动:选择镜像名称(选择Windows +2012的镜像)和快照模式(不使用快照、申请时候选择、总是使用最新)

    +
  2. +
  3. 从快照启动:选择快照名称(选择Windows 2012的快照)

    +
  4. +
  5. 从云硬盘启动:选择镜像名称(选择Windows +2012的镜像)和快照模式(不使用快照、申请时候选择、总是使用最新)

    +
  6. +
  7. 从云硬盘快照启动:选择云硬盘快照名称(选择Windows 2012的快照)

    +
  8. +
+
    +
  • 安装监控和自动化代理的方式与vSphere的Windows模板相同

    +
  • +
  • Windows用户名: 输入需要设置的Windows管理员用户名

    +
  • +
  • 验证类型:密钥对、密码两种类型,选择密码

    +
      +
    • Windows密码:设置用户名对应的密码
    • +
    +
  • +
+
    +
  1. 点击「提交」,提示虚拟机模板已创建。点击「保存」,提示虚拟机模板已更新
  2. +
+

7. 定义蓝图

+

软件架构师可以通过蓝图管理界面以可视化的方式设计虚拟机或应用蓝图。蓝图是对应用的抽象,包含应用的拓扑,工作流以及策略三部分。

+

通过拖拽式可视化的蓝图建模,软件架构师可以非常高效对复杂多节点应用建模。

+

普通用户可以在其基础上,通过服务目录申请服务,完成一键申请,快速多次部署。

+

系统默认内置了蓝图,包括vSphere Linux,vSphere +Windows等,可直接使用,进入下一节进行服务配置和发布。

+
+

「Note」如需创建新的蓝图,请参考服务建模中的详细步骤。

+
+

8. 配置并发布服务

+

在SmartCMP云管理平台的服务配置界面里可以创建、配置和发布服务。这里将系统默认配置的vSphere +Linux蓝图(1个Server+1个Network)与底层资源池相关联,配置模板等部署所需的必要参数。

+
+

「Note」请使用业务组管理员或基础设施管理员角色登录SmartCMP平台。

+
+

8.1. 添加vSphere Linux单节点服务

+
    +
  1. 在左边导航栏选择「服务建模」-「服务配置」,点击「添加」:输入服务名称及服务描述(选填),选择系统默认的vSphere +Linux蓝图,选择系统默认的Default业务组或全部业务组,点击「提交」

    +
  2. +
  3. 服务配置项创建成功后进入编辑页面,「概况」页面全都选择默认值(可根据需求修改配置)

    +
  4. +
+
+

「Note」配置服务时,很多选项可以勾选「允许修改」和「仅审批时可修改」。这里存在两种情况:如果勾选一项「允许修改」,则用户在请求服务时,可修改参数,在服务审批阶段也可修改参数;如果勾选两项「允许修改」和「仅审批时可修改」,用户在服务请求中,不可修改参数,只在服务审批阶段允许修改参数;

+
+

进入「组件配置」页面,选择「Server」,进入server节点详细设置页面

+

「基本信息」:保留默认值(可根据需求修改云主机数量)

+
    +
  • 计算资源

    +

    OS主机名(Hostname):继承业务组命名规则 +(不勾选「允许改变」和「仅审批时可修改」)

    +

    云主机名称:继承业务组命名规则 +(不勾选「允许改变」和「仅审批时可修改」)

    +

    注释:选填(不勾选「允许改变」和「仅审批时可修改」)

    +
  • +
  • 资源池配置

    +

    资源池选择策略:默认自动选择

    +
  • +
  • 模板设置

    +
  • +
+

选择上节配置的vSphere虚拟机模板(Centos 7 --- Linux CentOS 7 on + vSphere)

+
    +
  • 计算规格配置

    +

    计算规格模式:自定义

    +

    vCPU数量:2(不勾选「允许改变」和「仅审批时可修改」)

    +

    内存(GB):8(不勾选「允许改变」和「仅审批时可修改」)

    +
  • +
  • 系统盘配置

    +

    置备模式:虚拟机模板中完全克隆时可选

    +

    文件夹:选择一个文件夹,虚机会部署在选中的vCenter文件夹里(资源池中配置)

    +

    虚拟机存储策略:默认数据存储默认值,(不勾选「允许改变」和「仅审批时可修改」) +存储:虚机会部署在选中的存储里。若不选,则部署在资源池定义的存储里

    +
  • +
+

允许用户添加新磁盘时选择置备模式和存储:不勾选

+
    +
  • 「网络」

    +

    配置IP分配方式。点击配置网络下的「IP分配方式」,选择「IP池」(根据资源池中的「网络资源」配置提供可选范围,若资源池中仅配置IP池的分配方式,则服务配置默认且仅有IP池的分配方式)

    +

    「用户」:保持默认

    +

    「磁盘」:保持默认

    +

    「关系」:保持默认

    +

    「操作许可」:保持默认

    +

    点击「保存」,返回组件配置页面。选择「Network」进行编辑

    +

    进入Network「属性」页面,选择所需网络标签(根据资源池中「网络资源」配置的网络标签可选项进行选择),勾选「管理网络」,点击「保存」,返回组件配置页面

    +

    点击「保存并发布」,新的服务变成已发布状态

    +
  • +
+
+

「Note」发布成功后,使用业务组成员角色登录SmartCMP平台,在「服务目录」中申请虚拟机。

+
+

8.2. 添加OpenStack Linux 单节点服务

+
    +
  1. 在左边导航栏选择「服务建模」-「服务配置」,点击「添加」:输入服务名称及服务描述(选填),选择系统默认的OpenStack +Linux蓝图,选择系统默认的Default业务组或全部业务组,点击「提交」

    +
  2. +
  3. 服务配置项创建成功后进入编辑页面,「概况」页面全都选择默认值(可根据需求修改配置)

    +
  4. +
+
+

「Note」配置服务时,很多选项可以勾选「允许修改」和「仅审批时可修改」。这里存在两种情况:如果勾选一项「允许修改」,则用户在请求服务时,可以进行修改参数,在服务审批阶段也可以进行修改参数;如果勾选两项项「允许修改」和「仅审批时可修改」,则用户在请求服务时,不可以进行修改参数,只在服务审批阶段允许进行修改参数;

+
+

进入「组件配置」页面,选择「Server」,配置云服务器,进入节点详细设置页面

+
    +
  • 「概况」
  • +
+

保留默认值(可根据需求修改云主机数量)

+
    +
  • 「云资源属性」
  • +
+
    +
  • 基本信息

    +

    OS主机名(Hostname):继承业务组命名规则 +(不勾选「允许改变」和「仅审批时可修改」)

    +
  • +
+

云主机名称:继承业务组命名规则 +(不勾选「允许改变」和「仅审批时可修改」)

+

主机集合:不选择

+
    +
  • 资源池配置

    +

    资源池选择策略:默认自动选择

    +
  • +
  • 虚拟机模板

    +

    选择上节配置的虚拟机模板Linux CentOS 7 on OpenStack

    +
  • +
  • 「网络资源」

    +

    默认不配置DNS

    +

    「磁盘」:保持默认

    +

    「安全策略组」:保持默认

    +

    「关系」:保持默认

    +

    「操作许可」:保持默认

    +

    点击「保存」,返回组件配置页面。选择「Network」进行编辑

    +

    进入Network「属性」页面,选择所需网络和子网,不勾选「允许改变」和「仅审批时可修改」,IP分配方式根据所选网络和子网在资源池中的配置决定。不勾选「管理网络」,点击「保存」,返回组件配置页面

    +

    点击「保存并发布」,新的服务变成已发布状态

    +
  • +
+

9. 申请服务

+

服务发布成功后,可在服务目录界面查看并申请已发布的服务。

+
    +
  1. 点击左侧导航栏的一级菜单「服务目录」,选择上节配置的vSphere单节点服务或OpenStack单节点服务,点击进入服务申请界面

    +
  2. +
  3. 在该页面查看该服务的详情信息,如:组织信息,部署信息,申请参数等

    +
  4. +
  5. 填写/修改相关信息,若无直接进入下一步

    +
  6. +
  7. 点击申请,根据该业务组的流程控制(审批模板)获得批准后申请成功。Default业务组无审批流程,申请后直接进入部署

    +
  8. +
+

10. 自助运维

+

服务申请后,可在「我的部署」-「服务部署」查看该部署的进行状态。

+
    +
  • 若有审批流程,可在「服务请求」-「待审批」进入待审批页面,可查看当前审批流程走向

    +
  • +
  • 若无审批流程,可点击服务部署名称进入部署详情页面,可查看该部署的基本信息,服务部署拓扑,以及操作历史

    +
  • +
+
    +
  • 可在操作历史中查看当前部署进程。在「我的部署」-「服务部署」-「操作历史」标签页中,选中操作,可在下方查看当前部署进程。

    +
  • +
  • 在基本信息页面:查看服务名称、蓝图、部署时间、到期时间、保留时间、业务组、项目、所有者等信息

    +
  • +
  • 在页面上方可进行服务部署的运维操作。

    +
  • +
+

10.1. 查看服务部署详情和自助运维

+

服务成功部署后,可在「服务部署」页面查看该服务部署的详细信息以及云主机、应用组件的监控信息。一个服务部署包含一台或多台云主机。

+
    +
  1. 在左侧菜单选择「我的部署」-「服务部署」后,您将会看到服务部署列表,可在「高级搜索」中根据业务组、阶段(运行、操作进行中、关闭、操作失败、已取消、部署审批中 +)、状态(正常、异常)、所有者、项目进行筛选,也可直接进行搜索操作

    +
  2. +
  3. 在服务部署列表中,您可以选中一个或者多个服务部署快速进行一些运维操作,包括「停止服务部署」「安装软件」「复制服务部署」「延长过期时间」「卸除服务部署」「删除管理信息」「更改所有者」「更改项目」「更改业务组」和「伸缩」(示例为vSphere服务部署,不同云平台的运维操作有差异)

    +
    +

    「Note」只有在业务组设置或服务配置时配置虚拟机的操作许可,虚拟机在部署生成后才能看到允许的操作列表。Default 业务组默认全部操作启用给业务组管理员,且无审批流程。

    +
    +

    点击服务部署名称,可查看该服务部署的详细信息。服务部署详情信息界面包括「基本信息」「服务部署拓扑」「操作历史」和「监控」(对云主机和应用组件的监控)

    +
      +
    • 「基本信息」:包括服务部署的名称、业务组、项目、蓝图、资源池、云平台,以及费用、状态、时间等相关信息。还包括该服务部署的输入参数列表以及输出结果信息。服务部署失败后,某些场景可线下修复,修复成功后支持更改服务部署状态,将"操作失败"更改为"运行"
    • +
    +

    +「服务部署拓扑」:包括服务部署的蓝图、详情和流程信息。鼠标悬停至服务拓扑图中,将显示该节点的关键信息,如Server节点将显示云主机名称、客户操作系统、IP地址、内存、磁盘总空间、vCPU数量、CPU使用率、内存使用率等

    +

    +「操作历史」:显示该服务部署的操作历史记录

    +

    +「监控」:显示对该部署中的云主机和组件应用的监控信息

    +
  4. +
+

10.2. 查看云主机详情和自助运维

+

同时,可在「云主机」中查看云主机状态和详情来对其进行管理和操作,操作的启用和是否需要审批需要在业务组级别或者服务配置级别进行设置。

+
    +
  1. 在左侧菜单选择「我的部署」-「云主机」,您将会看到云主机的列表,在列表右上角「高级搜索」中可以根据业务组、状态(已启动、遗失、已停止)、所有者、项目、标签进行筛选。点击「展示列」,可以勾选或者不选某些列进行展示

    +
  2. +
  3. 在云主机列表中,您可以选中一个或者多个云主机快速进行一些操作,包括「启动」「重新启动」「挂起」「停止」「执行脚本」「设置标签」「启用/切换监控」「更新监控代理」「更新自动化代理」等

    +
  4. +
  5. 您也可以单击某一个云主机进入其详情界面进行管理和操作,包括「基本信息」「操作历史」「快照信息」「监控」「应用列表」标签页和顶部的运维操作列表

    +
  6. +
+
+

「Note」只有当该云主机安装监控和带应用时,部署成功后,在云主机详情页才能看见监控和应用标签页

+
+

「基本信息」包括:

+
    +
  • 虚拟机及其相关主机的基本信息,如:名称、操作系统、已装软件、vCPU、内存、状态、SSH端口、自动化代理、监控方式、监控端口、租用/保留到期时间等

    +
  • +
  • 关系:服务器信息、资源池、数据存储、虚拟机存储策略以及网络标签等

    +
  • +
  • 物理主机信息

    +
  • +
  • 用户和组

    +
  • +
  • 组织信息:服务部署名称、服务名称、业务组、租户、项目等

    +
  • +
  • 运行状态

    +
  • +
  • IP地址

    +
  • +
  • 键值标签

    +
  • +
+
+

「Note」更多主机相关信息,将根据不同云平台、不同服务配置项决定

+
+

「操作历史」包括了该虚拟机进行过的操作历史记录

+

「快照信息」显示当前的快照信息(快照名称、创建时间等),可对快照进行「刷新」「添加」「恢复」和「删除」操作

+

「监控」包括了该虚拟机CPU、内存、磁盘、网络的监控数据(可以按照需要调整时间跨度或者平均时间来查看历史监控数据)

+
+

「Note」只有在虚拟机模板中配置安装监控的虚拟机在部署生成后,才可以在监控中看到数据。

+
+

「应用列表」显示当前虚机已安装的应用列表(若该虚机未安装应用,则不显示应用列表菜单)

+

「运维操作列表」包括了该虚拟机可执行的操作列表,具体操作介绍会在下文展开

+
+

「Note」只有在业务组设置或服务配置时配置虚拟机的操作许可,虚拟机在部署生成后才能看到允许的操作列表。Default业务组默认业务组管理员启用全部操作,且无审批流程;业务组成员已启用常见操作,且无审批流程。

+
+

10.3. 查看云资源详情

+

「云资源」中可查看相关云资源状态和详情来对其进行管理和操作。

+

在左侧菜单选择「我的部署」-「云资源」,您将会看到列表左侧有以下几个类别:存储、容器服务、网络资源、PaaS资源、软件资源。

+
    +
  • 「存储资源」:云硬盘、对象存储

    +
  • +
  • 「容器服务」:部署、守护进程集、有状态副本集、容器、服务、路由、存储卷、配置字典、保密字典

    +
  • +
  • 「网络资源」:负载均衡器、负载均衡监听器、负载均衡成员池、负载均衡SNAT池、浮动IP、防火墙、安全组、域名系统DNS

    +
  • +
  • 「PaaS资源」:关系型数据库、Web应用

    +
  • +
  • 「软件资源」:软件

    +
  • +
+

11. 工单服务

+

SmartCMP支持租户和系统管理员定义和发布标准的工单服务,支持用户自服务申请与跟踪。接下来的章节将介绍如何建立自己第一个工单,发布并申请服务。

+

11.1. 定义服务团队

+

服务团队是工单服务管理过程中处理工单任务的服务人员集合,支持租户管理员自定义关联用户。

+

创建服务团队的简要步骤:

+
    +
  1. 点击左侧导航栏「组织架构」-「服务团队」,点击服务团队名称,进入编辑页面

    +
  2. +
  3. 「基本信息」页面,键入名称和描述

    +
  4. +
  5. 「用户」页面,关联和取消关联用户

    +
  6. +
  7. 点击「保存」,服务团队创建成功,与用户关联成功

    +
  8. +
+
+

「Note」如需修改该服务团队的设置,或创建新的服务团队,请参考组织架构中的详细步骤。

+
+

11.2. 配置与发布服务

+

配置服务的简要步骤:

+
    +
  1. 在左边导航栏选择「服务建模」-「服务配置」,点击「添加」

    +
  2. +
  3. 填写服务名称、服务描述(选填)、选择业务组,服务类型为手工工单服务时,增选一项服务流程,点击「提交」,进入服务配置「概况」页面

    +
  4. +
  5. 在「基本信息」标签页填入下列信息:名称,描述,logo图像,服务组,顺序,流程配置页面指定处理人来处理工单任务,配置处理人的角色类型和具体的处理人

    +
  6. +
  7. 点击保存按钮,服务将被保存不发布,点击保存并发布按钮,服务将被发布到服务目录页面。

    +
  8. +
+
+

「Note」请使用租户管理员角色登录SmartCMP平台。如需修改配置与发布的设置,或创建新的配置与发布,请参考创建和配置服务工单中的详细步骤。如需修改服务流程的配置,或创建新的服务流程配置,请参考服务流程管理

+
+

11.3. 工单处理和跟踪

+

工单处理和跟踪的简要步骤:

+
    +
  1. 在左侧导航栏点击「服务请求」-「待处理」,其中显示处理请求的基本信息:请求编号,请求类型,标题,业务组,项目,申请状态,申请时间,完成时间。

    +
  2. +
  3. 选择一个待处理的服务请求,点击「请求编号」链接,跳转到请求详情页面,查看该请求的基本信息,工单信息,处理记录,流程步骤,服务处理信息等。

    +
  4. +
  5. 处理方式定义为两种,直接处理和转派处理。选择直接处理方式,点击直接处理,填上处理结果描述,即可点击提交处理。

    +
  6. +
  7. 点击「服务请求」-「所有请求」,即可查看所有服务请求的详细信息。

    +
  8. +
+
+

「Note」具体的工单处理和跟踪,请您参考处理和跟踪工单

+
+

12. 快速配置云资源蓝图服务

+

本节简述配置以下几个服务所需的步骤以及配置过程的链接,帮助您快速定位内容。

+

vSphere 单节点虚拟机服务

+

VMware NSX 服务

+

vSphere MySQL带监控服务

+

OpenStack 单节点服务

+

OpenStack Firewall 服务

+

OpenStack LoadBalancer withSecurityGroup服务

+

OpenStack FloatingIP服务

+

Kubernetes服务

+

阿里云服务

+

Azure服务

+

AWS服务

+

青云服务

+

Hyper-V服务

+

12.1. vSphere单节点虚拟机服务

+

i. 添加vSphere云平台:参照添加vSphere云平台

+

ii. 添加vSphere 资源池:参照 添加vSphere资源池

+

iii. 添加业务组与资源池的关联:参照业务组添加资源池

+

iv. 配置虚拟机模板:参照添加一个vSphere虚拟机模板

+

v. 定义计算规格:参照添加vSphere计算规格

+

vi. 创建vSphere单节点蓝图:参照创建vSphere单节点蓝图

+

vii. 配置vSphere单节点服务:参照 配置vSphere单节点服务

+

viii. 服务申请:参照服务目录申请

+

ix. 服务部署运维操作:参照服务部署运维操作

+

x. 云主机相关运维操作:参照云主机运维操作

+

12.2. VMwareNSX服务

+

i. 添加VMware NSX平台:参照 添加VMware NSX平台

+

ii. 添加vSphere云平台:参照 添加vSphere云平台

+

iii. 添加vSphere with NSX资源池:参照 添加vSphere with NSX资源池

+

iv. 配置虚拟机模板:参照添加一个vSphere虚拟机模板

+

v. 定义计算规格:参照添加vSphere计算规格

+

vi. 添加业务组与资源池的关联:参照业务组添加资源池

+

vii. 创建VMware NSX蓝图:参照 创建VMware NSX蓝图

+

viii. 配置VMware NSX服务:参照 配置VMware NSX服务

+

ix. 服务申请:参照 服务目录申请

+

x. 服务部署运维操作:参照服务部署运维操作

+

xi. 云主机相关运维操作:参照云主机运维操作

+

12.3. vSphereMySQL带监控服务

+

i. 添加vSphere云平台:参照 添加vSphere云平台

+

ii. 添加vSphere 资源池:参照 添加vSphere资源池

+

iii. 添加业务组与资源池的关联:参照业务组添加资源池

+

iv. 配置虚拟机模板:参照添加vSphere虚拟机模板

+

v. 定义计算规格:参照添加vSphere计算规格

+

vi. 创建vSphere MySQL带监控蓝图:参照 创建vSphereMySQL带监控蓝图

+

vii. 配置vSphereMySQL带监控服务:参照配置vSphereMySQL带监控服务

+

viii. 服务申请:参照 服务目录申请

+

ix. 服务部署运维操作:参照 服务部署运维操作

+

x. 云主机相关运维操作:参照云主机运维操作

+

12.4. OpenStack单节点服务

+

i. 添加OpenStack云平台:参照 添加OpenStack云平台

+

ii. 添加OpenStack 资源池:参照 添加OpenStack资源池

+

iii. 添加业务组与资源池的关联:参照业务组添加资源池

+

iv. 配置虚拟机模板:参照添加一个OpenStack虚拟机模板

+

v. 定义计算规格:参照添加OpenStack计算规格

+

vi. 创建OpenStack单节点蓝图:参照创建OpenStack单节点蓝图

+

vii. 配置OpenStack单节点服务:参照配置OpenStack单节点服务

+

viii. 服务申请:参照 服务目录申请

+

ix. 服务部署运维操作:参照服务部署运维操作

+

x. 云主机相关运维操作:参照云主机运维操作

+

12.5. OpenStackFirewall服务

+

i. 添加OpenStack云平台:参照 添加OpenStack云平台

+

ii. 添加OpenStack 资源池:参照 添加OpenStack资源池

+

iii. 添加业务组与资源池的关联:参照业务组添加资源池

+

xi. 配置虚拟机模板:参照添加一个OpenStack虚拟机模板

+

xii. 定义计算规格:参照添加OpenStack计算规格

+

iv. 创建OpenStack Firewall蓝图:参照 创建OpenStackFirewall蓝图

+

v. 配置OpenStack Firewall服务:参照 配置OpenStackFirewall服务

+

vi. 服务申请:参照 服务目录申请

+

vii. 服务部署运维操作:参照服务部署运维操作

+

12.6. OpenStackLoadBalancerWithSecurityGroup服务

+

i. 添加OpenStack云平台:参照添加OpenStack云平台

+

ii. 添加OpenStack 资源池:参照 添加OpenStack资源池

+

iii. 添加业务组与资源池的关联:参照业务组添加资源池

+

iv. 配置虚拟机模板:参照添加一个OpenStack虚拟机模板

+

xiii. 定义计算规格:参照添加OpenStack计算规格

+

v. 创建OpenStack LoadBalancer with SecuriryGruop蓝图:参照创建OpenStack LoadBalancer SecurityGroup蓝图

+

vi. 配置OpenStack LoadBalancer with SecuriryGruop服务:参照配置OpenStack LoadBalancer with SecuriryGruop服务

+

vii. 服务申请:参照 服务目录申请

+

viii. 服务部署运维操作:参照服务部署运维操作

+

ix. 云主机相关运维操作:参照云主机运维操作

+

12.7. OpenStackFloatingIP服务

+

i. 添加OpenStack云平台:参照添加OpenStack云平台

+

ii. 添加OpenStack 资源池:参照 添加OpenStack资源池

+

iii. 添加业务组与资源池的关联:参照业务组添加资源池

+

iv. 配置虚拟机模板:参照添加一个OpenStack虚拟机模板

+

v. 定义计算规格:参照添加OpenStack计算规格

+

vi. 创建OpenStack FloatingIP蓝图:参照 创建OpenStackFloatingIP蓝图

+

vii. 配置OpenStack Firewall服务:参照 配置OpenStackFloatingIP服务

+

viii. 服务申请:参照 服务目录申请

+

ix. 服务部署运维操作:参照服务部署运维操作

+

12.8. OpenStackDNS服务

+

i. 添加OpenStack云平台:参照 添加OpenStack云平台

+

ii. 添加OpenStack 资源池:参照 添加OpenStack资源池

+

iii. 添加业务组与资源池的关联:参照业务组添加资源池

+

iv. 配置虚拟机模板:参照添加一个OpenStack虚拟机模板

+

v. 定义计算规格:参照添加OpenStack计算规格

+

vi. 创建OpenStack DNS蓝图:参照创建OpenStackDNS蓝图

+

vii. 配置OpenStack DNS服务:参照 配置OpenStack DNS服务

+

viii. 服务申请:参照 服务目录申请

+

ix. 服务部署运维操作:参照服务部署运维操作

+

12.9. Kubernetes服务

+

i. 添加Kubernetes云平台:参照 添加Kubernetes云平台

+

ii. 添加Kubernetes 资源池:参照添加Kubernetes资源池

+

iii. 添加业务组与资源池的关联:参照业务组添加资源池

+

iv. 创建Kubernetes蓝图:参照 创建Kubernetes蓝图

+

v. 配置Kubernetes服务:参照 配置Kubernetes服务

+

vi. 服务申请:参照 服务目录申请

+

vii. 服务部署运维操作:参照服务部署运维操作

+

12.10. 阿里云服务

+

i. 添加阿里云云平台:参照添加阿里云云平台

+

ii. 添加阿里云资源池:参照添加阿里云资源池

+

iii. 添加业务组与资源池的关联:参照业务组添加资源池

+

iv. 配置虚拟机模板(阿里云虚拟机模板配置与Azure的配置步骤相似):参照添加一个Azure虚拟机模板

+

v. 定义计算规格(阿里云计算规格以及云平台规格的定义与Azure相似):参照添加Azure计算规格

+

vi. 创建阿里云蓝图:参照创建阿里云蓝图

+

vii. 配置阿里云服务:参照配置阿里云服务

+

viii. 服务申请:参照服务目录申请

+

ix. 服务部署运维操作:参照服务部署运维操作

+

x. 云主机相关运维操作:参照云主机运维操作

+

12.11. Azure服务

+

i. 添加Azure云平台:参照添加Azure云平台

+

ii. 添加Azure资源池:参照添加Azure资源池

+

iii. 添加业务组与资源池的关联:参照业务组添加资源池

+

iv. 配置虚拟机模板:参照添加一个Azure虚拟机模板

+

v. 定义计算规格:参照添加Azure计算规格

+

vi. 创建Azure蓝图:参照创建Azure蓝图

+

vii. 配置Azure服务:参照配置Azure服务

+

viii. 服务申请:参照服务目录申请

+

ix. 服务部署运维操作:参照服务部署运维操作

+

x. 云主机相关运维操作:参照云主机运维操作

+

12.12. AWS服务

+

i. 添加AWS云平台:参照添加AWS云平台

+

ii. 添加AWS资源池:参照添加AWS资源池

+

iii. 添加业务组与资源池的关联:参照业务组添加资源池

+

xiv. 配置虚拟机模板(AWS虚拟机模板配置与Azure的配置步骤相似):参照添加一个Azure虚拟机模板

+

xv. 定义计算规格(AWS计算规格以及云平台规格的定义与Azure相似):参照添加Azure计算规格

+

iv. 创建AWS蓝图:参照创建AWS蓝图

+

v. 配置AWS服务:参照配置AWS服务

+

vi. 服务申请:参照服务目录申请

+

vii. 服务部署运维操作:参照服务部署运维操作

+

viii. 云主机相关运维操作:参照云主机运维操作

+

12.13. 青云服务

+

i. 添加青云云平台:参照添加青云云平台

+

ii. 添加青云资源池:参照添加青云资源池

+

iii. 添加业务组与资源池的关联:参照业务组添加资源池

+

xvi. 配置虚拟机模板(青云虚拟机模板配置与Azure的配置步骤相似):参照添加一个Azure虚拟机模板

+

xvii. 定义计算规格(青云计算规格以及云平台规格的定义与Azure相似):参照添加Azure计算规格

+

iv. 创建青云蓝图:参照创建青云蓝图

+

v. 配置青云服务:参照配置青云服务

+

vi. 服务申请:参照服务目录申请

+

vii. 服务部署运维操作:参照服务部署运维操作

+

viii. 云主机相关运维操作:参照云主机运维操作

+

12.14. Hyper-V服务

+

i. 添加Hyper-V云平台:参照添加Hyper-V云平台

+

ii. 添加Hyper-V资源池:参照添加Hyper-V资源池

+

iii. 添加业务组与资源池的关联:参照业务组添加资源池

+

iv. 配置虚拟机模板:参照添加Hyper-V虚拟机模板

+

v. 定义计算规格(Hyper-V计算规格定义与vSphere相似):参照添加vSphere计算规格

+

vi. 创建Hyper-V 蓝图:参照创建Hyper-V蓝图

+

vii. 配置Hyper-V服务:参照配置Hyper-V服务

+

viii. 服务申请:参照服务目录申请

+

ix. 服务部署运维操作:参照服务部署运维操作

+

x. 云主机相关运维操作:参照云主机运维操作

+

12.15. F5服务

+

平台支持F5的管理和建模,主要功能点包括:

+
    +
  1. 新建和设计蓝图部署虚拟机和应用软件时,可以协同F5的Virtual +Server,Pool以及SNAT Pool网络配置同时自动化部署下发服务。

    +
  2. +
  3. 支持为已经部署好的虚拟机添加F5负载均衡

    +
  4. +
  5. 服务部署完成之后,支持对Virtual Server和SNAT Pool的配置进行运维修改
  6. +
+

您可以通过以下步骤部署F5服务:

+

i. 添加F5 BIG-IP云平台:参照添加F5 BIG-IP云平台

+

ii. 添加IP池:参照添加IP池

+

iii. 创建F5 BIG-IP资源池:参照创建F5 BIG-IP资源池

+

iv. 创建F5 BIG-IP资源池与业务组的关联:参照业务组添加资源池

+

v. 创建F5蓝图:参照创建F5与OpenStack组合蓝图

+

vi. 配置F5服务:参照配置F5与OpenStack组合蓝图

+

vii. F5服务部署运维操作:参照 服务部署运维操作

+ + +
+ +
+
+
+ +

results matching ""

+
    + +
    +
    + +

    No results matching ""

    + +
    +
    +
    + +
    +
    + +
    + + + + + + + + + + + + + + +
    + + +
    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git "a/AdminDoc/02\351\246\226\351\241\265/README.md" "b/AdminDoc/02\351\246\226\351\241\265/README.md" new file mode 100644 index 0000000..6e30a50 --- /dev/null +++ "b/AdminDoc/02\351\246\226\351\241\265/README.md" @@ -0,0 +1,176 @@ + + + +**首页** + + +您登录后,左侧是各级菜单,代表不同的功能模块列表。点击最上面的\<箭头可以把左侧菜单收起,收起后点击箭头,可以展开菜单。 + +右侧是功能具体展示和操作区域。右侧区域右上角为快速查找信息功能区,可以直接点击按钮查看相应信息 +,从左至右分别是「欢迎页」「通知」「操作历史」「关于」「帮助中心」「账户信息」。 +# 欢迎页 + + +点击右上角的「欢迎」,可查看欢迎页详细信息,包括: + +我的账户:头像、显示名、角色、所属业务组、上次登录时间 + +待处理任务:待审批的申请数量和待处理的工单数量,点击链接您可进入「待审批」、「待处理」 + + 告警信息(警告、危险) + + 服务信息:已申请的云资源服务: + +- 审批中的服务数量点击链接您可进入「我的部署」-「服务部署」查看处于审批中状态的部署; + +- 已部署的服务数量点击链接您可进入「我的部署」-「服务部署」查看处于运行、操作进行中、关闭、已失败、已取消状态的部署; + +- 即将到期的服务数量点击链接您可进入「我的部署」-「服务部署」查看两周内即将到期的部署; + +- 即将卸除的服务数量,点击链接您可进入「我的部署」-「服务部署」查看两周内即将被卸除的部署; + +工单服务: + +- 审批中数量(即等待审批的手工工单服务请求的数量),点击链接您可进入「服务请求」-「我的请求」,请求类型为手工工单服务,申请状态为审批中的列表; + +- 处理中的服务数量(即正在被处理的手工工单服务请求的数量),点击链接您可进入「服务请求」-「我的请求」,请求类型为手工工单服务,申请状态为处理中的列表; + +- 申请服务:点击链接您可进入「服务目录」申请您需要的服务或资源 + +资源信息: + +- 虚拟机数量(即已部署的云主机实例数量),点击链接您可进入「我的部署」-「云主机」页面,查看云主机详情; + +- 应用数量(即云资源的软件资源数量),点击链接您可进入「我的部署」-「云资源」-「软件资源」-「软件」查看软件详细信息 + +- 其它资源数量(即除去云主机和应用的云资源总数),点击链接您可进入「我的部署」-「云资源」 + +- CPU总数、内存总量、存储总量,点击链接您可进入「仪表盘」-「云资源使用情况」查看CPU、内存、存储的具体使用情况 + + + +我的请求:显示最新的五条请求信息,包括请求编号、请求时间,点击请求编号跳转到服务请求详情页面;点击更多进入「我的请求」服务请求列表 + +告警信息:针对云主机和应用的告警,以及触发危险和警告两个级别的告警总次数,警告次数占比总次数,危险次数占比总次数,根据百分比形成饼图),点击链接您可进入「监控告警」-「已触发警报」查看告警信息详情 + +# 导航栏 + + +默认租户管理员拥有查看所有功能的权限。权限不同左侧导航栏显示功能也不同,默认租户管理员可查看所有的菜单,其余角色根据分配的权限不同,可查看区域也不同。 +SmartCMP混合云应用管理平台支持多种角色的权限设置,并且为角色分配相关功能权限,系统已有基础角色包括: + +- 最高权限:系统管理员 + +- 租户级别:租户管理员、软件架构师、基础设施管理员和租户成员 + +- 业务组级别:业务组管理员和业务组成员 + +- 项目级别:项目管理员和项目成员 + +- 支持自定义角色 +下文为你介绍管理员导航栏详情: + + +## 服务目录 +最终用户可以通过服务目录管理以自服务的方式请求该用户可以使用的服务 + +## 服务请求 ++ 我的请求:用户申请的服务请求 ++ 待审批:待审批的服务请求 ++ 已审批:已经审批完成的服务请求 ++ 待处理:待处理的服务请求 ++ 已处理:处理完成的服务请求 ++ 所有请求:默认租户管理员可以查看所有的服务请求 + +## 我的部署 ++ 服务部署:最终用户请求目录之后,系统会生成对应蓝图的云主机,即将蓝图对应的应用部署出来。最终用户可以在服务部署中进行各种操作 ++ 云主机:管理通过服务目录申请,向导式申请部署的云主机,或导入进来的云主机。管理员可监控云主机状态,相关物理主机的信息,进行运维的运维操作直接管理应用或云主机 ++ 云资源:展现用户申请成功的各种资源,如存储资源、容器服务、网络资源、PaaS资源、软件资源 ++ 资源状态图:显示云主机和容器的健康状态 ++ 回收站:所有的服务手工卸除或者到期后自动卸除后,将放置到回收站中进行保留。支持从回收站中进行还原,手工删除(删除后所有资源从云平台中真正删除),或为回收站设置保留时间,到期自动删除(支持设置回收站保留时间为0天,即服务不在回收站中保留) + + +## 仪表盘 +管理员可在「仪表盘配置」中定义仪表盘,定义好的仪表盘将根据定义的权限分配给不同的角色查看。 ++ 系统默认云资源使用情况仪表盘可查看云资源分布、云主机总览、云主机操作系统分布、有告警的云主机、正在进行的操作、即将到期的服务部署、即将卸载的服务部署、CPU/内存/磁盘使用率最高的云主机-Top10、CPU/内存/磁盘使用率最低的云主机-Top10 + +支持自定义安装仪表盘,具体的操作步骤如下: +1. http访问路径: http///smartcmp-dashboard, 进入管理页面管理配置仪表盘, 用户名sysadmin@mail.com, 密码P@ssw0rd +2.定义仪表盘中各个Widget字段,定义仪表盘中各个Widget的样式,具体配置步骤请参考 :metabase 的官方文档, +https://github.com/metabase/metabase/releases + +## 监控告警 +订阅云主机的报警,并定义对报警的响应行为: ++ 告警策略:定义所选的对象类型(如云主机/应用/容器等)触发警报的条件 ++ 告警:定义所选告警策略应用到的范围以及触发的通知和操作 ++ 已触发警报:显示已触发警报列表 ++ 宿主机监控:查看当前系统中,每个平台中的主机运行状况 ++ 云平台告警:订阅、编辑、删除、刷新云平台的告警信息 + +## 报表与分析 +提供各类资源使用的分析报表 ++ 数据中心概览:数据中心地理分布图、各数据中心资源使用总览、大屏展示 ++ 资源申请趋势 ++ 业务组资源占用:在一段时间内,分析不同的业务组对不同类型资源的使用情况 ++ 报表:计费报表、云平台总体情况报表以及其他自定义报表 + + +## 基础设施 ++ 云平台管理:如云平台类型、名称、用户名及密码等 ++ 资源池管理:如vCPU、内存、虚拟机数量,网络等 ++ 虚拟机模板:对各种云平台的模板与镜像的统一管理 ++ 计算规格:以CPU、内存为衡量因素定义不同规格的计算资源 ++ IP地址管理:每个虚拟机,每个网卡所能使用的IP范围 ++ 密钥对:生成并管理虚机的所需密钥对 ++ 命名后缀:对命名规则中数字或字符后缀的管理 ++ 物理机管理:对物理主机进行管理 + +## 组织架构 ++ 业务组:管理员以业务组的形式对基础设施进行配额,以便基础设施管理员对基础设施进行划分 ++ 项目:管理员可以将业务组中的用户划分到不同的项目,实现虚拟机在项目成员之间的共享 ++ 用户:对用户的增、删、改、查等操作,为用户关联角色,关联业务组 ++ 角色:不同用户组的权限定义,也可自定义角色。预定义的角色包括:租户管理员、租户成员、软件架构师、基础设施管理员、业务组管理员、业务组成员、项目管理员、项目成员 ++ 服务团队:管理员自定义不同类型的服务团队,支持服务团队关联用户 + +## 服务建模 ++ 脚本库:自定义想要手工执行的脚本软件组件 ++ 软件组件:组件是构成蓝图的基本单元,组件包含两种类型(基础设施组件和软件组件) ++ 蓝图设计:软件架构师可以通过蓝图管理界面设计出基于TOSCA标准的应用蓝图。蓝图是对应用的抽象。蓝图包含应用的拓扑、工作流以及策略三部分 ++ 表单配置:在创建或配置服务(包括云资源部署服务和手工工单服务)时,可以选择系统内置的表单(包括IP池创建表单、项目创建表单),如果您需要修改或添加额外的字段信息供用户在申请时填写,可以通过表单设计器,自定义配置表单。 ++ 服务配置:IT管理员可以将蓝图发布成服务项,并且将服务项与组织架构、服务目录关联。此外通过服务项还可以实现与第三方系统集成(如审批流程、计费系统等) + ++ 流程配置:自定义每一步活动或任务执行的顺序与策略,通过流程设计器自定义流程模板,包括三种类型流程模板:云资源蓝图服务流程、手工工单服务流程、审批流程 ++ 服务分组:自定义服务类型 +## 容量管理 +订阅资源池配额和IP池的报警,并定义对报警的响应行为 ++ 资源告警:资源告警监控资源配额的使用情况,达到预设的条件会触发警报 ++ 已触发警报:定义警报已触发之后,需要进行的操作 +## 计量计费 ++ 费用分析:显示各业务组的费用占比,以时间为跨度的费用趋势,可根据时间、云平台、资源类型、业务组、项目和所有者进行筛选查看。 ++ 优化建议:展现了云资源的使用情况,以及费用情况,找出使用率较低的资源,并可以直接进行配置调整。 ++ 计费规则:为各资源规格(CPU,内存)和资源类别定义计费标准 ++ 账单同步:定时同步公有云账单数据 +## 资源治理 ++ 事件配置:用来定义事件应用到的范围以及触发的通知和操作 +## 系统管理 +系统配置:LADP、SMTP、SMS配置,资源申请配置 ++ 菜单配置:定义多种仪表盘或接入第三方系统,并设置不同的角色查看和自定义扩展菜单的位置。 ++ 报表配置:设置报表的启用/禁用状态以及所要赋予的角色 ++ 操作审计:记录当前租户下的所有的用户操作,可供查询 + + + +# 通知 + + +点击右上角的「通知」可查看当前未读消息列表,通知包括消息(如等待审批)、告警通知等,可标记列表中的通知为已读,将不再提示。点击列表中的某条通知将进入该通知详情页面。 + +点击列表下的「查看所有通知」,可进入所有通知列表。「高级搜索」可通过通知创建的起止时间进行快速搜索定位,也可普通查询搜索。可单个或批量删除通知。 + +# 操作历史 + + +点击右上角的「操作历史」该列表显示当前正在进行的操作,显示该操作的名称、服务名称,请求用户以及创建时间。可点击某条操作信息进入操作历史详情页面。也可点击「查看全部」进入操作历史列表界面。点击某条操作,列表下方显示该操作历史详情信息。可通过「高级搜索」根据业务组、请求用户、起止时间、状态进行快速筛选搜查,也可采用普通搜索。 + +# 帮助文档 +点击欢迎页右上角的「帮助中心」问号图标,可直接进入在线文档,您可以在线查阅产品基础概念、管理员手册和用户手册,了解SmartCMP基础概念和功能。 diff --git "a/AdminDoc/02\351\246\226\351\241\265/index.html" "b/AdminDoc/02\351\246\226\351\241\265/index.html" new file mode 100644 index 0000000..b866903 --- /dev/null +++ "b/AdminDoc/02\351\246\226\351\241\265/index.html" @@ -0,0 +1,1199 @@ + + + + + + + 首页 · 发行说明 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    +
    + + + + + + + + +
    + +
    + +
    + + + + + + + + +
    +
    + +
    +
    + +
    + +

    首页

    +

    您登录后,左侧是各级菜单,代表不同的功能模块列表。点击最上面的\<箭头可以把左侧菜单收起,收起后点击箭头,可以展开菜单。

    +

    右侧是功能具体展示和操作区域。右侧区域右上角为快速查找信息功能区,可以直接点击按钮查看相应信息 +,从左至右分别是「欢迎页」「通知」「操作历史」「关于」「帮助中心」「账户信息」。

    +

    1. 欢迎页

    +

    点击右上角的「欢迎」,可查看欢迎页详细信息,包括:

    +

    我的账户:头像、显示名、角色、所属业务组、上次登录时间

    +

    待处理任务:待审批的申请数量和待处理的工单数量,点击链接您可进入「待审批」、「待处理」

    +

    告警信息(警告、危险)

    +

    服务信息:已申请的云资源服务:

    +
      +
    • 审批中的服务数量点击链接您可进入「我的部署」-「服务部署」查看处于审批中状态的部署;

      +
    • +
    • 已部署的服务数量点击链接您可进入「我的部署」-「服务部署」查看处于运行、操作进行中、关闭、已失败、已取消状态的部署;

      +
    • +
    • 即将到期的服务数量点击链接您可进入「我的部署」-「服务部署」查看两周内即将到期的部署;

      +
    • +
    • 即将卸除的服务数量,点击链接您可进入「我的部署」-「服务部署」查看两周内即将被卸除的部署;

      +
    • +
    +

    工单服务:

    +
      +
    • 审批中数量(即等待审批的手工工单服务请求的数量),点击链接您可进入「服务请求」-「我的请求」,请求类型为手工工单服务,申请状态为审批中的列表;

      +
    • +
    • 处理中的服务数量(即正在被处理的手工工单服务请求的数量),点击链接您可进入「服务请求」-「我的请求」,请求类型为手工工单服务,申请状态为处理中的列表;

      +
    • +
    • 申请服务:点击链接您可进入「服务目录」申请您需要的服务或资源

      +
    • +
    +

    资源信息:

    +
      +
    • 虚拟机数量(即已部署的云主机实例数量),点击链接您可进入「我的部署」-「云主机」页面,查看云主机详情;

      +
    • +
    • 应用数量(即云资源的软件资源数量),点击链接您可进入「我的部署」-「云资源」-「软件资源」-「软件」查看软件详细信息

      +
    • +
    • 其它资源数量(即除去云主机和应用的云资源总数),点击链接您可进入「我的部署」-「云资源」

      +
    • +
    • CPU总数、内存总量、存储总量,点击链接您可进入「仪表盘」-「云资源使用情况」查看CPU、内存、存储的具体使用情况

      +
    • +
    +

    我的请求:显示最新的五条请求信息,包括请求编号、请求时间,点击请求编号跳转到服务请求详情页面;点击更多进入「我的请求」服务请求列表

    +

    告警信息:针对云主机和应用的告警,以及触发危险和警告两个级别的告警总次数,警告次数占比总次数,危险次数占比总次数,根据百分比形成饼图),点击链接您可进入「监控告警」-「已触发警报」查看告警信息详情

    +

    2. 导航栏

    +

    默认租户管理员拥有查看所有功能的权限。权限不同左侧导航栏显示功能也不同,默认租户管理员可查看所有的菜单,其余角色根据分配的权限不同,可查看区域也不同。 +SmartCMP混合云应用管理平台支持多种角色的权限设置,并且为角色分配相关功能权限,系统已有基础角色包括:

    +
      +
    • 最高权限:系统管理员

      +
    • +
    • 租户级别:租户管理员、软件架构师、基础设施管理员和租户成员

      +
    • +
    • 业务组级别:业务组管理员和业务组成员

      +
    • +
    • 项目级别:项目管理员和项目成员

      +
    • +
    • 支持自定义角色 +下文为你介绍管理员导航栏详情:

      +
    • +
    +

    2.1. 服务目录

    +

    最终用户可以通过服务目录管理以自服务的方式请求该用户可以使用的服务

    +

    2.2. 服务请求

    +
      +
    • 我的请求:用户申请的服务请求
    • +
    • 待审批:待审批的服务请求
    • +
    • 已审批:已经审批完成的服务请求
    • +
    • 待处理:待处理的服务请求
    • +
    • 已处理:处理完成的服务请求
    • +
    • 所有请求:默认租户管理员可以查看所有的服务请求
    • +
    +

    2.3. 我的部署

    +
      +
    • 服务部署:最终用户请求目录之后,系统会生成对应蓝图的云主机,即将蓝图对应的应用部署出来。最终用户可以在服务部署中进行各种操作
    • +
    • 云主机:管理通过服务目录申请,向导式申请部署的云主机,或导入进来的云主机。管理员可监控云主机状态,相关物理主机的信息,进行运维的运维操作直接管理应用或云主机
    • +
    • 云资源:展现用户申请成功的各种资源,如存储资源、容器服务、网络资源、PaaS资源、软件资源
    • +
    • 资源状态图:显示云主机和容器的健康状态
    • +
    • 回收站:所有的服务手工卸除或者到期后自动卸除后,将放置到回收站中进行保留。支持从回收站中进行还原,手工删除(删除后所有资源从云平台中真正删除),或为回收站设置保留时间,到期自动删除(支持设置回收站保留时间为0天,即服务不在回收站中保留)
    • +
    +

    2.4. 仪表盘

    +

    管理员可在「仪表盘配置」中定义仪表盘,定义好的仪表盘将根据定义的权限分配给不同的角色查看。

    +
      +
    • 系统默认云资源使用情况仪表盘可查看云资源分布、云主机总览、云主机操作系统分布、有告警的云主机、正在进行的操作、即将到期的服务部署、即将卸载的服务部署、CPU/内存/磁盘使用率最高的云主机-Top10、CPU/内存/磁盘使用率最低的云主机-Top10
    • +
    +

    支持自定义安装仪表盘,具体的操作步骤如下:

    +
      +
    1. http访问路径: http///smartcmp-dashboard, 进入管理页面管理配置仪表盘, 用户名sysadmin@mail.com, 密码P@ssw0rd +2.定义仪表盘中各个Widget字段,定义仪表盘中各个Widget的样式,具体配置步骤请参考 :metabase 的官方文档, +https://github.com/metabase/metabase/releases
    2. +
    +

    2.5. 监控告警

    +

    订阅云主机的报警,并定义对报警的响应行为:

    +
      +
    • 告警策略:定义所选的对象类型(如云主机/应用/容器等)触发警报的条件
    • +
    • 告警:定义所选告警策略应用到的范围以及触发的通知和操作
    • +
    • 已触发警报:显示已触发警报列表
    • +
    • 宿主机监控:查看当前系统中,每个平台中的主机运行状况
    • +
    • 云平台告警:订阅、编辑、删除、刷新云平台的告警信息
    • +
    +

    2.6. 报表与分析

    +

    提供各类资源使用的分析报表

    +
      +
    • 数据中心概览:数据中心地理分布图、各数据中心资源使用总览、大屏展示
    • +
    • 资源申请趋势
    • +
    • 业务组资源占用:在一段时间内,分析不同的业务组对不同类型资源的使用情况
    • +
    • 报表:计费报表、云平台总体情况报表以及其他自定义报表
    • +
    +

    2.7. 基础设施

    +
      +
    • 云平台管理:如云平台类型、名称、用户名及密码等
    • +
    • 资源池管理:如vCPU、内存、虚拟机数量,网络等
    • +
    • 虚拟机模板:对各种云平台的模板与镜像的统一管理
    • +
    • 计算规格:以CPU、内存为衡量因素定义不同规格的计算资源
    • +
    • IP地址管理:每个虚拟机,每个网卡所能使用的IP范围
    • +
    • 密钥对:生成并管理虚机的所需密钥对
    • +
    • 命名后缀:对命名规则中数字或字符后缀的管理
    • +
    • 物理机管理:对物理主机进行管理
    • +
    +

    2.8. 组织架构

    +
      +
    • 业务组:管理员以业务组的形式对基础设施进行配额,以便基础设施管理员对基础设施进行划分
    • +
    • 项目:管理员可以将业务组中的用户划分到不同的项目,实现虚拟机在项目成员之间的共享
    • +
    • 用户:对用户的增、删、改、查等操作,为用户关联角色,关联业务组
    • +
    • 角色:不同用户组的权限定义,也可自定义角色。预定义的角色包括:租户管理员、租户成员、软件架构师、基础设施管理员、业务组管理员、业务组成员、项目管理员、项目成员
    • +
    • 服务团队:管理员自定义不同类型的服务团队,支持服务团队关联用户
    • +
    +

    2.9. 服务建模

    +
      +
    • 脚本库:自定义想要手工执行的脚本软件组件
    • +
    • 软件组件:组件是构成蓝图的基本单元,组件包含两种类型(基础设施组件和软件组件)
    • +
    • 蓝图设计:软件架构师可以通过蓝图管理界面设计出基于TOSCA标准的应用蓝图。蓝图是对应用的抽象。蓝图包含应用的拓扑、工作流以及策略三部分
    • +
    • 表单配置:在创建或配置服务(包括云资源部署服务和手工工单服务)时,可以选择系统内置的表单(包括IP池创建表单、项目创建表单),如果您需要修改或添加额外的字段信息供用户在申请时填写,可以通过表单设计器,自定义配置表单。
    • +
    • 服务配置:IT管理员可以将蓝图发布成服务项,并且将服务项与组织架构、服务目录关联。此外通过服务项还可以实现与第三方系统集成(如审批流程、计费系统等)

      +
    • +
    • 流程配置:自定义每一步活动或任务执行的顺序与策略,通过流程设计器自定义流程模板,包括三种类型流程模板:云资源蓝图服务流程、手工工单服务流程、审批流程

      +
    • +
    • 服务分组:自定义服务类型

      2.10. 容量管理

      +订阅资源池配额和IP池的报警,并定义对报警的响应行为
    • +
    • 资源告警:资源告警监控资源配额的使用情况,达到预设的条件会触发警报
    • +
    • 已触发警报:定义警报已触发之后,需要进行的操作

      2.11. 计量计费

      +
    • +
    • 费用分析:显示各业务组的费用占比,以时间为跨度的费用趋势,可根据时间、云平台、资源类型、业务组、项目和所有者进行筛选查看。
    • +
    • 优化建议:展现了云资源的使用情况,以及费用情况,找出使用率较低的资源,并可以直接进行配置调整。
    • +
    • 计费规则:为各资源规格(CPU,内存)和资源类别定义计费标准
    • +
    • 账单同步:定时同步公有云账单数据

      2.12. 资源治理

      +
    • +
    • 事件配置:用来定义事件应用到的范围以及触发的通知和操作

      2.13. 系统管理

      +系统配置:LADP、SMTP、SMS配置,资源申请配置
    • +
    • 菜单配置:定义多种仪表盘或接入第三方系统,并设置不同的角色查看和自定义扩展菜单的位置。
    • +
    • 报表配置:设置报表的启用/禁用状态以及所要赋予的角色
    • +
    • 操作审计:记录当前租户下的所有的用户操作,可供查询
    • +
    +

    3. 通知

    +

    点击右上角的「通知」可查看当前未读消息列表,通知包括消息(如等待审批)、告警通知等,可标记列表中的通知为已读,将不再提示。点击列表中的某条通知将进入该通知详情页面。

    +

    点击列表下的「查看所有通知」,可进入所有通知列表。「高级搜索」可通过通知创建的起止时间进行快速搜索定位,也可普通查询搜索。可单个或批量删除通知。

    +

    4. 操作历史

    +

    点击右上角的「操作历史」该列表显示当前正在进行的操作,显示该操作的名称、服务名称,请求用户以及创建时间。可点击某条操作信息进入操作历史详情页面。也可点击「查看全部」进入操作历史列表界面。点击某条操作,列表下方显示该操作历史详情信息。可通过「高级搜索」根据业务组、请求用户、起止时间、状态进行快速筛选搜查,也可采用普通搜索。

    +

    5. 帮助文档

    +

    点击欢迎页右上角的「帮助中心」问号图标,可直接进入在线文档,您可以在线查阅产品基础概念、管理员手册和用户手册,了解SmartCMP基础概念和功能。

    + + +
    + +
    +
    +
    + +

    results matching ""

    +
      + +
      +
      + +

      No results matching ""

      + +
      +
      +
      + +
      +
      + +
      + + + + + + + + + + + + + + +
      + + +
      + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git "a/AdminDoc/03\345\237\272\347\241\200\350\256\276\346\226\275\347\256\241\347\220\206/IP\345\234\260\345\235\200\347\256\241\347\220\206.html" "b/AdminDoc/03\345\237\272\347\241\200\350\256\276\346\226\275\347\256\241\347\220\206/IP\345\234\260\345\235\200\347\256\241\347\220\206.html" new file mode 100644 index 0000000..6f9901a --- /dev/null +++ "b/AdminDoc/03\345\237\272\347\241\200\350\256\276\346\226\275\347\256\241\347\220\206/IP\345\234\260\345\235\200\347\256\241\347\220\206.html" @@ -0,0 +1,1142 @@ + + + + + + + IP地址管理 · 发行说明 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
      +
      + + + + + + + + +
      + +
      + +
      + + + + + + + + +
      +
      + +
      +
      + +
      + +

      IP地址管理

      +

      本章节介绍如何创建并使用IP池,目前IP池支持vSphere云平台、OpenStack、Azure、PowerVC、 X86、F5 Big IP云平台、虚拟内网IP地址和Cisco ACI。 IP树展示

      +

      IP地址管理增加目录结构,目录包含多级,每级目录包含名称、描述、网段(包含掩码) +;

      +

      租户管理员和IAAS管理员可以创建, 更新和删除IP池目录, +拥有对IP池目录的创建、更新、删除、查看权限\ +租户内其他人只对IP池目录可以查看, 拥有对IP池目录查看权限。

      +

      下面为您介绍添加IP树的具体步骤:

      +
        +
      1. 点击「基础设施」-「IP地址管理」,点击在添加文件夹页面,输入名称、描述、CIDR、网关。

        +
      2. +
      3. 点击提交,即可创建IP树形结构。

        +
      4. +
      5. 点击二次编辑名称、描述、网关等相关信息,点击即可删除IP信息。

        +
      6. +
      +

      1. 添加IP池

      +

      点击「基础设施」-「IP地址管理」,显示IP池列表,显示IP池的名称、描述、类别、状态、创建者、已使用IP地址、创建时间。

      +

      1.1. IP池

      +
        +
      1. 点击「添加」,选择「IP池」,进入创建IP池页面

        +
      2. +
      3. 在「概况」标签页,填入下列信息:

        +
      4. +
      5. 基本信息:名称、描述(选填)、CIDR、网关

        +
      6. +
      7. DNS/WINS信息

        +
      8. +
      9. 在「IP范围」标签页:创建IP范围,点击「添加」,输入名称,起始IP和结束IP,点击「提交」。

        +
      10. +
      11. 添加成功后,在IP地址列表中,将显示添加的IP地址及其状态,如可用、已占用。可对IP地址进行手动占用或释放

        +
      12. +
      13. 点击「保存」,IP池创建成功

        +
      14. +
      +

      1.2. F5 BIG-IP IP池

      +
        +
      1. 对于F5 BIG-IP IP池,点击「添加」,选择「IP池(F5 +BIG-IP)」,进入创建IP池页面

        +
      2. +
      3. 在「概况」标签页,需填入下列信息:

        +
      4. +
      5. 名称描述

        +
      6. +
      7. IP范围:点击「添加」,输入名称,起始IP和结束IP,点击「提交」

        +
      8. +
      9. 添加成功后,在IP地址列表界面,将显示添加的IP地址及其状态,如可用、已占用。可对IP地址进行手动占用或释放

        +
      10. +
      11. 点击「保存」,IP池(F5 BIG-IP)创建成功

        +
      12. +
      +

      1.3. ACI IP池

      +
        +
      1. 对于Cisco ACI +IP池,点击「添加」,选择「IP池(ACI)」,进入创建IP池页面

        +
      2. +
      3. 在「概况」标签页,需填入/选择下列信息:

        +
      4. +
      5. 基本信息:云平台入口、BridgeDomain、Subnet、名称、描述、CIDR(自动填写,不支持自定义编辑)、网关

        +
      6. +
      7. DNS/WIN信息

        +
      8. +
      9. 在「IP范围」标签页:创建IP范围,输入名称,起始IP和结束IP,点击「提交」。添加成功后,在IP地址列表界面,将显示添加的IP地址及其状态,如可用、已占用。可对IP地址进行手动占用或释放

        +
      10. +
      11. 点击「保存」,IP池(Cisco ACI IP)创建成功

        +
      12. +
      +

      1.4. IP池列表

      +

      点击「基础设施」-「IP地址管理」,显示IP池列表。在这个页面中用户可以查看当前系统中配置好的IP池以及IP池的基本信息。

      +

      2. 编辑/删除IP池

      +

      在IP地址列表界面,选中一个IP池,点击「编辑」,进入IP池编辑界面。点击「删除」,确认删除点击「是」,即可删除IP池。

      +

      3. 管理IP地址

      +

      在IP地址列表界面,点击IP池名称,对IP地址进行管理,主要功能点:

      +
        +
      • 可查看IP用量趋势,手动释放

        +
      • +
      • 支持IP地址冲突检测

        +
      • +
      • 支持IP地址冷却期设置

        +
      • +
      • IP释放后保留一段时间,冷却期过后再重新放入IP池中进行分配

        +
      • +
      • 支持IP地址使用情况的详细日志信息查询

        +
      • +
      +

      您可以参考如下操作步骤管理IP地址:

      +
        +
      1. 选择「IP范围」标签页,可看见IP池中所有管理的IP地址的详情:IP地址 +、使用IP +的资源、状态(可用、已占用、不可用、冷却中、预留、预分配)、更新时间、操作人。

        +
      2. +
      3. 支持对已占用、冷却中的IP地址进行释放操作,对可用的IP地址进行占用。

        +
      4. +
      +
      +

      「Note」IP管理支持IP池冷却期并支持自定义设置冷却期的时长,IP地址被释放后,IP地址会进入冷却期,在冷却期结束之后IP地址才会被重新分配。

      +
      +
        +
      1. 点击「IP地址」将显示该IP的状态更新和冲突检测的操作日志。
      2. +
      + + +
      + +
      +
      +
      + +

      results matching ""

      +
        + +
        +
        + +

        No results matching ""

        + +
        +
        +
        + +
        +
        + +
        + + + + + + + + + + + + + + +
        + + +
        + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git "a/AdminDoc/03\345\237\272\347\241\200\350\256\276\346\226\275\347\256\241\347\220\206/IP\345\234\260\345\235\200\347\256\241\347\220\206.md" "b/AdminDoc/03\345\237\272\347\241\200\350\256\276\346\226\275\347\256\241\347\220\206/IP\345\234\260\345\235\200\347\256\241\347\220\206.md" new file mode 100644 index 0000000..a2a90bc --- /dev/null +++ "b/AdminDoc/03\345\237\272\347\241\200\350\256\276\346\226\275\347\256\241\347\220\206/IP\345\234\260\345\235\200\347\256\241\347\220\206.md" @@ -0,0 +1,104 @@ + +**IP地址管理** + + + 本章节介绍如何创建并使用IP池,目前IP池支持vSphere云平台、OpenStack、Azure、PowerVC、 X86、F5 Big IP云平台、虚拟内网IP地址和Cisco ACI。 IP树展示 + +IP地址管理增加目录结构,目录包含多级,每级目录包含名称、描述、网段(包含掩码) +; + +租户管理员和IAAS管理员可以创建, 更新和删除IP池目录, +拥有对IP池目录的创建、更新、删除、查看权限\ +租户内其他人只对IP池目录可以查看, 拥有对IP池目录查看权限。 + +下面为您介绍添加IP树的具体步骤: + +1. 点击「基础设施」-「IP地址管理」,点击在添加文件夹页面,输入名称、描述、CIDR、网关。 + +2. 点击提交,即可创建IP树形结构。 + +3. 点击二次编辑名称、描述、网关等相关信息,点击即可删除IP信息。 + +# 添加IP池 + +点击「基础设施」-「IP地址管理」,显示IP池列表,显示IP池的名称、描述、类别、状态、创建者、已使用IP地址、创建时间。 + +## IP池 {#IP池} + +1. 点击「添加」,选择「IP池」,进入创建IP池页面 + +2. 在「概况」标签页,填入下列信息: + +- 基本信息:名称、描述(选填)、CIDR、网关 + +- DNS/WINS信息 + +3. 在「IP范围」标签页:创建IP范围,点击「添加」,输入名称,起始IP和结束IP,点击「提交」。 + +4. 添加成功后,在IP地址列表中,将显示添加的IP地址及其状态,如可用、已占用。可对IP地址进行手动占用或释放 + +5. 点击「保存」,IP池创建成功 + +## F5 BIG-IP IP池 {#F5BIG-IPIP池} + +1. 对于F5 BIG-IP IP池,点击「添加」,选择「IP池(F5 + BIG-IP)」,进入创建IP池页面 + +2. 在「概况」标签页,需填入下列信息: + +- 名称描述 + +- IP范围:点击「添加」,输入名称,起始IP和结束IP,点击「提交」 + +- 添加成功后,在IP地址列表界面,将显示添加的IP地址及其状态,如可用、已占用。可对IP地址进行手动占用或释放 + +3. 点击「保存」,IP池(F5 BIG-IP)创建成功 + +## ACI IP池 {#ACIIP池} + +1. 对于Cisco ACI + IP池,点击「添加」,选择「IP池(ACI)」,进入创建IP池页面 + +2. 在「概况」标签页,需填入/选择下列信息: + +- 基本信息:云平台入口、BridgeDomain、Subnet、名称、描述、CIDR(自动填写,不支持自定义编辑)、网关 + +- DNS/WIN信息 + +3. 在「IP范围」标签页:创建IP范围,输入名称,起始IP和结束IP,点击「提交」。添加成功后,在IP地址列表界面,将显示添加的IP地址及其状态,如可用、已占用。可对IP地址进行手动占用或释放 + +4. 点击「保存」,IP池(Cisco ACI IP)创建成功 + +## IP池列表 + +点击「基础设施」-「IP地址管理」,显示IP池列表。在这个页面中用户可以查看当前系统中配置好的IP池以及IP池的基本信息。 + +# 编辑/删除IP池 + +在IP地址列表界面,选中一个IP池,点击「编辑」,进入IP池编辑界面。点击「删除」,确认删除点击「是」,即可删除IP池。 + +# 管理IP地址 + +在IP地址列表界面,点击IP池名称,对IP地址进行管理,主要功能点: + +- 可查看IP用量趋势,手动释放 + +- 支持IP地址冲突检测 + +- 支持IP地址冷却期设置 + +- IP释放后保留一段时间,冷却期过后再重新放入IP池中进行分配 + +- 支持IP地址使用情况的详细日志信息查询 + +您可以参考如下操作步骤管理IP地址: + +1. 选择「IP范围」标签页,可看见IP池中所有管理的IP地址的详情:IP地址 + 、使用IP + 的资源、状态(可用、已占用、不可用、冷却中、预留、预分配)、更新时间、操作人。 + +2. 支持对已占用、冷却中的IP地址进行释放操作,对可用的IP地址进行占用。 + +>「Note」IP管理支持IP池冷却期并支持自定义设置冷却期的时长,IP地址被释放后,IP地址会进入冷却期,在冷却期结束之后IP地址才会被重新分配。 + +3. 点击「IP地址」将显示该IP的状态更新和冲突检测的操作日志。 diff --git "a/AdminDoc/03\345\237\272\347\241\200\350\256\276\346\226\275\347\256\241\347\220\206/README.md" "b/AdminDoc/03\345\237\272\347\241\200\350\256\276\346\226\275\347\256\241\347\220\206/README.md" new file mode 100644 index 0000000..04d2730 --- /dev/null +++ "b/AdminDoc/03\345\237\272\347\241\200\350\256\276\346\226\275\347\256\241\347\220\206/README.md" @@ -0,0 +1,11 @@ + **基础设施** + + +SmartCMP统一管理数据中心的计算、存储、网络、应用等各种资源,包括私有云、公有云、混合云、容器云、x86物理机等多种类型。支持快速导入并无缝管理存量虚拟机,使用云平台标准的API进行操作,管理云资源。 + +由于通过API和各个不同云基础设施进行交互,因此用户的云基础设施账号的形式不一样的(如公有云使用AccessKey, +私用云使用用户名与密码等)。 + +>「Note」不同云基础设施账号的获取方式各有不同,具体请参考:[添加云平台](https://cloudchef.github.io/doc/AdminDoc/03基础设施管理/云平台管理.html#添加云平台)。 + +租户管理员可以通过添加对应的基础设施的访问信息完成基础设施的注册。 diff --git "a/AdminDoc/03\345\237\272\347\241\200\350\256\276\346\226\275\347\256\241\347\220\206/index.html" "b/AdminDoc/03\345\237\272\347\241\200\350\256\276\346\226\275\347\256\241\347\220\206/index.html" new file mode 100644 index 0000000..a080632 --- /dev/null +++ "b/AdminDoc/03\345\237\272\347\241\200\350\256\276\346\226\275\347\256\241\347\220\206/index.html" @@ -0,0 +1,1050 @@ + + + + + + + 基础设施 · 发行说明 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
        +
        + + + + + + + + +
        + +
        + +
        + + + + + + + + +
        +
        + +
        +
        + +
        + +

        基础设施

        +

        SmartCMP统一管理数据中心的计算、存储、网络、应用等各种资源,包括私有云、公有云、混合云、容器云、x86物理机等多种类型。支持快速导入并无缝管理存量虚拟机,使用云平台标准的API进行操作,管理云资源。

        +

        由于通过API和各个不同云基础设施进行交互,因此用户的云基础设施账号的形式不一样的(如公有云使用AccessKey, +私用云使用用户名与密码等)。

        +
        +

        「Note」不同云基础设施账号的获取方式各有不同,具体请参考:添加云平台

        +
        +

        租户管理员可以通过添加对应的基础设施的访问信息完成基础设施的注册。

        + + +
        + +
        +
        +
        + +

        results matching ""

        +
          + +
          +
          + +

          No results matching ""

          + +
          +
          +
          + +
          +
          + +
          + + + + + + + + + + + + + + +
          + + +
          + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git "a/AdminDoc/03\345\237\272\347\241\200\350\256\276\346\226\275\347\256\241\347\220\206/\344\272\221\345\271\263\345\217\260\347\256\241\347\220\206.html" "b/AdminDoc/03\345\237\272\347\241\200\350\256\276\346\226\275\347\256\241\347\220\206/\344\272\221\345\271\263\345\217\260\347\256\241\347\220\206.html" new file mode 100644 index 0000000..22f3bc6 --- /dev/null +++ "b/AdminDoc/03\345\237\272\347\241\200\350\256\276\346\226\275\347\256\241\347\220\206/\344\272\221\345\271\263\345\217\260\347\256\241\347\220\206.html" @@ -0,0 +1,2001 @@ + + + + + + + 云平台管理 · 发行说明 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
          +
          + + + + + + + + +
          + +
          + +
          + + + + + + + + +
          +
          + +
          +
          + +
          + +

          云平台管理

          +

          系统管理员和租户管理员在「基础设施」-「云平台管理」页面内可以添加vSphere、VMware +NSX、OpenStack、PowerVC、Hyper-V、CloudView、EMC +SCP、NFS、物理服务器、Kubernetes、Docker、NFS、阿里云、阿里专有云、腾讯云、青云、AWS、Azure等不同厂商的云平台以及F5负载均衡器和ACI网络。云平台创建完成后还可进行编辑和删除。

          +

          1. 添加云平台

          +

          当接入云平台时,为了保障云主机的安全性,公有云(包括阿里云、腾讯云、AWS)在API调用时均需要验证访问者的身份,以确保访问者具有相关权限。公有云的验证方式通过Access +Key来实现。Access Key由云平台颁发给云主机的所有者,它由Access Key +ID和Access Key +Secret构成对应SmartCMP接入公有云云平台的访问密钥ID和访问密钥。

          +

          1.1. 添加vSphere云平台

          +

          您可以根据下面的步骤来添加一个vSphere云平台:

          +
            +
          1. 在左边导航选择「基础设施」-「云平台管理」,在左边选择「vSphere」类型

            +
          2. +
          3. 点击「添加」按钮 ,填入下列信息:

            +
          4. +
          + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
          参数名称描述示例
          云名称vSphere云平台名称数据中心A--vCenter
          用户名vSphere用户名administrator\@vsphere.local
          密码vSphere密码确认vSphere密码
          地址vCenter的IP地址192.168.x.x
          端口API端口443
          数据中心数据中心所在地上海
          关联VMware NSX云平台NSX云平台(前提需要先添加VMware平台)选择对应的NSX云平台名称
          +

          点击「验证」,验证连接成功后,点击「提交」, vSphere云平台入口已保存

          +

          1.2. 添加VMware NSX平台

          +

          您可以根据下面的步骤来添加一个VMware NSX平台:

          +
            +
          1. 在左边导航选择「基础设施」-「云平台管理」,在左边选择「VMware +NSX」类型

            +
          2. +
          3. 点击「添加」按钮 ,填入下列信息:

            +
          4. +
          + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
          参数名称描述示例
          名称VMware NSX名称NSX
          地址VMware NSX地址192.168.xx.xxx
          用户名用户名称admin
          密码密码确认用户密码
          +

          点击「验证」,验证连接成功后,点击「提交」, VMware NSX平台入口已保存

          +
          +

          「Note」 VMware NSX的使用必须在添加了vSphere云平台的基础上,添加成功vSphere云平台和VMware NSX平台后,需要在vSphere云平台中将NSX相关联。

          +
          +

          1.3. 添加OpenStack云平台

          +

          您可以根据下面的步骤来添加一个OpenStack云平台:

          +
            +
          1. 在左边导航选择「基础设施」-「云平台管理」,在左边选择「OpenStack」类型

            +
          2. +
          3. 点击「添加」按钮,填入下列信息:

            +
          4. +
          + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
          参数名称描述示例
          云名称OpenStack云平台名称OpenStack
          认证URLOpenStack keystone认证URLhttp://xxx.xxx.xxx.x:500/v2.00
          API版本选择API版本:版本2 版本3版本2
          租户名称租户名称admin
          用户名用户名admin
          密码密码确认用户密码
          区域区域名称RegionOne
          数据中心数据中心所在地上海
          +

          点击「验证」,验证连接成功后,点击「提交」,OpenStack云平台入口已保存。

          +

          1.4. 添加PowerVC云平台

          +

          您可以根据下面的步骤来添加一个PowerVC云平台:

          +
            +
          1. 在左边导航选择「基础设施」-「云平台管理」,在左边选择「PowerVC」类型

            +
          2. +
          3. 点击「添加」按钮,填入下列信息:

            +
          4. +
          + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
          参数名称描述示例
          云名称PowerVC云平台名称Power
          认证URLPowerVC认证URLhttp://xxx.xxx.xxx.x:500/v2
          忽略SSL证书检查Disable_ssl_verification可选项,认证URL(HTTPS时可选)
          项目名称Project nameadmin
          项目域Project domain nameDefault
          用户名User nameadmin
          密码Password确认密码
          用户域User domaindefault
          区域RegionRegionOne
          数据中心数据中心所在地上海
          +

          点击「验证」,验证连接成功后,点击「提交」, PowerVC云平台入口已保存。

          +

          1.5. 添加Hyper-V云平台

          +

          您可以根据下面的步骤来添加一个Hyper-V云平台:

          +
            +
          1. 在左边导航选择「基础设施」-「云平台管理」,在左边选择「Hyper-V」类型

            +
          2. +
          3. 点击「添加」按钮 ,填入下表信息:

            +
          4. +
          5. 填写密码,点击「验证」,验证连接成功后,点击「提交」, +Hyper-V云平台入口已保存

            +
          6. +
          + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
          参数名称描述示例
          云名称Hyper-V云平台名称Hyper-V
          SCVMM地址Hyper-V SCVMM地址http://x.x.x.x:5985/wsman
          SCVMM名称Hyper-V SCVMM名称scvmm01.test.local
          虚拟机存储路径虚拟机存储路径C:\ClusterStorage\Volume1
          用户名Hyper-V 用户名administrator\@wintest
          密码Hyper-V 密码确认密码
          +

          1.6. 添加CloudView云平台

          +

          您可以根据下面的步骤来添加一个CloudView云平台:

          +
            +
          1. 在左边导航选择「基础设施」-「云平台管理」,在左边选择「CloudView」类型

            +
          2. +
          3. 点击「添加」按钮,填入下列信息:

            +
          4. +
          + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
          参数名称描述示例
          云名称CloudView名称CloudView
          认证URL认证URL认证地址
          API版本选择API版本:版本2 版本3版本2
          租户名称租户名称Tenant
          用户名用户名admin
          密码密码确认用户密码
          区域RegionRegionOne
          数据中心数据中心所在地上海
          +

          点击「验证」,验证连接成功后,点击「提交」, CloudView云平台入口已保存

          +

          1.7. 添加物理服务器云平台

          +

          您可以根据下面的步骤来添加一个物理服务器云平台:

          +
            +
          1. 在左边导航选择「基础设施」-「云平台管理」,在左边选择「物理服务器」类型

            +
          2. +
          3. 点击「添加」按钮,填入下列信息:

            +
          4. +
          + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
          参数名称描述示例
          云名称物理服务器名称X86物理机
          认证URL认证URLhttp://x.x.x.x
          用户名用户名admin
          密码密码确认用户密码
          +

          点击「验证」,验证连接成功后,点击「提交」, 物理服务器云平台入口已保存

          +

          1.8. 添加Kubernetes云平台

          +

          您可以根据下面的步骤来添加一个Kubernetes云平台:

          +
            +
          1. 在左边导航选择「基础设施」-「云平台管理」,在左边选择「Kubernetes」类型

            +
          2. +
          3. 点击「添加」按钮,在「概况」页面填入下列信息:

            +
              +
            • 名称:输入Kubernetes的云平台名称

              +
            • +
            • 认证URL:输入云平台的URL信息

              +
            • +
            • CA证书:在kubectl的配置文件中,在 +.kube/config中找到certificate-authority文件

              +
            • +
            • 用户证书:在kubectl的配置文件中,在 +.kube/config中找到client-certificate文件

              +
            • +
            • 用户密钥:在kubectl的配置文件中,在 .kube/config中找到client-key文件

              +
            • +
            • Prometheus +监控地址:若Kubernetes中已安装Prometheus,则可输入Prometheus +监控地址,通过SmartCMP平台查看Kubernetes的监控数据

              +
            • +
            +
          4. +
          5. 点击「验证」,验证连接成功后,点击「提交」, +Kubernetes云平台入口已保存

            +
          6. +
          7. 「容器镜像源」页面:可添加、编辑、删除容器镜像源

            +
              +
            • 添加容器镜像源:选择类型(VMware Habor、Docker Trusted +Registry),填写名称、项目名称(VMware Habor +类型)、URL等相关信息,选填描述,若该镜像属于公有镜像,则无需填写用户名密码;若该镜像属于私有镜像,则需填写用户名密码才能验证成功

              +
            • +
            • 编辑容器镜像源:选择一镜像,点击「编辑」,则可做相应修改

              +
            • +
            • 删除容器镜像源:选择一镜像,点击「删除」,则可做删除镜像源

              +
            • +
            +
          8. +
          +

          1.9. 添加Docker云平台

          +

          您可以根据下面的步骤来添加一个Docker云平台:

          +
            +
          1. 在左边导航选择「基础设施」-「云平台管理」,在左边选择「Docker」类型

            +
          2. +
          3. 点击「添加」按钮,填入下列信息:

            +
          4. +
          + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
          参数名称描述示例
          云名称Docker云平台名称Docker
          传输协议传输协议http
          远程URL远程URLhttp://x.x.x.x
          端口端口2375
          +

          点击「验证」,验证连接成功后,点击「提交」, Docker云平台入口已保存

          +

          1.10. 添加NFS云平台

          +

          您可以根据下面的步骤来添加一个NFS云平台:

          +
            +
          1. 在左边导航选择「基础设施」-「云平台管理」,在左边选择「NFS」类型

            +
          2. +
          3. 点击「添加」按钮,填入下列信息:

            +
          4. +
          + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
          参数名称描述示例
          云名称NFS云平台名称NFS
          NFS服务器NFS服务器http://x.x.x.x
          用户名用户名Username
          密码密码Password
          确认密码确认用户密码Password
          +

          点击「验证」,验证连接成功后,点击「提交」, NFS云平台入口已保存

          +

          1.11. 添加阿里云平台

          +

          您可以根据下面的步骤来添加一个阿里云平台:

          +

          在左边导航选择「基础设施」-「云平台管理」,在左边选择「阿里云」类型

          +

          点击「添加」按钮,填入下列信息:

          + + + + + + + + + + + + + + + + + + + + + + + + + +
          参数名称描述示例
          云名称阿里云云平台名称Aliyun
          访问密钥ID阿里云访问密钥ID获取方式见下文
          访问密钥阿里云访问密钥获取方式见下文
          +

          阿里云AccessKey获取方式

          +
          +

          「Note」 获取Access Key Secret:登录您的阿里云管理控制台,点击页面右上角个人信息,展开面板,选择里面的"accesskeys",或者您也可以直接登录访问https://ak-console.aliyun.com,进入AccessKeys管理界面,查看您的AccessKey列表,如果当前列表为空,您也可以创建一个; +「Note」 获取Access Key ID:阿里云账号ID是阿里云分配给每个用户的唯一识别码,不可更改,格式为16位数字,如:102462945332****(为避免与真实用户巧合,后4位数字省略),用户要查看自己的阿里云账号ID,请在登录状态下访问阿里云账号"安全设置",地址:https://account.console.aliyun.com/secure; 在打开的"安全设置"页面中,查找自己的账号ID

          +
          +

          点击「验证」,验证连接成功后,点击「提交」, 阿里云平台入口已保存

          +

          1.12. 添加阿里专有云平台

          +

          您可以根据下面的步骤来添加一个阿里专有云平台(Apsara):

          +
            +
          1. 在左边导航选择「基础设施」-「云平台管理」,在左边选择「阿里专有云」类型

            +
          2. +
          3. 点击「添加」按钮,填入下列信息:

            +
          4. +
          + + + + + + + + + + + + + + + + + + + + + + + + + +
          参数名称描述示例
          云名称阿里专有云云平台名称Aliyun专有云
          访问密钥ID阿里云访问密钥ID获取方式见下文
          访问密钥阿里云访问密钥获取方式见下文
          +

          点击「验证」,验证连接成功后,点击「提交」, 阿里专有云平台入口已保存

          +

          1.13. 添加腾讯云平台

          +

          您可以根据下面的步骤来添加一个腾讯云平台:

          +
            +
          1. 在左边导航选择「基础设施」-「云平台管理」,在左边选择「腾讯云」类型

            +
          2. +
          3. 点击「添加」按钮,填入下列信息:

            +
          4. +
          + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
          参数名称描述示例
          云名称腾讯云云平台名称TenantCloud
          访问密钥ID腾讯云访问密钥ID获取方式见下文
          访问密钥腾讯云访问密钥获取方式见下文
          区域区域名称华东地区
          +

          类似阿里云Access + Key,腾讯云为API服务提供了一套API密钥验证机制,API密钥由腾讯云颁发给云主机的所有者,它由 + Secret ID 和 Secret Key + 组成。对应SmartCMP接入腾讯云平台的访问密钥ID和访问密钥。

          +
          +

          「Note」 获取方式: 登录您的腾讯云控制台,点击左上角"云产品",在弹出的界面中点击"云API密钥",或者您也可以直接登录访问https://console.qcloud.com/capi 进入"云API密钥"管理界面,您将看到您的API密钥列表,API密钥由APPID、SecretId及SecretKey组成,如果该列表为空,请点击"新建密钥"创建一个; +「Note」 腾讯云账号ID是腾讯云分配给每个用户的唯一识别码,用户要查看自己的腾讯云账号ID,请在登录状态下访问"账户信息",地址:https://console.qcloud.com/developer;

          +
          +

          点击「验证」,验证连接成功后,点击「提交」, 腾讯云平台入口已保存

          +

          1.14. 添加青云云平台

          +

          支持青云公有和私有两种类型的云平台对接。您可以根据下面的步骤来添加一个青云平台:

          +
            +
          1. 在左边导航选择「基础设施」-「云平台管理」,在左边选择「青云」类型

            +
          2. +
          3. 点击「添加」按钮,填入下列信息:

            +
          4. +
          + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
          参数名称描述示例
          云名称青云云平台名称QingCloud
          访问密钥ID青云访问密钥ID获取方式见下文
          访问密钥青云访问密钥获取方式见下文
          类型选择私有或公有私有/公有
          API URL若选择私有,需要提供青云私有云API URLhttp://x.x.x.x
          +

          类似阿里云Access + Key,青云公有云为API服务提供了一套API密钥验证机制,通过这个密钥,用户可以将青云中的云资源导入到平台。API密钥由青云颁发给云主机的所有者,它由qy_access_key_id和 + qy_secret_access_key组成。

          +
          +

          「Note」 登录您的青云QingCloud控制台,点击左侧菜单中的"API密钥",进入API密钥管理页面,或者您也可以直接登录访问https://console.qingcloud.com/access_keys/;点击创建按钮,弹出"新建API密钥"窗口,输入名称,如:云服务,点击"提交"按钮;在弹出的"下载密钥"窗口,点击下载按钮,将密钥文件:access_key.csv下载到本地。请注意,API密钥的下载链接只会出现一次,如果您创建时没有下载,请重新创建一个新的API密钥; 使用记事本打开文件:access_key.csv,可以看到API密钥信息,qy_access_key_id和 qy_secret_access_key

          +
          +

          点击「验证」,验证连接成功后,点击「提交」, 青云平台入口已保存

          +

          1.15. 添加AWS平台

          +

          您可以根据下面的步骤来添加一个AWS平台:

          +
            +
          1. 在左边导航选择「基础设施」-「云平台管理」,在左边选择「AWS」类型

            +
          2. +
          3. 点击「添加」按钮,填入下列信息:

            +
          4. +
          + + + + + + + + + + + + + + + + + + + + + + + + + +
          参数名称描述示例
          云名称AWS平台名称AWS平台
          访问密钥IDAWS访问密钥ID获取方式见下文
          访问密钥AWS访问密钥获取方式见下文
          +

          亚马逊AWS访问密钥(即Access Key)是AWS用户在通过API访问云资源时的确认用户身份的凭证,SmartCMP正是通过API来管理AWS云资源,因此用户首先需要获取AWS访问密钥(Access Key)才可以将资源纳入到平台中进行管理,访问密钥(Access Key)由亚马逊AWS颁发给云主机的所有者,它由访问秘钥ID(Access Key ID)和私有访问秘钥(Secret Access Key)构成。

          +
          +

          「Note」 登录AWS管理控制台 使用AWS主账号(或者是拥有AdministratorAccess管理策略权限的子账号)登录管理控制台,点击"安全&身份"中的"管理用户访问和加密密钥(Identity& Access Management)",进入IAM控制面板; 查看用户列表,进入IAM控制面板后,点击"用户",查看所有用户列表;

          +

          「Note」 查看用户安全证书, 要将云资源导入到平台,要确保访问密钥(Access Key)有足够的资源权限,因此请选定一个有相应权限的用户,点击用户名,进入该用户详情页面后,点击"安全证书"页签;创建访问密钥 请点击"创建访问密钥",将打开密钥信息窗口。需要注意的是,在AWS控制台中,用户仅有一次查看访问密钥的机会,因此请务必在打创建访问密钥成功后,将密钥信息妥善保存; 图中的访问秘钥ID即导入云主机时用到的的Access Key ID,私有访问秘钥即Secret Access Key(默认不显示,点击"显示"链接);

          +
          +

          点击「验证」,验证连接成功后,点击「提交」, AWS平台入口已保存

          +

          1.16. 添加Azure云平台

          +

          您可以根据下面的步骤来添加一个Azure云平台:

          +
            +
          1. 在左边导航选择「基础设施」-「云平台管理」,在左边选择「Azure」类型

            +
          2. +
          3. 点击「添加」按钮,填入下列信息:

            +
          4. +
          + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
          参数名称描述示例
          云名称Azure云平台名称Azure
          客户机IDAzure客户机地址获取方式见下文
          访问密钥租户名获取方式见下文
          访问域用户名获取方式见下文
          订阅ID凭证之一获取方式见下文
          +

          事实上,微软Azure并没有一个所谓的"API访问凭证"的概念,我们需要通过它的"Active + Directory"中的应用程序Client信息来进行API的访问。而且相较其它云厂商而言,微软Azure的API访问凭证略显复杂,且需要通过多个步骤获取它由订阅(Subscription)ID、客户机ID和访问密钥构成。

          +

          获取微软Azure的访问域:

          +
          +

          「Note」 在Azure控制台中进入Azure Active Directory,再点击二级菜单"属性";在Active Directory属性页面,我们可以看到"目录ID",该目录ID即为Azure的访问域;

          +
          +

          获取订阅ID:

          +
          +

          「Note」 您在购买Azure产品之前,必须先创建一个订阅,而后需要在这个订阅下购买云资源,云资源不能跨订阅访问。因此,当您存在多个订阅时,请您确保输入的订阅ID是您需要导入的云资源所属订阅,否则可能会出现无法列出云资源的情况。 登录Azure控制台,在左侧菜单选择"成本管理+计费"(菜单顺序是可自定义调整的),在"Overview"中,找到您要导入的云资源所属订阅,获取"订阅ID"。如果您有多个订阅,都希望通过平台来管理,那么请创建多个云账户分批导入;

          +
          +

          获取客户机ID和访问密钥:

          +
          +

          「Note」 在[Azure Active Directory]中,点击二级菜单"[应用注册]",将会列出现有的所有应用程序,在应用程序(客户端)ID处即可找到 客户机ID 点击该应用程序进入详情页面,先点击左侧"[证书和密码]"按钮,再找到右侧的"新增客户端密码",添加客户端密码,添加成功后,可查看到访问密钥。

          +
          +

          点击「验证」,验证连接成功后,点击「提交」,Azure云平台入口已保存

          +

          1.17. 添加F5 BIG-IP云平台

          +

          您可以根据下面的步骤来添加一个F5 BIG-IP云平台:

          +
            +
          1. 在左边导航选择「基础设施」-「云平台管理」,在左边选择「F5 +BIG-IP」类型

            +
          2. +
          3. 点击「添加」按钮,填入下列信息:

            +
          4. +
          + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
          参数名称描述示例
          云名称F5 BIG-IP云平台名称F5 BIG-IP
          认证URLF5 BIG-IP认证URLhttps://192.168.1.171
          用户名用户名Admin
          密码密码确认用户密码
          +

          点击「验证」,验证连接成功后,点击「提交」, F5 + BIG-IP云平台入口已保存

          +

          1.18. 添加CISCO ACI平台

          +

          您可以根据下面的步骤来添加一个CISCO ACI云平台:

          +
            +
          1. 在左边导航选择「基础设施」-「云平台管理」,在左边选择「CISCO +ACI」类型

            +
          2. +
          3. 点击「添加」按钮,填入下列信息:

            +
          4. +
          + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
          参数名称描述示例
          名称CISCO ACI平台名称CISCO ACI平台
          认证URLCISCO ACI认证URLhttp://x.x.x.x:5000/
          租户名称租户名Tenant
          用户名用户名Username
          密码密码确认用户密码
          +

          点击「验证」,验证连接成功后,点击「提交」, CISCO + ACI云平台入口已保存

          +

          1.19. 添加金山云平台

          +

          您可以根据下面的步骤来添加一个金山云平台:

          +
            +
          1. 在左边导航选择「基础设施」-「云平台管理」,在左边选择「金山云」类型
          2. +
          3. 点击「添加」按钮,填入下列信息:
          4. +
          + + + + + + + + + + + + + + + + + + + + + + + + + +
          参数名称描述示例
          云名称云平台名称金山云
          访问密钥ID金山云访问密钥ID获取方式类似阿里云
          访问密钥金山云访问密钥获取方式类似阿里云
          +

          点击「验证」,验证连接成功后,点击「提交」, 金山云平台入口已保存。

          +

          1.20. 添加UCloud云平台

          +

          为了管理Ucloud平台内的资源,需要您提供Ucloud访问密钥ID和访问密钥来访问您的Ucloud。获取方式类似阿里云 +基于通用组件实现Ucloud的计算、网络和存储节点的接入

          +

          2. 查看当前租户已添加的云平台

          +

          您可以根据下面的步骤来查看当前租户已添加的云平台:

          +
            +
          1. 在左边导航选择「基础设施」-「云平台管理」

            +
          2. +
          3. 在左侧选择不同的云平台,将在右侧看到已添加的云平台信息

            +
          4. +
          5. 可在该页面对云平台做添加、编辑和删除等操作

            +
          6. +
          7. 点击云平台的名称,进入云平台「概况」界面,点击「资源信息」标签页,可查看云平台总体资源使用情况

            +
          8. +
          +

          3. 修改云平台信息

          +

          在左边导航选择「基础设施」-「云平台管理」, +在左侧管理菜单选择需要修改的云平台类型,然后在右侧点击云平台名称或选中云平台后点击「编辑」,则出现云平台编辑界面。修改云平台信息后点击「验证」-「提交」即可。

          +

          4. 查看云平台资源使用情况

          +

          成功添加云平台后,可以通过系统查看云平台的总体资源使用情况。在左边导航选择「基础设施」-「云平台管理」,根据选择的云平台查看资源使用情况。

          +

          4.1. 查看vSphere云平台资源使用情况

          +

          在添加vSphere云平台成功之后,点击云平台名称或选中云平台后点击「编辑」,会进入云平台「概况」页面,点击「资源信息」,会显示当前vSphere云平台的整体资源情况:

          +
            +
          • 数据总览:显示该云平台下资源概况,如物理主机数量,群集数量,数据存储数量、标准交换机数量和虚机总数

            +
          • +
          • 「数据中心概况」:显示该数据中心下的群集、主机、虚拟机个数以及CPU、内存、存储等的已用量和总量百分比

            +
          • +
          • 「群集和主机概况」:显示群集名称,及该群集下的云主机名称、所属数据中心,CPU总数,CPU、内存、存储的已用量和总量百分比

            +
          • +
          • 「数据存储概况」:显示数据存储名称、所属数据中心、及存储的已用量、总量和申请总量的百分比

            +
          • +
          • 「vSphere资源池概况」:vSphere资源池名称、所属群集、CPU已用量和总量的百分比,内存的已用量和总量的百分比

            +
          • +
          +

          4.2. 查看OpenStack云平台资源使用情况

          +

          在添加OpenStack云平台成功之后,点击云平台名称或选中云平台后点击「编辑」,会进入云平台「概况」页面,点击「资源信息」,会显示当前OpenStack云平台的整体资源情况:包括可用区名称、资源池总数、已部署虚机、CPU、内存、存储等。

          +

          4.3. 查看PowerVC云平台资源使用情况

          +

          在添加PowerVC云平台成功之后,点击云平台名称或选中云平台后点击「编辑」,会进入云平台「概况」页面,点击「资源信息」,会显示当前PowerVC云平台的整体资源情况:包括可用区名称、资源池总数、已部署虚机(已部署/预留总量)、CPU、内存、存储等。

          +

          4.4. 查看Kubernetes云平台资源使用情况

          +

          在添加Kubernetes云平台成功之后(需要在Kubernetes中安装prometheus,并在云平台输入prometheus监控地址),点击云平台名称或选中云平台后点击「编辑」,会进入云平台「概况」页面,点击「资源信息」,会显示当前Kubernetes云平台的整体资源情况:包括集群内存使用率、集群CPU使用率、集群文件系统使用率等。

          +

          4.5. 查看阿里云云平台资源使用情况

          +

          在添加阿里云云平台成功之后,点击云平台名称或选中云平台后点击「编辑」,会进入云平台「概况」页面,点击「资源信息」,会显示当前阿里云云平台的整体资源情况:包括区域名称、配置的资源池总数、已部署虚机(已部署/预留总量)、CPU(已用量/预留总量)和内存(已用量/预留总量)等。

          +

          4.6. 查看腾讯云云平台资源使用情况

          +

          在添加腾讯云云平台成功之后,点击云平台名称或选中云平台后点击「编辑」,会进入云平台「概况」页面,点击「资源信息」,会显示当前腾讯云云平台的整体资源情况:包括区域名称、配置的资源池总数、已部署虚机(已部署/预留总量)、CPU(已用量/预留总量)和内存(已用量/预留总量)等。

          +

          4.7. 查看青云云平台资源使用情况

          +

          在添加青云云平台成功之后,点击云平台名称或选中云平台后点击「编辑」,会进入云平台「概况」页面,点击「资源信息」,会显示当前青云云平台的整体资源情况:包括区域名称、配置的资源池总数、已部署虚机(已部署/预留总量)、CPU(已用量/预留总量)和内存(已用量/预留总量)等。

          +

          4.8. 查看AWS云平台资源使用情况

          +

          在添加AWS云平台成功之后,点击云平台名称或选中云平台后点击「编辑」,会进入云平台「概况」页面,点击「资源信息」,会显示当前AWS云平台的整体资源情况:包括区域名称、配置的资源池总数、已部署虚机(已部署/预留总量)、CPU(已用量/预留总量)和内存(已用量/预留总量)等。

          +

          4.9. 查看Azure云平台资源使用情况

          +

          在添加Azure云平台成功之后,点击云平台名称或选中云平台后点击「编辑」,会进入云平台「概况」页面,点击「资源信息」,会显示当前Azure云平台的整体资源情况:包括区域名称、配置的资源池总数、已部署虚机(已部署/预留总量)、CPU(已用量/预留总量)、内存(已用量/预留总量)等。

          +

          5. 删除云平台

          +

          在左边导航选择「基础设施」,选择二级菜单「云平台管理」。在左侧管理菜单选择需要修改的云平台类型,然后选中云平台,点击「删除」然后确认即可。若仍存在关联到这个云平的资源池,则不能删除。

          + + +
          + +
          +
          +
          + +

          results matching ""

          +
            + +
            +
            + +

            No results matching ""

            + +
            +
            +
            + +
            +
            + +
            + + + + + + + + + + + + + + +
            + + +
            + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git "a/AdminDoc/03\345\237\272\347\241\200\350\256\276\346\226\275\347\256\241\347\220\206/\344\272\221\345\271\263\345\217\260\347\256\241\347\220\206.md" "b/AdminDoc/03\345\237\272\347\241\200\350\256\276\346\226\275\347\256\241\347\220\206/\344\272\221\345\271\263\345\217\260\347\256\241\347\220\206.md" new file mode 100644 index 0000000..cf1bc40 --- /dev/null +++ "b/AdminDoc/03\345\237\272\347\241\200\350\256\276\346\226\275\347\256\241\347\220\206/\344\272\221\345\271\263\345\217\260\347\256\241\347\220\206.md" @@ -0,0 +1,511 @@ + + + + +**云平台管理** + + +系统管理员和租户管理员在「基础设施」-「云平台管理」页面内可以添加vSphere、VMware +NSX、OpenStack、PowerVC、Hyper-V、CloudView、EMC +SCP、NFS、物理服务器、Kubernetes、Docker、NFS、阿里云、阿里专有云、腾讯云、青云、AWS、Azure等不同厂商的云平台以及F5负载均衡器和ACI网络。云平台创建完成后还可进行编辑和删除。 + +# 添加云平台 + +当接入云平台时,为了保障云主机的安全性,公有云(包括阿里云、腾讯云、AWS)在API调用时均需要验证访问者的身份,以确保访问者具有相关权限。公有云的验证方式通过Access +Key来实现。Access Key由云平台颁发给云主机的所有者,它由Access Key +ID和Access Key +Secret构成对应SmartCMP接入公有云云平台的访问密钥ID和访问密钥。 + +## 添加vSphere云平台 {#添加vSphere云平台} + +您可以根据下面的步骤来添加一个vSphere云平台: + +1. 在左边导航选择「基础设施」-「云平台管理」,在左边选择「vSphere」类型 + +2. 点击「添加」按钮 ,填入下列信息: + +|参数名称| 描述 | 示例| +|:------:|:------:|:-----:| +| 云名称| vSphere云平台名称 | 数据中心A\--vCenter| +| 用户名| vSphere用户名 | administrator\@vsphere.local +| 密码 | vSphere密码| 确认vSphere密码| +|地址| vCenter的IP地址| 192.168.x.x| +| 端口| API端口 | 443| +| 数据中心| 数据中心所在地| 上海| +| 关联VMware NSX云平台| NSX云平台(前提需要先添加VMware平台)| 选择对应的NSX云平台名称| + + 点击「验证」,验证连接成功后,点击「提交」, vSphere云平台入口已保存 + +## 添加VMware NSX平台 {#添加VMwareNSX平台} + +您可以根据下面的步骤来添加一个VMware NSX平台: + +1. 在左边导航选择「基础设施」-「云平台管理」,在左边选择「VMware + NSX」类型 + +2. 点击「添加」按钮 ,填入下列信息: + +参数名称| 描述| 示例 +:------:|:------:|:-----: +名称| VMware NSX名称| NSX +地址| VMware NSX地址| 192.168.xx.xxx +用户名| 用户名称| admin +密码| 密码 | 确认用户密码 + + 点击「验证」,验证连接成功后,点击「提交」, VMware NSX平台入口已保存 + +>「Note」 VMware NSX的使用必须在添加了vSphere云平台的基础上,添加成功vSphere云平台和VMware NSX平台后,需要在vSphere云平台中将NSX相关联。 + +## 添加OpenStack云平台 {#添加OpenStack云平台} + +您可以根据下面的步骤来添加一个OpenStack云平台: + +1. 在左边导航选择「基础设施」-「云平台管理」,在左边选择「OpenStack」类型 + +2. 点击「添加」按钮,填入下列信息: + +参数名称 | 描述 | 示例| + :------:|:------:|:-----: + 云名称| OpenStack云平台名称 | OpenStack + 认证URL| OpenStack keystone认证URL | http://xxx.xxx.xxx.x:500/v2.00 + API版本| 选择API版本:版本2 版本3 | 版本2 + 租户名称| 租户名称 |admin + 用户名| 用户名 | admin + 密码 | 密码 |确认用户密码 + 区域| 区域名称 |RegionOne + 数据中心 | 数据中心所在地 |上海 + + 点击「验证」,验证连接成功后,点击「提交」,OpenStack云平台入口已保存。 + +## 添加PowerVC云平台 {#添加PowerVC云平台} + +您可以根据下面的步骤来添加一个PowerVC云平台: + +1. 在左边导航选择「基础设施」-「云平台管理」,在左边选择「PowerVC」类型 + +2. 点击「添加」按钮,填入下列信息: + +参数名称 | 描述| 示例 + :------:|:------:|:-----: + 云名称| PowerVC云平台名称 | Power + 认证URL | PowerVC认证URL | http://xxx.xxx.xxx.x:500/v2 + 忽略SSL证书检查 | Disable_ssl_verification| 可选项,认证URL(HTTPS时可选) + 项目名称 | Project name | admin + 项目域 | Project domain name | Default + 用户名 | User name | admin + 密码 | Password | 确认密码 + 用户域| User domain | default + 区域 | Region | RegionOne + 数据中心| 数据中心所在地 | 上海 + + 点击「验证」,验证连接成功后,点击「提交」, PowerVC云平台入口已保存。 + +## 添加Hyper-V云平台 {#添加Hyper-V云平台} + +您可以根据下面的步骤来添加一个Hyper-V云平台: + +1. 在左边导航选择「基础设施」-「云平台管理」,在左边选择「Hyper-V」类型 + +2. 点击「添加」按钮 ,填入下表信息: + +3. 填写密码,点击「验证」,验证连接成功后,点击「提交」, + Hyper-V云平台入口已保存 + +参数名称 | 描述| 示例 +:------:|:------:|:-----: +云名称 | Hyper-V云平台名称 | Hyper-V +SCVMM地址 | Hyper-V SCVMM地址 | http://x.x.x.x:5985/wsman +SCVMM名称 | Hyper-V SCVMM名称| scvmm01.test.local +虚拟机存储路径| 虚拟机存储路径 | C:\\ClusterStorage\\Volume1 +用户名 | Hyper-V 用户名| administrator\@wintest +密码 | Hyper-V 密码 | 确认密码 + +## 添加CloudView云平台 {#添加CloudView云平台} + +您可以根据下面的步骤来添加一个CloudView云平台: + +1. 在左边导航选择「基础设施」-「云平台管理」,在左边选择「CloudView」类型 + +2. 点击「添加」按钮,填入下列信息: + +参数名称 | 描述 | 示例 + :------:|:------:|:-----: + 云名称 | CloudView名称 | CloudView + 认证URL | 认证URL |认证地址 + API版本| 选择API版本:版本2 版本3 |版本2 + 租户名称| 租户名称 |Tenant + 用户名| 用户名 | admin + 密码 | 密码 | 确认用户密码 + 区域 | Region | RegionOne + 数据中心| 数据中心所在地 |上海 + + 点击「验证」,验证连接成功后,点击「提交」, CloudView云平台入口已保存 + +## 添加物理服务器云平台 {#添加物理服务器云平台} + +您可以根据下面的步骤来添加一个物理服务器云平台: + +1. 在左边导航选择「基础设施」-「云平台管理」,在左边选择「物理服务器」类型 + +2. 点击「添加」按钮,填入下列信息: + +参数名称| 描述 | 示例 + :------:|:------:|:-----: + 云名称 | 物理服务器名称 | X86物理机 + 认证URL | 认证URL | http://x.x.x.x + 用户名 | 用户名 | admin + 密码 | 密码 | 确认用户密码 + + 点击「验证」,验证连接成功后,点击「提交」, 物理服务器云平台入口已保存 + +## 添加Kubernetes云平台 {#添加Kubernetes云平台} + +您可以根据下面的步骤来添加一个Kubernetes云平台: + +1. 在左边导航选择「基础设施」-「云平台管理」,在左边选择「Kubernetes」类型 + +2. 点击「添加」按钮,在「概况」页面填入下列信息: + + + 名称:输入Kubernetes的云平台名称 + + + 认证URL:输入云平台的URL信息 + + + CA证书:在kubectl的配置文件中,在 + .kube/config中找到certificate-authority文件 + + + 用户证书:在kubectl的配置文件中,在 + .kube/config中找到client-certificate文件 + + + 用户密钥:在kubectl的配置文件中,在 .kube/config中找到client-key文件 + + + Prometheus + 监控地址:若Kubernetes中已安装Prometheus,则可输入Prometheus + 监控地址,通过SmartCMP平台查看Kubernetes的监控数据 + +3. 点击「验证」,验证连接成功后,点击「提交」, + Kubernetes云平台入口已保存 + +4. 「容器镜像源」页面:可添加、编辑、删除容器镜像源 + + + 添加容器镜像源:选择类型(VMware Habor、Docker Trusted + Registry),填写名称、项目名称(VMware Habor + 类型)、URL等相关信息,选填描述,若该镜像属于公有镜像,则无需填写用户名密码;若该镜像属于私有镜像,则需填写用户名密码才能验证成功 + + + 编辑容器镜像源:选择一镜像,点击「编辑」,则可做相应修改 + + + 删除容器镜像源:选择一镜像,点击「删除」,则可做删除镜像源 + +## 添加Docker云平台 {#添加Docker云平台} + +您可以根据下面的步骤来添加一个Docker云平台: + +1. 在左边导航选择「基础设施」-「云平台管理」,在左边选择「Docker」类型 + +2. 点击「添加」按钮,填入下列信息: + +参数名称| 描述| 示例 + :------:|:------:|:-----: + 云名称| Docker云平台名称| Docker + 传输协议| 传输协议 | http + 远程URL| 远程URL | http://x.x.x.x + 端口 | 端口 | 2375 + + 点击「验证」,验证连接成功后,点击「提交」, Docker云平台入口已保存 + +## 添加NFS云平台 {#添加NFS云平台} + +您可以根据下面的步骤来添加一个NFS云平台: + +1. 在左边导航选择「基础设施」-「云平台管理」,在左边选择「NFS」类型 + +2. 点击「添加」按钮,填入下列信息: + +参数名称 | 描述| 示例 + :------:|:------:|:-----: + 云名称 | NFS云平台名称 | NFS + NFS服务器 | NFS服务器 | http://x.x.x.x + 用户名 | 用户名 | Username + 密码 | 密码 | Password + 确认密码 | 确认用户密码 | Password + + 点击「验证」,验证连接成功后,点击「提交」, NFS云平台入口已保存 + +## 添加阿里云平台 {#添加阿里云平台} + +您可以根据下面的步骤来添加一个阿里云平台: + + 在左边导航选择「基础设施」-「云平台管理」,在左边选择「阿里云」类型 + + 点击「添加」按钮,填入下列信息: + +参数名称 | 描述 | 示例 + :------:|:------:|:-----: + 云名称 | 阿里云云平台名称 | Aliyun + 访问密钥ID | 阿里云访问密钥ID | 获取方式见下文 + 访问密钥 | 阿里云访问密钥 | 获取方式见下文 + + 阿里云AccessKey获取方式 + +>「Note」 获取Access Key Secret:登录您的阿里云管理控制台,点击页面右上角个人信息,展开面板,选择里面的"accesskeys",或者您也可以直接登录访问https://ak-console.aliyun.com,进入AccessKeys管理界面,查看您的AccessKey列表,如果当前列表为空,您也可以创建一个; +>「Note」 获取Access Key ID:阿里云账号ID是阿里云分配给每个用户的唯一识别码,不可更改,格式为16位数字,如:102462945332\*\*\*\*(为避免与真实用户巧合,后4位数字省略),用户要查看自己的阿里云账号ID,请在登录状态下访问阿里云账号"安全设置",地址:https://account.console.aliyun.com/secure; 在打开的"安全设置"页面中,查找自己的账号ID + + 点击「验证」,验证连接成功后,点击「提交」, 阿里云平台入口已保存 + +## 添加阿里专有云平台 {#添加阿里专有云平台} + +您可以根据下面的步骤来添加一个阿里专有云平台(Apsara): + +1. 在左边导航选择「基础设施」-「云平台管理」,在左边选择「阿里专有云」类型 + +2. 点击「添加」按钮,填入下列信息: + +参数名称 | 描述 | 示例 +:------:|:------:|:-----: +云名称| 阿里专有云云平台名称| Aliyun专有云 +访问密钥ID| 阿里云访问密钥ID| 获取方式见下文 +访问密钥 | 阿里云访问密钥 | 获取方式见下文 + + 点击「验证」,验证连接成功后,点击「提交」, 阿里专有云平台入口已保存 + +## 添加腾讯云平台 {#添加腾讯云平台} + +您可以根据下面的步骤来添加一个腾讯云平台: + +1. 在左边导航选择「基础设施」-「云平台管理」,在左边选择「腾讯云」类型 + +2. 点击「添加」按钮,填入下列信息: + +参数名称 | 描述 | 示例 + :------:|:------:|:-----: + 云名称 | 腾讯云云平台名称| TenantCloud + 访问密钥ID | 腾讯云访问密钥ID | 获取方式见下文 + 访问密钥 | 腾讯云访问密钥 | 获取方式见下文 + 区域 | 区域名称 | 华东地区 + + 类似阿里云Access + Key,腾讯云为API服务提供了一套API密钥验证机制,API密钥由腾讯云颁发给云主机的所有者,它由 + Secret ID 和 Secret Key + 组成。对应SmartCMP接入腾讯云平台的访问密钥ID和访问密钥。 + +>「Note」 获取方式: 登录您的腾讯云控制台,点击左上角"云产品",在弹出的界面中点击"云API密钥",或者您也可以直接登录访问https://console.qcloud.com/capi 进入"云API密钥"管理界面,您将看到您的API密钥列表,API密钥由APPID、SecretId及SecretKey组成,如果该列表为空,请点击"新建密钥"创建一个; +>「Note」 腾讯云账号ID是腾讯云分配给每个用户的唯一识别码,用户要查看自己的腾讯云账号ID,请在登录状态下访问"账户信息",地址:https://console.qcloud.com/developer; + + 点击「验证」,验证连接成功后,点击「提交」, 腾讯云平台入口已保存 + +## 添加青云云平台 {#添加青云云平台} + +支持青云公有和私有两种类型的云平台对接。您可以根据下面的步骤来添加一个青云平台: + +1. 在左边导航选择「基础设施」-「云平台管理」,在左边选择「青云」类型 + +2. 点击「添加」按钮,填入下列信息: + +参数名称 | 描述 | 示例 + :------:|:------:|:-----: + 云名称 | 青云云平台名称| QingCloud + 访问密钥ID| 青云访问密钥ID | 获取方式见下文 + 访问密钥 | 青云访问密钥 | 获取方式见下文 + 类型 | 选择私有或公有 | 私有/公有 + API URL | 若选择私有,需要提供青云私有云API URL | http://x.x.x.x + + 类似阿里云Access + Key,青云公有云为API服务提供了一套API密钥验证机制,通过这个密钥,用户可以将青云中的云资源导入到平台。API密钥由青云颁发给云主机的所有者,它由qy_access_key_id和 + qy_secret_access_key组成。 + + + +>「Note」 登录您的青云QingCloud控制台,点击左侧菜单中的"API密钥",进入API密钥管理页面,或者您也可以直接登录访问[https://console.qingcloud.com/access_keys/](https://console.qingcloud.com/access_keys/);点击创建按钮,弹出"新建API密钥"窗口,输入名称,如:云服务,点击"提交"按钮;在弹出的"下载密钥"窗口,点击下载按钮,将密钥文件:access_key.csv下载到本地。请注意,API密钥的下载链接只会出现一次,如果您创建时没有下载,请重新创建一个新的API密钥; 使用记事本打开文件:access_key.csv,可以看到API密钥信息,qy_access_key_id和 qy_secret_access_key + +点击「验证」,验证连接成功后,点击「提交」, 青云平台入口已保存 + +## 添加AWS平台 {#添加AWS平台} + +您可以根据下面的步骤来添加一个AWS平台: + +1. 在左边导航选择「基础设施」-「云平台管理」,在左边选择「AWS」类型 + +2. 点击「添加」按钮,填入下列信息: + +参数名称 | 描述 | 示例 +:------:|:------:|:-----: + 云名称 | AWS平台名称 | AWS平台 + 访问密钥ID | AWS访问密钥ID | 获取方式见下文 + 访问密钥 | AWS访问密钥 |获取方式见下文 + + 亚马逊AWS访问密钥(即Access Key)是AWS用户在通过API访问云资源时的确认用户身份的凭证,SmartCMP正是通过API来管理AWS云资源,因此用户首先需要获取AWS访问密钥(Access Key)才可以将资源纳入到平台中进行管理,访问密钥(Access Key)由亚马逊AWS颁发给云主机的所有者,它由访问秘钥ID(Access Key ID)和私有访问秘钥(Secret Access Key)构成。 + +>「Note」 登录AWS管理控制台 使用AWS主账号(或者是拥有AdministratorAccess管理策略权限的子账号)登录管理控制台,点击"安全&身份"中的"管理用户访问和加密密钥(Identity& Access Management)",进入IAM控制面板; 查看用户列表,进入IAM控制面板后,点击"用户",查看所有用户列表; + +>「Note」 查看用户安全证书, 要将云资源导入到平台,要确保访问密钥(Access Key)有足够的资源权限,因此请选定一个有相应权限的用户,点击用户名,进入该用户详情页面后,点击"安全证书"页签;创建访问密钥 请点击"创建访问密钥",将打开密钥信息窗口。需要注意的是,在AWS控制台中,用户仅有一次查看访问密钥的机会,因此请务必在打创建访问密钥成功后,将密钥信息妥善保存; 图中的访问秘钥ID即导入云主机时用到的的Access Key ID,私有访问秘钥即Secret Access Key(默认不显示,点击"显示"链接); + +点击「验证」,验证连接成功后,点击「提交」, AWS平台入口已保存 + +## 添加Azure云平台 {#添加Azure云平台} + +您可以根据下面的步骤来添加一个Azure云平台: + +1. 在左边导航选择「基础设施」-「云平台管理」,在左边选择「Azure」类型 + +2. 点击「添加」按钮,填入下列信息: + +参数名称| 描述 | 示例 +:------:|:------:|:-----: + 云名称 | Azure云平台名称| Azure + 客户机ID | Azure客户机地址| 获取方式见下文 + 访问密钥 | 租户名 | 获取方式见下文 + 访问域 | 用户名 | 获取方式见下文 + 订阅ID | 凭证之一 | 获取方式见下文 + + 事实上,微软Azure并没有一个所谓的"API访问凭证"的概念,我们需要通过它的"Active + Directory"中的应用程序Client信息来进行API的访问。而且相较其它云厂商而言,微软Azure的API访问凭证略显复杂,且需要通过多个步骤获取它由订阅(Subscription)ID、客户机ID和访问密钥构成。 + + + 获取微软Azure的访问域: + +>「Note」 在Azure控制台中进入Azure Active Directory,再点击二级菜单"属性";在Active Directory属性页面,我们可以看到"目录ID",该目录ID即为Azure的访问域; + + 获取订阅ID: + +>「Note」 您在购买Azure产品之前,必须先创建一个订阅,而后需要在这个订阅下购买云资源,云资源不能跨订阅访问。因此,当您存在多个订阅时,请您确保输入的订阅ID是您需要导入的云资源所属订阅,否则可能会出现无法列出云资源的情况。 登录Azure控制台,在左侧菜单选择"成本管理+计费"(菜单顺序是可自定义调整的),在"Overview"中,找到您要导入的云资源所属订阅,获取"订阅ID"。如果您有多个订阅,都希望通过平台来管理,那么请创建多个云账户分批导入; + + + + 获取客户机ID和访问密钥: +>「Note」 在[Azure Active Directory]中,点击二级菜单"[应用注册]",将会列出现有的所有应用程序,在应用程序(客户端)ID处即可找到 客户机ID 点击该应用程序进入详情页面,先点击左侧"[证书和密码]"按钮,再找到右侧的"新增客户端密码",添加客户端密码,添加成功后,可查看到访问密钥。 + + 点击「验证」,验证连接成功后,点击「提交」,Azure云平台入口已保存 + +## 添加F5 BIG-IP云平台 {#添加F5BIGIP云平台} + +您可以根据下面的步骤来添加一个F5 BIG-IP云平台: + +1. 在左边导航选择「基础设施」-「云平台管理」,在左边选择「F5 + BIG-IP」类型 + +2. 点击「添加」按钮,填入下列信息: + +参数名称 | 描述 | 示例 +:------:|:------:|:-----: + 云名称 | F5 BIG-IP云平台名称 | F5 BIG-IP + 认证URL | F5 BIG-IP认证URL | https://192.168.1.171 + 用户名| 用户名 | Admin + 密码| 密码 | 确认用户密码 + + 点击「验证」,验证连接成功后,点击「提交」, F5 + BIG-IP云平台入口已保存 + +## 添加CISCO ACI平台 {#添加CISCOACI平台} + +您可以根据下面的步骤来添加一个CISCO ACI云平台: + +1. 在左边导航选择「基础设施」-「云平台管理」,在左边选择「CISCO + ACI」类型 + +2. 点击「添加」按钮,填入下列信息: + +参数名称 | 描述 | 示例 +:------:|:------:|:-----: + 名称 | CISCO ACI平台名称 | CISCO ACI平台 + 认证URL | CISCO ACI认证URL | http://x.x.x.x:5000/ + 租户名称| 租户名 | Tenant + 用户名| 用户名 | Username + 密码 | 密码 | 确认用户密码 + + 点击「验证」,验证连接成功后,点击「提交」, CISCO + ACI云平台入口已保存 + + +## 添加金山云平台 {#添加金山云平台} + +您可以根据下面的步骤来添加一个金山云平台: + +1. 在左边导航选择「基础设施」-「云平台管理」,在左边选择「金山云」类型 +2. 点击「添加」按钮,填入下列信息: + +参数名称 | 描述 |示例 +:------:|:------:|:-----: +云名称|云平台名称|金山云 +访问密钥ID|金山云访问密钥ID| 获取方式类似[阿里云](https://cloudchef.github.io/doc/AdminDoc/03基础设施管理/云平台管理.html#添加阿里云平台) +访问密钥|金山云访问密钥|获取方式类似[阿里云](https://cloudchef.github.io/doc/AdminDoc/03基础设施管理/云平台管理.html#添加阿里云平台) + +点击「验证」,验证连接成功后,点击「提交」, 金山云平台入口已保存。 + +## 添加UCloud云平台 +为了管理Ucloud平台内的资源,需要您提供Ucloud访问密钥ID和访问密钥来访问您的Ucloud。获取方式类似[阿里云](https://cloudchef.github.io/doc/AdminDoc/03基础设施管理/云平台管理.html#添加阿里云平台) +基于通用组件实现Ucloud的计算、网络和存储节点的接入 + + + + + + +# 查看当前租户已添加的云平台 + +您可以根据下面的步骤来查看当前租户已添加的云平台: + +1. 在左边导航选择「基础设施」-「云平台管理」 + +2. 在左侧选择不同的云平台,将在右侧看到已添加的云平台信息 + +3. 可在该页面对云平台做添加、编辑和删除等操作 + +4. 点击云平台的名称,进入云平台「概况」界面,点击「资源信息」标签页,可查看云平台总体资源使用情况 + +# 修改云平台信息 + +在左边导航选择「基础设施」-「云平台管理」, +在左侧管理菜单选择需要修改的云平台类型,然后在右侧点击云平台名称或选中云平台后点击「编辑」,则出现云平台编辑界面。修改云平台信息后点击「验证」-「提交」即可。 + +#查看云平台资源使用情况 + +成功添加云平台后,可以通过系统查看云平台的总体资源使用情况。在左边导航选择「基础设施」-「云平台管理」,根据选择的云平台查看资源使用情况。 + +## 查看vSphere云平台资源使用情况 {#查看vsphere云平台资源使用情况} + +在添加vSphere云平台成功之后,点击云平台名称或选中云平台后点击「编辑」,会进入云平台「概况」页面,点击「资源信息」,会显示当前vSphere云平台的整体资源情况: + + + 数据总览:显示该云平台下资源概况,如物理主机数量,群集数量,数据存储数量、标准交换机数量和虚机总数 + + + 「数据中心概况」:显示该数据中心下的群集、主机、虚拟机个数以及CPU、内存、存储等的已用量和总量百分比 + + + 「群集和主机概况」:显示群集名称,及该群集下的云主机名称、所属数据中心,CPU总数,CPU、内存、存储的已用量和总量百分比 + + + 「数据存储概况」:显示数据存储名称、所属数据中心、及存储的已用量、总量和申请总量的百分比 + + + 「vSphere资源池概况」:vSphere资源池名称、所属群集、CPU已用量和总量的百分比,内存的已用量和总量的百分比 + +## 查看OpenStack云平台资源使用情况 {#查看openstack云平台资源使用情况} + +在添加OpenStack云平台成功之后,点击云平台名称或选中云平台后点击「编辑」,会进入云平台「概况」页面,点击「资源信息」,会显示当前OpenStack云平台的整体资源情况:包括可用区名称、资源池总数、已部署虚机、CPU、内存、存储等。 + +## 查看PowerVC云平台资源使用情况 {#查看powervc云平台资源使用情况} + +在添加PowerVC云平台成功之后,点击云平台名称或选中云平台后点击「编辑」,会进入云平台「概况」页面,点击「资源信息」,会显示当前PowerVC云平台的整体资源情况:包括可用区名称、资源池总数、已部署虚机(已部署/预留总量)、CPU、内存、存储等。 + +## 查看Kubernetes云平台资源使用情况 {#查看kubernetes云平台资源使用情况} + +在添加Kubernetes云平台成功之后(需要在Kubernetes中安装prometheus,并在云平台输入prometheus监控地址),点击云平台名称或选中云平台后点击「编辑」,会进入云平台「概况」页面,点击「资源信息」,会显示当前Kubernetes云平台的整体资源情况:包括集群内存使用率、集群CPU使用率、集群文件系统使用率等。 + +## 查看阿里云云平台资源使用情况 {#查看阿里云云平台资源使用情况} + +在添加阿里云云平台成功之后,点击云平台名称或选中云平台后点击「编辑」,会进入云平台「概况」页面,点击「资源信息」,会显示当前阿里云云平台的整体资源情况:包括区域名称、配置的资源池总数、已部署虚机(已部署/预留总量)、CPU(已用量/预留总量)和内存(已用量/预留总量)等。 + +## 查看腾讯云云平台资源使用情况 {#查看腾讯云云平台资源使用情况} + +在添加腾讯云云平台成功之后,点击云平台名称或选中云平台后点击「编辑」,会进入云平台「概况」页面,点击「资源信息」,会显示当前腾讯云云平台的整体资源情况:包括区域名称、配置的资源池总数、已部署虚机(已部署/预留总量)、CPU(已用量/预留总量)和内存(已用量/预留总量)等。 + +## 查看青云云平台资源使用情况 {#查看青云云平台资源使用情况} + +在添加青云云平台成功之后,点击云平台名称或选中云平台后点击「编辑」,会进入云平台「概况」页面,点击「资源信息」,会显示当前青云云平台的整体资源情况:包括区域名称、配置的资源池总数、已部署虚机(已部署/预留总量)、CPU(已用量/预留总量)和内存(已用量/预留总量)等。 + +## 查看AWS云平台资源使用情况 {#查看aws云平台资源使用情况} + +在添加AWS云平台成功之后,点击云平台名称或选中云平台后点击「编辑」,会进入云平台「概况」页面,点击「资源信息」,会显示当前AWS云平台的整体资源情况:包括区域名称、配置的资源池总数、已部署虚机(已部署/预留总量)、CPU(已用量/预留总量)和内存(已用量/预留总量)等。 + +## 查看Azure云平台资源使用情况 {#查看azure云平台资源使用情况} + +在添加Azure云平台成功之后,点击云平台名称或选中云平台后点击「编辑」,会进入云平台「概况」页面,点击「资源信息」,会显示当前Azure云平台的整体资源情况:包括区域名称、配置的资源池总数、已部署虚机(已部署/预留总量)、CPU(已用量/预留总量)、内存(已用量/预留总量)等。 + +# 删除云平台 + +在左边导航选择「基础设施」,选择二级菜单「云平台管理」。在左侧管理菜单选择需要修改的云平台类型,然后选中云平台,点击「删除」然后确认即可。若仍存在关联到这个云平的资源池,则不能删除。 \ No newline at end of file diff --git "a/AdminDoc/03\345\237\272\347\241\200\350\256\276\346\226\275\347\256\241\347\220\206/\345\221\275\345\220\215\350\247\204\345\210\231.html" "b/AdminDoc/03\345\237\272\347\241\200\350\256\276\346\226\275\347\256\241\347\220\206/\345\221\275\345\220\215\350\247\204\345\210\231.html" new file mode 100644 index 0000000..14fc71f --- /dev/null +++ "b/AdminDoc/03\345\237\272\347\241\200\350\256\276\346\226\275\347\256\241\347\220\206/\345\221\275\345\220\215\350\247\204\345\210\231.html" @@ -0,0 +1,1060 @@ + + + + + + + 命名规则 · 发行说明 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
            +
            + + + + + + + + +
            + +
            + +
            + + + + + + + + +
            +
            + +
            +
            + +
            + +

            命名规则

            +

            命名后缀是业务组中,服务部署名命名规则、云主机名命名规则、Windows主机名命名规则以及Linux主机名命名规则中后缀的组成部分。租户管理员创建的命名后缀可共享给所有业务组使用,业务组管理员只能创建本业务组使用的命名后缀。

            +

            查看当前命名后缀:在左边导航选择「基础设施」,选择二级菜单「命名后缀」,则显示当前的命名后缀。显示后缀名称、类型(数字或随机字符串)、长度、初始化序列、业务组等

            +

            1. 添加命名后缀

            +
              +
            1. 点击「添加」,输入命名后缀名称、选择业务组、类型。业务组可选全部业务组,类型可以选择数字或者随机字符串

              +
            2. +
            3. 数字:填写长度或初始化序号

              +
            4. +
            5. 随机字符串:输入长度

              +
            6. +
            7. 点击「保存」,命名后缀添加成功

              +
            8. +
            +

            2. 编辑命名后缀

            +

            选择某命名后缀,点击「编辑」,进行编辑后,点击「保存」。或可直接点击名称进入编辑页面。

            +

            3. 删除命名后缀

            +

            选择某命名后缀,点击「删除」,可以删除尚未使用的命名后缀。

            + + +
            + +
            +
            +
            + +

            results matching ""

            +
              + +
              +
              + +

              No results matching ""

              + +
              +
              +
              + +
              +
              + +
              + + + + + + + + + + + + + + +
              + + +
              + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git "a/AdminDoc/03\345\237\272\347\241\200\350\256\276\346\226\275\347\256\241\347\220\206/\345\221\275\345\220\215\350\247\204\345\210\231.md" "b/AdminDoc/03\345\237\272\347\241\200\350\256\276\346\226\275\347\256\241\347\220\206/\345\221\275\345\220\215\350\247\204\345\210\231.md" new file mode 100644 index 0000000..1ba35f3 --- /dev/null +++ "b/AdminDoc/03\345\237\272\347\241\200\350\256\276\346\226\275\347\256\241\347\220\206/\345\221\275\345\220\215\350\247\204\345\210\231.md" @@ -0,0 +1,24 @@ +**命名规则** + + +命名后缀是业务组中,服务部署名命名规则、云主机名命名规则、Windows主机名命名规则以及Linux主机名命名规则中后缀的组成部分。租户管理员创建的命名后缀可共享给所有业务组使用,业务组管理员只能创建本业务组使用的命名后缀。 + +查看当前命名后缀:在左边导航选择「基础设施」,选择二级菜单「命名后缀」,则显示当前的命名后缀。显示后缀名称、类型(数字或随机字符串)、长度、初始化序列、业务组等 + +#添加命名后缀 {#添加命名后缀 .afff6} + +1. 点击「添加」,输入命名后缀名称、选择业务组、类型。业务组可选全部业务组,类型可以选择数字或者随机字符串 + +- 数字:填写长度或初始化序号 + +- 随机字符串:输入长度 + +2. 点击「保存」,命名后缀添加成功 + +# 编辑命名后缀 {#编辑命名后缀 .afff6} + +选择某命名后缀,点击「编辑」,进行编辑后,点击「保存」。或可直接点击名称进入编辑页面。 + +# 删除命名后缀 {#删除命名后缀 .afff6} + +选择某命名后缀,点击「删除」,可以删除尚未使用的命名后缀。 diff --git "a/AdminDoc/03\345\237\272\347\241\200\350\256\276\346\226\275\347\256\241\347\220\206/\345\257\206\351\222\245\345\257\271.html" "b/AdminDoc/03\345\237\272\347\241\200\350\256\276\346\226\275\347\256\241\347\220\206/\345\257\206\351\222\245\345\257\271.html" new file mode 100644 index 0000000..658b278 --- /dev/null +++ "b/AdminDoc/03\345\237\272\347\241\200\350\256\276\346\226\275\347\256\241\347\220\206/\345\257\206\351\222\245\345\257\271.html" @@ -0,0 +1,1054 @@ + + + + + + + 密钥对 · 发行说明 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
              +
              + + + + + + + + +
              + +
              + +
              + + + + + + + + +
              +
              + +
              +
              + +
              + +

              密钥对

              +

              密钥对是用户访问创建的虚拟机,安装代理等过程的登录凭证。基础设施管理员、租户管理员和sysadmin可以通过密钥对界面对密钥对进行管理,包括创建、导入、下载和删除。

              +

              基础设施管理员和租户管理员只能看见自己创建和导入的密钥对,sysadmin能看见该租户下所有的密钥对。

              +

              1. 新建密钥

              +

              基础设施管理员、租户管理员和sysadmin可以新建密钥。

              +

              左侧导航栏选择「基础设施」-「密钥对」,点击「新建密钥」。输入密钥名称(只能是数字或字母),选择算法(RSA)以及长度,目前支持1024、2048和4096三个长度的密钥生成。点击「提交」,将在密钥对列表界面看到生成的密钥对。

              +

              2. 导入密钥

              +

              可导入私钥和公钥在系统中保存以便随后使用(例如已经在虚拟机镜像中配置好对应的公钥)。点击「导入密钥」,输入密钥名称,填入私钥或/和公钥,点击「导入」,导入时,私钥或公钥必填一项。导入成功后,将在列表界面看到导入的密钥。

              +

              3. 下载私钥

              +

              若公钥存在私钥(新建密钥公私密钥都存在)在列表中选择某密钥对,「下载私钥」按钮将变为可用,点击下载即可下载公钥所对应的私钥。

              +

              4. 使用密钥对

              +

              OpenStack虚拟机模板中,若选择密钥对的验证类型,将选择系统中已存在的密钥对(新建生成或导入的),这里将只能选择公钥,私钥会被过滤。

              + + +
              + +
              +
              +
              + +

              results matching ""

              +
                + +
                +
                + +

                No results matching ""

                + +
                +
                +
                + +
                +
                + +
                + + + + + + + + + + + + + + +
                + + +
                + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git "a/AdminDoc/03\345\237\272\347\241\200\350\256\276\346\226\275\347\256\241\347\220\206/\345\257\206\351\222\245\345\257\271.md" "b/AdminDoc/03\345\237\272\347\241\200\350\256\276\346\226\275\347\256\241\347\220\206/\345\257\206\351\222\245\345\257\271.md" new file mode 100644 index 0000000..9dbeae5 --- /dev/null +++ "b/AdminDoc/03\345\237\272\347\241\200\350\256\276\346\226\275\347\256\241\347\220\206/\345\257\206\351\222\245\345\257\271.md" @@ -0,0 +1,24 @@ +**密钥对** + + +密钥对是用户访问创建的虚拟机,安装代理等过程的登录凭证。基础设施管理员、租户管理员和sysadmin可以通过密钥对界面对密钥对进行管理,包括创建、导入、下载和删除。 + +基础设施管理员和租户管理员只能看见自己创建和导入的密钥对,sysadmin能看见该租户下所有的密钥对。 + +# 新建密钥 + +基础设施管理员、租户管理员和sysadmin可以新建密钥。 + +左侧导航栏选择「基础设施」-「密钥对」,点击「新建密钥」。输入密钥名称(只能是数字或字母),选择算法(RSA)以及长度,目前支持1024、2048和4096三个长度的密钥生成。点击「提交」,将在密钥对列表界面看到生成的密钥对。 + +# 导入密钥 + +可导入私钥和公钥在系统中保存以便随后使用(例如已经在虚拟机镜像中配置好对应的公钥)。点击「导入密钥」,输入密钥名称,填入私钥或/和公钥,点击「导入」,导入时,私钥或公钥必填一项。导入成功后,将在列表界面看到导入的密钥。 + +# 下载私钥 + +若公钥存在私钥(新建密钥公私密钥都存在)在列表中选择某密钥对,「下载私钥」按钮将变为可用,点击下载即可下载公钥所对应的私钥。 + +# 使用密钥对 + +OpenStack虚拟机模板中,若选择密钥对的验证类型,将选择系统中已存在的密钥对(新建生成或导入的),这里将只能选择公钥,私钥会被过滤。 diff --git "a/AdminDoc/03\345\237\272\347\241\200\350\256\276\346\226\275\347\256\241\347\220\206/\347\211\251\347\220\206\344\270\273\346\234\272\347\256\241\347\220\206.html" "b/AdminDoc/03\345\237\272\347\241\200\350\256\276\346\226\275\347\256\241\347\220\206/\347\211\251\347\220\206\344\270\273\346\234\272\347\256\241\347\220\206.html" new file mode 100644 index 0000000..9a8d608 --- /dev/null +++ "b/AdminDoc/03\345\237\272\347\241\200\350\256\276\346\226\275\347\256\241\347\220\206/\347\211\251\347\220\206\344\270\273\346\234\272\347\256\241\347\220\206.html" @@ -0,0 +1,1058 @@ + + + + + + + 物理主机管理 · 发行说明 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
                +
                + + + + + + + + +
                + +
                + +
                + + + + + + + + +
                +
                + +
                +
                + +
                + +

                物理主机管理

                +

                您可以在左边导航选择「基础设施」,选择二级菜单「物理主机信息」,可以添加物理主机信息,对在云平台和暂时不在云平台上的物理机进行管理。

                +

                1. 添加/编辑物理主机

                +

                进入点击「基础设施」-「物理主机信息」,点击「添加」按钮,选择平台(目前支持OpenStack、vSphere、物理服务器、PowerVC),输入物理主机相关信息:

                +
                  +
                • 基本信息:物理机名、IP地址、云平台、平台类型,点击「保存」,物理主机添加成功

                  +
                • +
                • 物理机信息:填写物理机的相关信息,如制造商、型号、MAC地址等,全部均选填

                  +
                • +
                +

                对OpenStack和vSphere,如果所填的IP地址和实际云平台中的某台主机IP地址匹配,则会自动抓取物理主机资源信息,在下次编辑物理主机时在基本信息标签页可见。

                +

                SmartCMP会每天自动同步vSphere和OpenStack云平台下的所有物理主机信息到列表

                +

                2. 查看物理主机信息

                +

                物理主机添加成功后,可在物理主机列表界面查看所有已添加的物理主机信息,点击名字可进入基本信息页面,通过输入的信息获取到该物理主机的资源信息、存储信息以及网络信息等。

                +

                3. 删除物理主机信息

                +

                在物理主机列表页面,选择某物理主机,点击菜单栏中的「删除」,确认后将删除该物理主机信息。

                + + +
                + +
                +
                +
                + +

                results matching ""

                +
                  + +
                  +
                  + +

                  No results matching ""

                  + +
                  +
                  +
                  + +
                  +
                  + +
                  + + + + + + + + + + + + + + +
                  + + +
                  + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git "a/AdminDoc/03\345\237\272\347\241\200\350\256\276\346\226\275\347\256\241\347\220\206/\347\211\251\347\220\206\344\270\273\346\234\272\347\256\241\347\220\206.md" "b/AdminDoc/03\345\237\272\347\241\200\350\256\276\346\226\275\347\256\241\347\220\206/\347\211\251\347\220\206\344\270\273\346\234\272\347\256\241\347\220\206.md" new file mode 100644 index 0000000..c0e0657 --- /dev/null +++ "b/AdminDoc/03\345\237\272\347\241\200\350\256\276\346\226\275\347\256\241\347\220\206/\347\211\251\347\220\206\344\270\273\346\234\272\347\256\241\347\220\206.md" @@ -0,0 +1,24 @@ +**物理主机管理** + + +您可以在左边导航选择「基础设施」,选择二级菜单「物理主机信息」,可以添加物理主机信息,对在云平台和暂时不在云平台上的物理机进行管理。 + +# 添加/编辑物理主机 + +进入点击「基础设施」-「物理主机信息」,点击「添加」按钮,选择平台(目前支持OpenStack、vSphere、物理服务器、PowerVC),输入物理主机相关信息: + +- 基本信息:物理机名、IP地址、云平台、平台类型,点击「保存」,物理主机添加成功 + +- 物理机信息:填写物理机的相关信息,如制造商、型号、MAC地址等,全部均选填 + +对OpenStack和vSphere,如果所填的IP地址和实际云平台中的某台主机IP地址匹配,则会自动抓取物理主机资源信息,在下次编辑物理主机时在基本信息标签页可见。 + +SmartCMP会每天自动同步vSphere和OpenStack云平台下的所有物理主机信息到列表 + +# 查看物理主机信息 + +物理主机添加成功后,可在物理主机列表界面查看所有已添加的物理主机信息,点击名字可进入基本信息页面,通过输入的信息获取到该物理主机的资源信息、存储信息以及网络信息等。 + +# 删除物理主机信息 + +在物理主机列表页面,选择某物理主机,点击菜单栏中的「删除」,确认后将删除该物理主机信息。 diff --git "a/AdminDoc/03\345\237\272\347\241\200\350\256\276\346\226\275\347\256\241\347\220\206/\350\231\232\346\213\237\346\234\272\346\250\241\346\235\277.html" "b/AdminDoc/03\345\237\272\347\241\200\350\256\276\346\226\275\347\256\241\347\220\206/\350\231\232\346\213\237\346\234\272\346\250\241\346\235\277.html" new file mode 100644 index 0000000..cc27ebf --- /dev/null +++ "b/AdminDoc/03\345\237\272\347\241\200\350\256\276\346\226\275\347\256\241\347\220\206/\350\231\232\346\213\237\346\234\272\346\250\241\346\235\277.html" @@ -0,0 +1,1413 @@ + + + + + + + 虚拟机模板 · 发行说明 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
                  +
                  + + + + + + + + +
                  + +
                  + +
                  + + + + + + + + +
                  +
                  + +
                  +
                  + +
                  + +

                  虚拟机模板

                  +

                  虚拟机模板是操作系统的抽象和标准化。平台支持创建虚拟机模板,一个操作系统可对应多个虚拟机模板。

                  +
                    +
                  • 虚拟机模板与云平台中的模板或镜像相关联,例如:vSphere vCenter中的模板、OpenStack平台上的镜像、公有云平台各个区域的操作系统(OS)镜像。

                    +
                  • +
                  • 在虚拟机模板中可配置SmartCMP两种代理的安装方式和账号信息,这两种代理是监控代理和自动化代理。

                    +
                  • +
                  +

                  SmartCMP一些自动化功能依赖自动化代理,例如:

                  +
                    +
                  • 蓝图带应用部署或添加磁盘

                    +
                  • +
                  • 服务配置初始化并挂载磁盘、创建新用户

                    +
                  • +
                  • 部分虚机运维操作(包括重置密码,执行脚本,应用启动停止,添加、扩展Linux逻辑卷或Windows磁盘等)。

                    +
                  • +
                  +

                  创建虚拟机模板后,可在服务配置中直接指定。SmartCMP可根据蓝图对象所在的云平台自动识别虚拟机模板。

                  +
                  +

                  「Note」请使用租户管理员或基础设施管理员角色登录SmartCMP平台。租户管理员可为某用户指定基础设施管理员角色。系统默认创建了3个虚拟机模板:Windows2012 R2、Redhat 7、CentOS7,还需添加相应的云平台信息才可使用。下文为您介绍添加虚拟机模板。

                  +
                  +

                  1. 添加虚拟机模板

                  +

                  这里定义两个虚拟机模板:Windows 2012 R2和CentOS 7:

                  +

                  1.1. 添加Linux虚拟机模板

                  +
                    +
                  1. 选择「基础设施」-「虚拟机模板」,进入虚拟机模板列表界面。点击「添加」,输入操作系统名称,描述,选择系统类型Linux,点击「提交」

                    +
                  2. +
                  3. 点击「虚拟机模板」标签页,进入虚拟机模板列表界面

                    +
                  4. +
                  +

                  1.1.1. 添加vSphere虚拟机模板

                  +

                  在虚拟机模板列表界面,点击「添加」,输入虚拟机模板名称,选择一个vSphere云平台并做如下配置:

                  +

                  克隆模式:「完全克隆」或「链接克隆」

                  +
                  +

                  「Note」完全克隆是和原始虚拟机完全独立的一个拷贝,它不和原始虚拟机共享任何资源,可以脱离原始虚拟机独立使用;链接克隆需要和原始虚拟机共享同一虚拟磁盘文件,不能脱离原始虚拟机独立运行。但采用共享磁盘文件却大大缩短了创建克隆虚拟机的时间,同时还节省了宝贵的物理磁盘空间。

                  +
                  +
                    +
                  • 完全克隆: 模板:选择一个Linux CentOS模板

                    +
                  • +
                  • 链接克隆: 虚拟机:选择一个Linux CentOS 7的模板。 快照模式:默认"指定一个快照",可选择"申请时候选择"和"总是使用最新"这两种快照模式。选择"申请时候选择"将在服务申请的时候选择虚拟机快照。 快照:若快照模式选择"指定一个快照",将选择一个快照。 使用规范:选择「内建」(按需求选择无、内建或自定义规范,规范有助于防止在部署相同设置的虚机时产生冲突)

                    +
                  • +
                  • 模板中已启用SSH:勾选该选项,表示模板中已经启用和配置SSH,可以选择通过SSH的方式安装监控代理和自动化代理;默认SSH端口为22,如果模板中修改了SSH的端口,可输入模板中修改的SSH端口号

                    +
                  • +
                  • 用户名、密码:使用具有SSH权限的用户及其密码

                    +
                  • +
                  • 安装监控代理:无监控:若不安装监控代理,则平台的监控功能不可用。SSH安装监控代理:选择SSH安装的话,会通过SSH的方式访问虚拟机并安装监控代理;设置监控端口,默认是9100。预安装监控代理:预安装是指模板中已经安装了监控代理。云平台监控:从VCenter上直接读取虚机的监控数据,不需要安装监控代理

                    +
                  • +
                  • 安装自动化代理:不安装:若不安装自动化代理,则平台的一些自动化功能将无法使用,例如蓝图带应用部署或添加磁盘,某些虚拟机的操作如重置密码,执行脚本等等。SSH安装:选择SSH安装,会通过SSH的方式访问虚拟机并安装自动化代理。预安装:预安装是指模板中已经安装了自动化代理

                    +
                  • +
                  + +
                    +
                  • 管理员用户:输入模板中配置的管理员用户名

                    +
                  • +
                  • 管理员密码:输入模板中配置的管理员密码

                    +
                  • +
                  • 点击「提交」,提示虚拟机模板已创建。点击「保存」,提示虚拟机模板已更新

                    +
                  • +
                  +

                  1.1.2. 添加OpenStack虚拟机模板

                  +
                    +
                  1. 在虚拟机模板页面,点击「添加」,输入虚拟机模板名称,选择一个OpenStack云平台并做如下配置:

                    +
                  2. +
                  3. 启动源类型:从镜像启动、从快照启动、从云硬盘启动、从云硬盘快照启动

                    +
                  4. +
                  +
                    +
                  • 从镜像启动:选择镜像名称和快照模式;快照模式默认为"不使用快照",可选择"申请时候选择"和"总是使用最新的"。若选择"申请时候选择"将在服务申请时指定虚拟机快照

                    +
                  • +
                  • 从快照启动:选择快照名称

                    +
                  • +
                  • 从云硬盘启动:选择镜像名称和快照模式;快照模式默认为"不使用快照",可选择"申请时候选择"和"总是使用最新的"。若选择"申请时候选择"将在服务申请时指定虚拟机快照;若勾选"终止后删除",将在终止主机后删除硬盘。选择"从云硬盘启动"模式需要在服务配置时选择卷类型和配置卷大小

                    +
                  • +
                  • 从云硬盘快照启动:选择云硬盘快照名称,若勾选"终止后删除",将在终止主机后删除硬盘。选择"从云硬盘快照启动"模式需要在服务配置时选择卷类型和配置卷大小

                    +
                  • +
                  + +
                    +
                  • 虚拟机镜像:选择一个CentOS的模板

                    +
                  • +
                  • 安装监控和自动化代理的方式与vSphere的Linux模板相同,可配置SSH端口,此外SSH用户支持密钥方式(可在「基础设施」-「密钥对」中新建密钥或导入密钥)

                    +
                  • +
                  • 管理员用户名和密码:输入需要设置的操作系统管理员用户名和密码。

                    +
                  • +
                  • 点击「提交」,提示虚拟机模板已创建。点击「保存」,提示虚拟机模板已更新,此时这个Linux CentOS的操作系统,关联了2个虚拟机模板。在服务配置的时候,平台会自动选择与该服务相对应的虚拟机模板,无需重复设置。

                    +
                  • +
                  +

                  1.1.3. 添加Hyper-V虚拟机模板

                  +
                    +
                  1. 在虚拟机模板页面,点击「添加」,输入虚拟机模板名称,选择HyperV云平台名称,并对虚拟机模板做如下配置:

                    +
                  2. +
                  3. 基本信息:选择「操作系统名称」、描述、和系统类型(按需求选择Linux和Windows,这里选择Linux)

                    +
                  4. +
                  5. 模板:选择一个CentOS的模板

                    +
                  6. +
                  7. 编辑虚拟机模板:输入模板名称、云平台入口、模板中已启用SSH:勾选该选项,表示模板中已经启用和配置SSH(输入模板中配置的SSH端口),可以选择通过SSH方式安装监控代理和自动化代理

                    +
                  8. +
                  9. 监控方式:

                    +
                  10. +
                  + +
                    +
                  • 无监控:不安装监控代理,则平台的监控功能不可用

                    +
                  • +
                  • SSH安装监控代理:选择SSH安装的话,会通过SSH的方式访问虚拟机并安装监控代理;设置监控端口,默认是9100

                    +
                  • +
                  + +
                    +
                  • 安装自动化代理:
                  • +
                  + +
                    +
                  • 不安装:若不安装自动化代理,则平台的一些自动化功能将无法使用,例如蓝图带应用部署或添加磁盘,某些虚拟机的操作如重置密码,执行脚本等等

                    +
                  • +
                  • SSH按照自动化代理:选择SSH安装,会通过SSH的方式访问虚拟机并安装自动化代理

                    +
                  • +
                  + +
                    +
                  • 用户名:输入需要设置的用户名,例如: root

                    +
                  • +
                  • 密码:输入需要设置的管理员密码,例如:Passw0rd

                    +
                  • +
                  • 点击「提交」,提示虚拟机模板已创建。点击「保存」,提示虚拟机模板已更新

                    +
                  • +
                  +

                  1.1.4. 添加Azure虚拟机模板

                  +

                  在虚拟机模板页面,点击「添加」,输入虚拟机模板名称,选择Azure云平台名称,并对虚拟机模板做如下配置:

                  +
                    +
                  • 基本信息:选择「操作系统名称」、描述、和系统类型(按需求选择Linux和Windows,这里选择Linux)

                    +
                  • +
                  • 编辑虚拟机模板:输入模板名称、云平台入口、选择区域名称(例如:中国北部)、镜像名称(勾选允许修改时,在服务配置种可以修改镜像)

                    +
                  • +
                  • 监控方式:

                    +
                  • +
                  + +
                    +
                  • 无监控:不安装监控代理,则平台的监控功能不可用

                    +
                  • +
                  • SSH安装监控代理:选择SSH安装的话,会通过SSH的方式访问虚拟机并安装监控代理;设置监控端口,默认是9100

                    +
                  • +
                  • 云平台监控:从Azure云平台直接读取虚机的监控数据,不需要安装监控代理

                    +
                  • +
                  + +
                    +
                  • 安装自动化代理:
                  • +
                  + +
                    +
                  • 不安装:若不安装自动化代理,则平台的一些自动化功能将无法使用,例如蓝图带应用部署或添加磁盘,某些虚拟机的操作如重置密码,执行脚本等等

                    +
                  • +
                  • SSH按照自动化代理:选择SSH安装,会通过SSH的方式访问虚拟机并安装自动化代理

                    +
                  • +
                  + +
                    +
                  • 用户名:输入需要设置的用户名,例如: root

                    +
                  • +
                  • 密码:输入需要设置的管理员密码,例如:Passw0rd

                    +
                  • +
                  • 点击「提交」,提示虚拟机模板已创建。点击「保存」,提示虚拟机模板已更新

                    +
                  • +
                  +

                  1.2. 添加Windows虚拟机模板

                  +
                    +
                  1. 选择「基础设施」-「虚拟机模板」,进入虚拟机模板列表界面。点击「添加」,输入虚拟机模板名称,描述,选择系统类型:Windows,点击「提交」

                    +
                  2. +
                  3. 点击「虚拟机模板」标签页,进入虚拟机模板列表界面

                    +
                  4. +
                  +

                  1.2.1. 添加一个vSphere虚拟机模板

                  +
                    +
                  1. 在虚拟机模板页面,点击「添加」,输入虚拟机模板名称,选择一个vSphere云平台并做如下配置:

                    +
                  2. +
                  3. 克隆模式:「完全克隆」「链接克隆」

                    +
                    +

                    「Note」完全克隆是和原始虚拟机完全独立的一个拷贝,它不和原始虚拟机共享任何资源。可以脱离原始虚拟机独立使用;链接克隆需要和原始虚拟机共享同一虚拟磁盘文件,不能脱离原始虚拟机独立运行。但采用共享磁盘文件却大大缩短了创建克隆虚拟机的时间,同时还节省了宝贵的物理磁盘空间。

                    +
                    +
                  4. +
                  5. 完全克隆:

                    +
                  6. +
                  + +
                    +
                  • 模板:选择Windows 2012模板
                  • +
                  + +
                    +
                  • 链接克隆
                  • +
                  + +
                    +
                  • 虚拟机:选择一个Windows 2012的模板

                    +
                  • +
                  • 快照模式:默认"指定一个快照",可选择"申请时候选择"和"总是使用最新"这两种快照模式。选择"申请时候选择"将在服务申请的时候选择虚拟机快照

                    +
                  • +
                  • 快照:若快照模式选择"指定一个快照",将选择一个快照

                    +
                  • +
                  + +
                    +
                  • 使用规范:选择「内建」(按需求选择无、内建或自定义规范,规范有助于防止在部署相同设置的虚机时而产生冲突)

                    +
                  • +
                  • 模板中已启用WinRM:勾选该选项,表示模板中已经启用和配置WinRM,可以选择通过WinRM的方式安装监控代理和自动化代理

                    +
                  • +
                  • 监控方式:

                    +
                  • +
                  + +
                    +
                  • 无监控:不安装监控代理,则平台的监控功能不可用

                    +
                  • +
                  • WinRM安装监控代理:会通过WinRM的方式访问虚拟机并安装监控代理设置监控端口,默认是9182

                    +
                  • +
                  • 预安装监控代理:指模板中已经安装了监控代理

                    +
                  • +
                  • 云平台监控:从VCenter上直接读取虚机的监控数据,不需要安装监控代理

                    +
                  • +
                  + +
                    +
                  • 安装自动化代理:
                  • +
                  + +
                    +
                  • 不安装:若不安装自动化代理,则平台的一些自动化功能将无法使用,例如蓝图带应用部署或添加磁盘,某些虚拟机的操作如重置密码,执行脚本等等

                    +
                  • +
                  • WinRM安装:选择WinRM安装,会通过WinRM的方式访问虚拟机并安装自动化代理

                    +
                  • +
                  • 预安装:指模板中已经安装了自动化代理

                    +
                  • +
                  + +
                    +
                  • Windows用户名:输入需要设置的Windows管理员用户名

                    +
                  • +
                  • Windows密码:输入需要设置的Windows管理员密码

                    +
                  • +
                  • 点击「提交」,提示虚拟机模板已创建。点击「保存」,提示虚拟机模板已更新

                    +
                  • +
                  +

                  1.2.2. 添加一个OpenStack虚拟机模板

                  +
                    +
                  1. 在虚拟机模板页面,点击「添加」,输入虚拟机模板名称,选择一个OpenStack云平台并做如下配置:

                    +
                  2. +
                  3. 启动源类型:选择从镜像启动、从快照启动、从云硬盘启动或从云硬盘快照启动

                    +
                  4. +
                  + +
                    +
                  • 从镜像启动:选择镜像名称和快照模式;快照模式默认为"不使用快照",可选择"申请时候选择"和"总是使用最新的"。若选择"申请时候选择"将在服务申请时指定虚拟机快照

                    +
                  • +
                  • 从快照启动:选择快照名称

                    +
                  • +
                  • 从云硬盘启动:选择镜像名称和快照模式;快照模式默认为"不使用快照",可选择"申请时候选择"和"总是使用最新的"。若选择"申请时候选择"将在服务申请时指定虚拟机快照;若勾选"终止后删除",将在终止主机后删除硬盘。选择"从云硬盘启动"模式需要在服务配置时选择卷类型和配置卷大小

                    +
                  • +
                  • 从云硬盘快照启动:选择云硬盘快照名称,若勾选"终止后删除",将在终止主机后删除硬盘。选择"从云硬盘快照启动"模式需要在服务配置时选择卷类型和配置卷大小

                    +
                  • +
                  + +
                    +
                  • 安装监控和自动化代理的方式与vSphere的Windows模板相同

                    +
                  • +
                  • Windows用户名: 输入需要设置的Windows管理员用户名

                    +
                  • +
                  • 验证类型:密钥对、密码两种类型,选择密码

                    +
                  • +
                  • Windows密码:设置用户名对应的密码

                    +
                  • +
                  • 点击「提交」,提示虚拟机模板已创建。点击「保存」,提示虚拟机模板已更新。

                    +
                  • +
                  +

                  此时这个Windows +2012的操作系统,关联了2个虚拟机模板。在服务配置的时候,平台会自动选择与该服务相对应的虚拟机模板,无需重复设置。

                  +

                  1.2.3. 添加一个Hyper-V虚拟机模板

                  +
                    +
                  1. 在虚拟机模板页面,点击「添加」,输入虚拟机模板名称,选择HyperV云平台名称,并对虚拟机模板做如下配置:

                    +
                  2. +
                  3. 基本信息:选择「操作系统名称」、描述、和系统类型(按需求选择Linux和Windows,这里选择Windows)

                    +
                  4. +
                  5. 模板:选择Windows 2012模板

                    +
                  6. +
                  7. 编辑虚拟机模板:输入模板名称、云平台入口、模板中已启用WinRM:勾选该选项,表示模板中已经启用和配置WinRM,可以选择通过WinRM的方式安装监控代理和自动化代理

                    +
                  8. +
                  9. 监控方式:

                    +
                  10. +
                  + +
                    +
                  • 无监控:不安装监控代理,则平台的监控功能不可用

                    +
                  • +
                  • WinRM安装监控代理:会通过WinRM的方式访问虚拟机并安装监控代理设置监控端口,默认是9182

                    +
                  • +
                  + +
                    +
                  • 安装自动化代理:
                  • +
                  + +
                    +
                  • 不安装:若不安装自动化代理,则平台的一些自动化功能将无法使用,例如蓝图带应用部署或添加磁盘,某些虚拟机的操作如重置密码,执行脚本等等

                    +
                  • +
                  • WinRM安装:选择WinRM安装,会通过WinRM的方式访问虚拟机并安装自动化代理

                    +
                  • +
                  + +
                    +
                  • 用户名:输入需要设置的用户名,例如: root

                    +
                  • +
                  • 密码:输入需要设置的管理员密码,例如:Passw0rd

                    +
                  • +
                  • 点击「提交」,提示虚拟机模板已创建。点击「保存」,提示虚拟机模板已更新

                    +

                    1.2.4. 添加一个Azure虚拟机模板

                    +
                  • +
                  + +
                    +
                  1. 在虚拟机模板页面,点击「添加」,输入虚拟机模板名称,选择Azure云平台名称,并对虚拟机模板做如下配置:

                    +
                  2. +
                  3. 基本信息:选择「操作系统名称」、描述、和系统类型(按需求选择Linux和Windows,这里选择Windows)

                    +
                  4. +
                  5. 编辑虚拟机模板:输入模板名称、Azure的云平台入口、选择区域名称(例如:中国北部)、镜像名称(勾选允许修改时,在服务配置种可以修改镜像)

                    +
                  6. +
                  7. 监控方式:

                    +
                  8. +
                  + +
                    +
                  • 无监控:不安装监控代理,则平台的监控功能不可用

                    +
                  • +
                  • WinRM安装监控代理:会通过WinRM的方式访问虚拟机并安装监控代理设置监控端口,默认是9182

                    +
                  • +
                  • 云平台监控:从Azure上直接读取虚机的监控数据,不需要安装监控代理

                    +
                  • +
                  + +
                    +
                  • 安装自动化代理:
                  • +
                  + +
                    +
                  • 不安装:若不安装自动化代理,则平台的一些自动化功能将无法使用,例如蓝图带应用部署或添加磁盘,某些虚拟机的操作如重置密码,执行脚本等等

                    +
                  • +
                  • WinRM安装:选择WinRM安装,会通过WinRM的方式访问虚拟机并安装自动化代理

                    +
                  • +
                  + +
                    +
                  • 用户名:输入需要设置的用户名,例如: root

                    +
                  • +
                  • 密码:输入需要设置的管理员密码,例如:Passw0rd

                    +
                  • +
                  • 点击「提交」,提示虚拟机模板已创建。点击「保存」,提示虚拟机模板已更新

                    +
                  • +
                  +

                  2. 查看当前虚拟机模板

                  +

                  您可以根据下面的步骤来查看虚拟机模板:

                  +
                  +

                  「Note」请使用租户管理员或基础设施管理员角色登录SmartCMP平台。

                  +
                  +
                    +
                  1. 在左边导航选择「基础设施」,选择二级菜单「虚拟机模板」,则显示当前的虚拟机模板列表。可在列表中查看描述信息以及该虚拟机模板对应的操作系统类型

                    +
                  2. +
                  3. 点击虚拟机模板的名称可进入基本信息页面,可查看操作系统名称、描述、系统类型

                    +
                  4. +
                  5. 点击虚拟机模板,进入虚拟机模板管理界面。可新增、编辑和删除虚拟机模板

                    +
                  6. +
                  + + +
                  + +
                  +
                  +
                  + +

                  results matching ""

                  +
                    + +
                    +
                    + +

                    No results matching ""

                    + +
                    +
                    +
                    + +
                    +
                    + +
                    + + + + + + + + + + + + + + +
                    + + +
                    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git "a/AdminDoc/03\345\237\272\347\241\200\350\256\276\346\226\275\347\256\241\347\220\206/\350\231\232\346\213\237\346\234\272\346\250\241\346\235\277.md" "b/AdminDoc/03\345\237\272\347\241\200\350\256\276\346\226\275\347\256\241\347\220\206/\350\231\232\346\213\237\346\234\272\346\250\241\346\235\277.md" new file mode 100644 index 0000000..1beeafe --- /dev/null +++ "b/AdminDoc/03\345\237\272\347\241\200\350\256\276\346\226\275\347\256\241\347\220\206/\350\231\232\346\213\237\346\234\272\346\250\241\346\235\277.md" @@ -0,0 +1,341 @@ +**虚拟机模板** + +虚拟机模板是操作系统的抽象和标准化。平台支持创建虚拟机模板,一个操作系统可对应多个虚拟机模板。 ++ 虚拟机模板与云平台中的模板或镜像相关联,例如:vSphere vCenter中的模板、OpenStack平台上的镜像、公有云平台各个区域的操作系统(OS)镜像。 + ++ 在虚拟机模板中可配置SmartCMP两种代理的安装方式和账号信息,这两种代理是监控代理和自动化代理。 + +SmartCMP一些自动化功能依赖自动化代理,例如: + +- 蓝图带应用部署或添加磁盘 + +- 服务配置初始化并挂载磁盘、创建新用户 + +- 部分虚机运维操作(包括重置密码,执行脚本,应用启动停止,添加、扩展Linux逻辑卷或Windows磁盘等)。 + +创建虚拟机模板后,可在服务配置中直接指定。SmartCMP可根据蓝图对象所在的云平台自动识别虚拟机模板。 + +>「Note」请使用租户管理员或基础设施管理员角色登录SmartCMP平台。租户管理员可为某用户指定基础设施管理员角色。系统默认创建了3个虚拟机模板:Windows2012 R2、Redhat 7、CentOS7,还需添加相应的云平台信息才可使用。下文为您介绍添加虚拟机模板。 + +# 添加虚拟机模板 + +这里定义两个虚拟机模板:Windows 2012 R2和CentOS 7: + +## 添加Linux虚拟机模板 + +1. 选择「基础设施」-「虚拟机模板」,进入虚拟机模板列表界面。点击「添加」,输入操作系统名称,描述,选择系统类型Linux,点击「提交」 + +2. 点击「虚拟机模板」标签页,进入虚拟机模板列表界面 + +### 添加vSphere虚拟机模板{#添加vSphere虚拟机模板} + +在虚拟机模板列表界面,点击「添加」,输入虚拟机模板名称,选择一个vSphere云平台并做如下配置: + +克隆模式:「完全克隆」或「链接克隆」 + + >「Note」完全克隆是和原始虚拟机完全独立的一个拷贝,它不和原始虚拟机共享任何资源,可以脱离原始虚拟机独立使用;链接克隆需要和原始虚拟机共享同一虚拟磁盘文件,不能脱离原始虚拟机独立运行。但采用共享磁盘文件却大大缩短了创建克隆虚拟机的时间,同时还节省了宝贵的物理磁盘空间。 + +- 完全克隆: 模板:选择一个Linux CentOS模板 + +- 链接克隆: 虚拟机:选择一个Linux CentOS 7的模板。 快照模式:默认"指定一个快照",可选择"申请时候选择"和"总是使用最新"这两种快照模式。选择"申请时候选择"将在服务申请的时候选择虚拟机快照。 快照:若快照模式选择"指定一个快照",将选择一个快照。 使用规范:选择「内建」(按需求选择无、内建或自定义规范,规范有助于防止在部署相同设置的虚机时产生冲突) + +- 模板中已启用SSH:勾选该选项,表示模板中已经启用和配置SSH,可以选择通过SSH的方式安装监控代理和自动化代理;默认SSH端口为22,如果模板中修改了SSH的端口,可输入模板中修改的SSH端口号 + +- 用户名、密码:使用具有SSH权限的用户及其密码 + +- 安装监控代理:无监控:若不安装监控代理,则平台的监控功能不可用。SSH安装监控代理:选择SSH安装的话,会通过SSH的方式访问虚拟机并安装监控代理;设置监控端口,默认是9100。预安装监控代理:预安装是指模板中已经安装了监控代理。云平台监控:从VCenter上直接读取虚机的监控数据,不需要安装监控代理 + +- 安装自动化代理:不安装:若不安装自动化代理,则平台的一些自动化功能将无法使用,例如蓝图带应用部署或添加磁盘,某些虚拟机的操作如重置密码,执行脚本等等。SSH安装:选择SSH安装,会通过SSH的方式访问虚拟机并安装自动化代理。预安装:预安装是指模板中已经安装了自动化代理 + + + +- 管理员用户:输入模板中配置的管理员用户名 + +- 管理员密码:输入模板中配置的管理员密码 + +2. 点击「提交」,提示虚拟机模板已创建。点击「保存」,提示虚拟机模板已更新 + +### 添加OpenStack虚拟机模板{#添加OpenStack虚拟机模板} + +1. 在虚拟机模板页面,点击「添加」,输入虚拟机模板名称,选择一个OpenStack云平台并做如下配置: + +- 启动源类型:从镜像启动、从快照启动、从云硬盘启动、从云硬盘快照启动 + + +- 从镜像启动:选择镜像名称和快照模式;快照模式默认为"不使用快照",可选择"申请时候选择"和"总是使用最新的"。若选择"申请时候选择"将在服务申请时指定虚拟机快照 + +- 从快照启动:选择快照名称 + +- 从云硬盘启动:选择镜像名称和快照模式;快照模式默认为"不使用快照",可选择"申请时候选择"和"总是使用最新的"。若选择"申请时候选择"将在服务申请时指定虚拟机快照;若勾选"终止后删除",将在终止主机后删除硬盘。选择"从云硬盘启动"模式需要在服务配置时选择卷类型和配置卷大小 + +- 从云硬盘快照启动:选择云硬盘快照名称,若勾选"终止后删除",将在终止主机后删除硬盘。选择"从云硬盘快照启动"模式需要在服务配置时选择卷类型和配置卷大小 + + + +- 虚拟机镜像:选择一个CentOS的模板 + +- 安装监控和自动化代理的方式与vSphere的Linux模板相同,可配置SSH端口,此外SSH用户支持密钥方式(可在「基础设施」-「密钥对」中新建密钥或导入密钥) + +- 管理员用户名和密码:输入需要设置的操作系统管理员用户名和密码。 + +2. 点击「提交」,提示虚拟机模板已创建。点击「保存」,提示虚拟机模板已更新,此时这个Linux CentOS的操作系统,关联了2个虚拟机模板。在[服务配置](https://cloudchef.github.io/doc/AdminDoc/05服务建模/服务配置.html)的时候,平台会自动选择与该服务相对应的虚拟机模板,无需重复设置。 + +### 添加Hyper-V虚拟机模板{#添加Hyper-V虚拟机模板} + +1. 在虚拟机模板页面,点击「添加」,输入虚拟机模板名称,选择HyperV云平台名称,并对虚拟机模板做如下配置: + +- 基本信息:选择「操作系统名称」、描述、和系统类型(按需求选择Linux和Windows,这里选择Linux) + +- 模板:选择一个CentOS的模板 + +- 编辑虚拟机模板:输入模板名称、云平台入口、模板中已启用SSH:勾选该选项,表示模板中已经启用和配置SSH(输入模板中配置的SSH端口),可以选择通过SSH方式安装监控代理和自动化代理 + +- 监控方式: + + + +- 无监控:不安装监控代理,则平台的监控功能不可用 + +- SSH安装监控代理:选择SSH安装的话,会通过SSH的方式访问虚拟机并安装监控代理;设置监控端口,默认是9100 + + + +- 安装自动化代理: + + + +- 不安装:若不安装自动化代理,则平台的一些自动化功能将无法使用,例如蓝图带应用部署或添加磁盘,某些虚拟机的操作如重置密码,执行脚本等等 + +- SSH按照自动化代理:选择SSH安装,会通过SSH的方式访问虚拟机并安装自动化代理 + + + +- 用户名:输入需要设置的用户名,例如: root + +- 密码:输入需要设置的管理员密码,例如:Passw0rd + +2. 点击「提交」,提示虚拟机模板已创建。点击「保存」,提示虚拟机模板已更新 + + +### 添加Azure虚拟机模板{#添加Azure虚拟机模板} + + 在虚拟机模板页面,点击「添加」,输入虚拟机模板名称,选择Azure云平台名称,并对虚拟机模板做如下配置: + +- 基本信息:选择「操作系统名称」、描述、和系统类型(按需求选择Linux和Windows,这里选择Linux) + +- 编辑虚拟机模板:输入模板名称、云平台入口、选择区域名称(例如:中国北部)、镜像名称(勾选允许修改时,在服务配置种可以修改镜像) + +- 监控方式: + + + +- 无监控:不安装监控代理,则平台的监控功能不可用 + +- SSH安装监控代理:选择SSH安装的话,会通过SSH的方式访问虚拟机并安装监控代理;设置监控端口,默认是9100 + +- 云平台监控:从Azure云平台直接读取虚机的监控数据,不需要安装监控代理 + + + +- 安装自动化代理: + + + +- 不安装:若不安装自动化代理,则平台的一些自动化功能将无法使用,例如蓝图带应用部署或添加磁盘,某些虚拟机的操作如重置密码,执行脚本等等 + +- SSH按照自动化代理:选择SSH安装,会通过SSH的方式访问虚拟机并安装自动化代理 + + + +- 用户名:输入需要设置的用户名,例如: root + +- 密码:输入需要设置的管理员密码,例如:Passw0rd + +2. 点击「提交」,提示虚拟机模板已创建。点击「保存」,提示虚拟机模板已更新 + +## 添加Windows虚拟机模板 + +5. 选择「基础设施」-「虚拟机模板」,进入虚拟机模板列表界面。点击「添加」,输入虚拟机模板名称,描述,选择系统类型:Windows,点击「提交」 + +6. 点击「虚拟机模板」标签页,进入虚拟机模板列表界面 + +### 添加一个vSphere虚拟机模板 + +1. 在虚拟机模板页面,点击「添加」,输入虚拟机模板名称,选择一个vSphere云平台并做如下配置: + +- 克隆模式:「完全克隆」「链接克隆」 + + >「Note」完全克隆是和原始虚拟机完全独立的一个拷贝,它不和原始虚拟机共享任何资源。可以脱离原始虚拟机独立使用;链接克隆需要和原始虚拟机共享同一虚拟磁盘文件,不能脱离原始虚拟机独立运行。但采用共享磁盘文件却大大缩短了创建克隆虚拟机的时间,同时还节省了宝贵的物理磁盘空间。 + +- 完全克隆: + + + +- 模板:选择Windows 2012模板 + + + +- 链接克隆 + + + +- 虚拟机:选择一个Windows 2012的模板 + +- 快照模式:默认"指定一个快照",可选择"申请时候选择"和"总是使用最新"这两种快照模式。选择"申请时候选择"将在服务申请的时候选择虚拟机快照 + +- 快照:若快照模式选择"指定一个快照",将选择一个快照 + + + +- 使用规范:选择「内建」(按需求选择无、内建或自定义规范,规范有助于防止在部署相同设置的虚机时而产生冲突) + +- 模板中已启用WinRM:勾选该选项,表示模板中已经启用和配置WinRM,可以选择通过WinRM的方式安装监控代理和自动化代理 + +- 监控方式: + + + +- 无监控:不安装监控代理,则平台的监控功能不可用 + +- WinRM安装监控代理:会通过WinRM的方式访问虚拟机并安装监控代理设置监控端口,默认是9182 + +- 预安装监控代理:指模板中已经安装了监控代理 + +- 云平台监控:从VCenter上直接读取虚机的监控数据,不需要安装监控代理 + + + +- 安装自动化代理: + + + +- 不安装:若不安装自动化代理,则平台的一些自动化功能将无法使用,例如蓝图带应用部署或添加磁盘,某些虚拟机的操作如重置密码,执行脚本等等 + +- WinRM安装:选择WinRM安装,会通过WinRM的方式访问虚拟机并安装自动化代理 + +- 预安装:指模板中已经安装了自动化代理 + + + +- Windows用户名:输入需要设置的Windows管理员用户名 + +- Windows密码:输入需要设置的Windows管理员密码 + +2. 点击「提交」,提示虚拟机模板已创建。点击「保存」,提示虚拟机模板已更新 + +### 添加一个OpenStack虚拟机模板 + +1. 在虚拟机模板页面,点击「添加」,输入虚拟机模板名称,选择一个OpenStack云平台并做如下配置: + +- 启动源类型:选择从镜像启动、从快照启动、从云硬盘启动或从云硬盘快照启动 + + + +- 从镜像启动:选择镜像名称和快照模式;快照模式默认为"不使用快照",可选择"申请时候选择"和"总是使用最新的"。若选择"申请时候选择"将在服务申请时指定虚拟机快照 + +- 从快照启动:选择快照名称 + +- 从云硬盘启动:选择镜像名称和快照模式;快照模式默认为"不使用快照",可选择"申请时候选择"和"总是使用最新的"。若选择"申请时候选择"将在服务申请时指定虚拟机快照;若勾选"终止后删除",将在终止主机后删除硬盘。选择"从云硬盘启动"模式需要在服务配置时选择卷类型和配置卷大小 + +- 从云硬盘快照启动:选择云硬盘快照名称,若勾选"终止后删除",将在终止主机后删除硬盘。选择"从云硬盘快照启动"模式需要在服务配置时选择卷类型和配置卷大小 + + + +- 安装监控和自动化代理的方式与vSphere的Windows模板相同 + +- Windows用户名: 输入需要设置的Windows管理员用户名 + +- 验证类型:密钥对、密码两种类型,选择密码 + +- Windows密码:设置用户名对应的密码 + +2. 点击「提交」,提示虚拟机模板已创建。点击「保存」,提示虚拟机模板已更新。 + +此时这个Windows +2012的操作系统,关联了2个虚拟机模板。在[服务配置](https://cloudchef.github.io/doc/AdminDoc/05服务建模/服务配置.html)的时候,平台会自动选择与该服务相对应的虚拟机模板,无需重复设置。 + +### 添加一个Hyper-V虚拟机模板 + +3. 在虚拟机模板页面,点击「添加」,输入虚拟机模板名称,选择HyperV云平台名称,并对虚拟机模板做如下配置: + +- 基本信息:选择「操作系统名称」、描述、和系统类型(按需求选择Linux和Windows,这里选择Windows) + +- 模板:选择Windows 2012模板 + +- 编辑虚拟机模板:输入模板名称、云平台入口、模板中已启用WinRM:勾选该选项,表示模板中已经启用和配置WinRM,可以选择通过WinRM的方式安装监控代理和自动化代理 + +- 监控方式: + + + +- 无监控:不安装监控代理,则平台的监控功能不可用 + +- WinRM安装监控代理:会通过WinRM的方式访问虚拟机并安装监控代理设置监控端口,默认是9182 + + + +- 安装自动化代理: + + + +- 不安装:若不安装自动化代理,则平台的一些自动化功能将无法使用,例如蓝图带应用部署或添加磁盘,某些虚拟机的操作如重置密码,执行脚本等等 + +- WinRM安装:选择WinRM安装,会通过WinRM的方式访问虚拟机并安装自动化代理 + + + +- 用户名:输入需要设置的用户名,例如: root + +- 密码:输入需要设置的管理员密码,例如:Passw0rd + +4. 点击「提交」,提示虚拟机模板已创建。点击「保存」,提示虚拟机模板已更新 + + ### 添加一个Azure虚拟机模板 + + + +1. 在虚拟机模板页面,点击「添加」,输入虚拟机模板名称,选择Azure云平台名称,并对虚拟机模板做如下配置: + +- 基本信息:选择「操作系统名称」、描述、和系统类型(按需求选择Linux和Windows,这里选择Windows) + +- 编辑虚拟机模板:输入模板名称、Azure的云平台入口、选择区域名称(例如:中国北部)、镜像名称(勾选允许修改时,在服务配置种可以修改镜像) + +- 监控方式: + + + +- 无监控:不安装监控代理,则平台的监控功能不可用 + +- WinRM安装监控代理:会通过WinRM的方式访问虚拟机并安装监控代理设置监控端口,默认是9182 + +- 云平台监控:从Azure上直接读取虚机的监控数据,不需要安装监控代理 + + + +- 安装自动化代理: + + + +- 不安装:若不安装自动化代理,则平台的一些自动化功能将无法使用,例如蓝图带应用部署或添加磁盘,某些虚拟机的操作如重置密码,执行脚本等等 + +- WinRM安装:选择WinRM安装,会通过WinRM的方式访问虚拟机并安装自动化代理 + + + +- 用户名:输入需要设置的用户名,例如: root + +- 密码:输入需要设置的管理员密码,例如:Passw0rd + +2. 点击「提交」,提示虚拟机模板已创建。点击「保存」,提示虚拟机模板已更新 + +# 查看当前虚拟机模板 + +您可以根据下面的步骤来查看虚拟机模板: + +>「Note」请使用租户管理员或基础设施管理员角色登录SmartCMP平台。 + +1. 在左边导航选择「基础设施」,选择二级菜单「虚拟机模板」,则显示当前的虚拟机模板列表。可在列表中查看描述信息以及该虚拟机模板对应的操作系统类型 + +2. 点击虚拟机模板的名称可进入基本信息页面,可查看操作系统名称、描述、系统类型 + +3. 点击虚拟机模板,进入虚拟机模板管理界面。可新增、编辑和删除虚拟机模板 \ No newline at end of file diff --git "a/AdminDoc/03\345\237\272\347\241\200\350\256\276\346\226\275\347\256\241\347\220\206/\350\256\241\347\256\227\350\247\204\346\240\274.html" "b/AdminDoc/03\345\237\272\347\241\200\350\256\276\346\226\275\347\256\241\347\220\206/\350\256\241\347\256\227\350\247\204\346\240\274.html" new file mode 100644 index 0000000..ab5c055 --- /dev/null +++ "b/AdminDoc/03\345\237\272\347\241\200\350\256\276\346\226\275\347\256\241\347\220\206/\350\256\241\347\256\227\350\247\204\346\240\274.html" @@ -0,0 +1,1249 @@ + + + + + + + 计算规格 · 发行说明 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
                    +
                    + + + + + + + + +
                    + +
                    + +
                    + + + + + + + + +
                    +
                    + +
                    +
                    + +
                    + +

                    计算规格

                    +

                    计算规格定义了虚拟机的CPU和内存的配置规范(如:2核CPU,4G内存)并能够设置云平台规格,配置服务时根据云平台自动选择。

                    +

                    进入菜单「基础设施」-「计算规格」,可管理计算规格。在服务配置节点详细设置处可对计算节点做规格的配置。

                    +

                    1. 添加计算规格

                    +

                    不同类型云平台的计算规格的配置方式有所不同,区别如下:

                    +
                      +
                    • vSphere、Hyper-V只需定义计算规格,不需要配置云平台规格,下文以vSphere为例

                      +
                    • +
                    • OpenStack需要定义计算规格和云平台规格

                      +
                    • +
                    • Azure、AWS、阿里云需要定义计算规格和云平台规格(针对每个公有云区域需要定义一个云平台规格),下文以Azure为例

                      +
                    • +
                    +

                    「Note」下文在添加计算规格处分三种类型举例说明。

                    +

                    进入菜单「基础设施」-「计算规格」,可管理计算规格。平台默认四种计算规格微型(1核1GB)、小型(2核4GB)、中型(4核8GB)、大型(8核16GB),您也可以根据需要自定义计算规格类型。

                    +

                    1.1. 添加vSphere计算规格

                    +
                      +
                    1. 进入菜单「基础设施」-「计算规格」,进入新增规格基本信息页面:
                    2. +
                    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
                    新增计算规格基本信息
                    规格名称vSphere计算规格
                    CPU2
                    CPU单位
                    内存4
                    内存单位GB
                    +
                      +
                    1. 点击「保存」,就可以添加一个vSphere新的计算规格。
                    2. +
                    +

                    1.2. 添加OpenStack计算规格

                    +
                      +
                    1. 点击列表上方的「添加」按钮,会跳转到新增计算规格页面,输入如下规格信息:
                    2. +
                    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
                    新增OpenStack计算规格基本信息
                    规格名称OpenStack计算规格
                    CPU2
                    CPU单位
                    内存4
                    内存单位GB
                    +
                      +
                    1. 点击「保存」,就可以添加一个新的OpenStack计算规格。

                      +
                    2. +
                    3. 点击「云平台规格」点击列表上方的「添加」按钮,会跳转到新增云平台规格页面,输入如下云规格信息:

                      +
                    4. +
                    + + + + + + + + + + + + + + + + + + + + + + + + + +
                    添加OpenStack云平台规格基本信息
                    云平台类型OpenStack
                    云平台OpenStack
                    规格选择:CPU:1,内存(GB)2, 根磁盘(GB)100
                    设置为缺省规格每个区域的云平台缺省规格只能有一个
                    +
                      +
                    1. 点击「提交」,就可以添加一个新的云平台规格。

                      +
                    2. +
                    3. 在OpenStack模板服务配置节点详细设置处可对计算节点做规格的配置。如您想查看详情请参考:

                      +
                    4. +
                    +

                    1.3. 添加Azure计算规格

                    +
                      +
                    1. 点击列表上方的「添加」按钮,会跳转到新增Azure计算规格基本信息页面,输入如下规格信息:
                    2. +
                    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
                    新增Azure计算规格基本信息
                    规格名称Azure计算规格
                    CPU2
                    CPU单位
                    内存4
                    内存单位GB
                    +
                      +
                    1. 点击「保存」,就可以添加一个新的Azure计算规格。

                      +
                    2. +
                    3. 点击「云平台规格」点击列表上方的「添加」按钮,会跳转到新增云平台规格页面,输入如下云规格信息:

                      +
                    4. +
                    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
                    添加Azure云平台规格基本信息
                    云平台类型Azure
                    云平台Azure
                    区域名称云平台对应的区域,例如:华南1(深圳)
                    规格选择:CPU:1,内存:2GB,磁盘数量:1
                    设置为缺省规格每个区域的云平台缺省规格只能有一个
                    +
                      +
                    1. 点击「提交」,就可以添加一个新的Azure云平台规格。

                      +
                    2. +
                    3. 在Azure模板服务配置节点详细设置处可对计算节点做规格的配置。如您想查看详情请参考:

                      +
                    4. +
                    +

                    2. 查看计算规格

                    +

                    进入计算规格页面,可以看到规格列表,表格中会列出当前已有的所有的计算规格。

                    +

                    显示规格名称、CPU、CPU单位、内存、内存单位、创建时间。

                    +

                    3. 编辑计算规格

                    +

                    在列表中,点击规格名称,可对点击的计算规格进行编辑。

                    +

                    4. 删除计算规格

                    +

                    在列表中也可以选中一个计算规格,点击「删除」按钮将选中的计算规格删除。如果该计算规格正在使用中将会提示不可删除。

                    + + +
                    + +
                    +
                    +
                    + +

                    results matching ""

                    +
                      + +
                      +
                      + +

                      No results matching ""

                      + +
                      +
                      +
                      + +
                      +
                      + +
                      + + + + + + + + + + + + + + +
                      + + +
                      + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git "a/AdminDoc/03\345\237\272\347\241\200\350\256\276\346\226\275\347\256\241\347\220\206/\350\256\241\347\256\227\350\247\204\346\240\274.md" "b/AdminDoc/03\345\237\272\347\241\200\350\256\276\346\226\275\347\256\241\347\220\206/\350\256\241\347\256\227\350\247\204\346\240\274.md" new file mode 100644 index 0000000..b777c5f --- /dev/null +++ "b/AdminDoc/03\345\237\272\347\241\200\350\256\276\346\226\275\347\256\241\347\220\206/\350\256\241\347\256\227\350\247\204\346\240\274.md" @@ -0,0 +1,103 @@ + +**计算规格** + +计算规格定义了虚拟机的CPU和内存的配置规范(如:2核CPU,4G内存)并能够设置云平台规格,配置服务时根据云平台自动选择。 + +进入菜单「基础设施」-「计算规格」,可管理计算规格。在服务配置节点详细设置处可对计算节点做规格的配置。 + +# 添加计算规格 + +不同类型云平台的计算规格的配置方式有所不同,区别如下: + +- vSphere、Hyper-V只需定义计算规格,不需要配置云平台规格,下文以vSphere为例 + +- OpenStack需要定义计算规格和云平台规格 + +- Azure、AWS、阿里云需要定义计算规格和云平台规格(针对每个公有云区域需要定义一个云平台规格),下文以Azure为例 + +「Note」下文在添加计算规格处分三种类型举例说明。 + +进入菜单「基础设施」-「计算规格」,可管理计算规格。平台默认四种计算规格微型(1核1GB)、小型(2核4GB)、中型(4核8GB)、大型(8核16GB),您也可以根据需要自定义计算规格类型。 + +## 添加vSphere计算规格 {#添加vSphere计算规格} + +1. 进入菜单「基础设施」-「计算规格」,进入新增规格基本信息页面: + +新增计算规格|基本信息 +:------:|:------: + 规格名称 | vSphere计算规格 + CPU | 2 + CPU单位 | 核 + 内存 | 4 + 内存单位 | GB + +2. 点击「保存」,就可以添加一个vSphere新的计算规格。 + +## 添加OpenStack计算规格 {#添加OpenStack计算规格} + +1. 点击列表上方的「添加」按钮,会跳转到新增计算规格页面,输入如下规格信息: + +新增OpenStack计算规格|基本信息 +:------:|:------: + 规格名称 | OpenStack计算规格 + CPU | 2 + CPU单位 | 核 + 内存 | 4 + 内存单位 | GB + +2. 点击「保存」,就可以添加一个新的OpenStack计算规格。 + +3. 点击「云平台规格」点击列表上方的「添加」按钮,会跳转到新增云平台规格页面,输入如下云规格信息: + +添加OpenStack云平台规格 |基本信息 + :------:|:------: + 云平台类型 | OpenStack + 云平台 | OpenStack + 规格 | 选择:CPU:1,内存(GB)2, 根磁盘(GB)100 + 设置为缺省规格 | 每个区域的云平台缺省规格只能有一个 + +4. 点击「提交」,就可以添加一个新的云平台规格。 + +5. 在OpenStack模板服务配置节点详细设置处可对计算节点做规格的配置。如您想查看详情请参考: + +## 添加Azure计算规格 {#添加Azure计算规格} + +1. 点击列表上方的「添加」按钮,会跳转到新增Azure计算规格基本信息页面,输入如下规格信息: + +新增Azure计算规格|基本信息 +:------:|:------: +规格名称| Azure计算规格 +CPU | 2 +CPU单位 | 核 +内存 | 4 +内存单位 | GB + +2. 点击「保存」,就可以添加一个新的Azure计算规格。 + +3. 点击「云平台规格」点击列表上方的「添加」按钮,会跳转到新增云平台规格页面,输入如下云规格信息: + +添加Azure云平台规格 |基本信息 + :------:|:------: + 云平台类型| Azure + 云平台 | Azure + 区域名称 | 云平台对应的区域,例如:华南1(深圳) + 规格 | 选择:CPU:1,内存:2GB,磁盘数量:1 + 设置为缺省规格| 每个区域的云平台缺省规格只能有一个 + +4. 点击「提交」,就可以添加一个新的Azure云平台规格。 + +5. 在Azure模板服务配置节点详细设置处可对计算节点做规格的配置。如您想查看详情请参考: + +# 查看计算规格 + +进入计算规格页面,可以看到规格列表,表格中会列出当前已有的所有的计算规格。 + +显示规格名称、CPU、CPU单位、内存、内存单位、创建时间。 + +# 编辑计算规格 + +在列表中,点击规格名称,可对点击的计算规格进行编辑。 + +# 删除计算规格 + +在列表中也可以选中一个计算规格,点击「删除」按钮将选中的计算规格删除。如果该计算规格正在使用中将会提示不可删除。 diff --git "a/AdminDoc/03\345\237\272\347\241\200\350\256\276\346\226\275\347\256\241\347\220\206/\350\265\204\346\272\220\346\240\207\347\255\276.html" "b/AdminDoc/03\345\237\272\347\241\200\350\256\276\346\226\275\347\256\241\347\220\206/\350\265\204\346\272\220\346\240\207\347\255\276.html" new file mode 100644 index 0000000..56dd9f5 --- /dev/null +++ "b/AdminDoc/03\345\237\272\347\241\200\350\256\276\346\226\275\347\256\241\347\220\206/\350\265\204\346\272\220\346\240\207\347\255\276.html" @@ -0,0 +1,1066 @@ + + + + + + + 资源标签 · 发行说明 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
                      +
                      + + + + + + + + +
                      + +
                      + +
                      + + + + + + + + +
                      +
                      + +
                      +
                      + +
                      + +

                      1. 资源标签

                      +

                      标签核心功能:为所管理的资源池设置资源标签,注明资源池的不同用途和属性,从而在配置和申请服务的时候进行筛选和指定,快速筛选匹配资源池。

                      +

                      添加标签的具体步骤:点击左侧导航栏 「基础设施」 - 「资源标签」,管理员有配置标签和定义标签的参数的权限。

                      +
                        +
                      • 配置资源标签的「基本信息」:名称(一般配置中文,比如环境)、主键(只能输入英文和数字,比如env,作为标识位)、描述、顺序(定义标签选择的顺序)选择类型(单选/多选,指定做筛选时,标签选择值集的方式),指定的资源类型:云资源(例如:资源池)、存储资源(例如:vSphere的数据存储,OpenStack的存储类型)、网络资源。注意:同一个资源池可以设置多个标签,例如:可以给同一个vSphere资源池的存储或网络资源,分别选择使不同的标签。
                      • +
                      +
                        +
                      • 配置资源标签的「值集」例如:当key是环境,支持创建值value时,支持添加一个值集(例如:生产环境),也支持添加多个值集(例如:生产环境、测试环境、开发环境)并且每个值需要配置名称, 主键(可以用于命名规则),以及描述。 +点击保存按钮,资源标签创建完成
                      • +
                      +

                      2. 使用资源标签

                      +

                      资源标签创建完成之后,将资源池与资源标签进行绑定,具体操作步骤:点击左侧导航栏 「基础设施」 - 「资源池管理」在资源标签选择“标签键值”,一个资源池只能选择一个key,能选择一个或多个value, 例如:vSphere资源池,key选定为"环境",选择一个value“开发环境”或多个value“生产环境、测试环境、开发环境”。

                      +

                      资源标签在服务配置中的应用:配置Server或Instance节点的资源池,可供选择的资源池来源于“共享资源池、业务组绑定的资源池”,其中资源标签在选择资源池的作用:

                      +
                        +
                      • 选择手工指定资源池的策略,然后根据选定的资源标签过滤,再进一步根据标签过滤的结果进行选择,选择是否允许在申请时修改或者在审批时修改。例如:vSphere云服务配置Server组件,选择手工指定资源池的策略,选定拥有“开发环境”资源标签的资源池“vSphere开发资源池”,勾选“允许修改”和“仅审批时可改”,则服务配置完成之后,在服务申请时,可再一次选择资源池。

                        +
                      • +
                      • 选择“自动选择剩余容量最大、自动选择费用最低、平均分配” 的资源池选择策略,平台将根据策略自动分配,并且自动分配的时候,只能在按照标签过滤出来的资源池当中进行选择。更多服务配置信息请参考:服务配置

                        +
                      • +
                      • 资源标签在服务申请中的应用:服务配置中配置资源池允许修改,则在申请页面,针对每个key,根据资源池中已经配置的资源标签,只展现资源池中已经使用的value。

                        +
                      • +
                      +
                      +

                      「Note」面对“多个key 并且每个key有多个value”的应用场景。例如,存在两个key,分别为 “环境、性能 ”。key是环境时,下面设有三个value ,分别为“Pro,UAT,Dev”;key是性能时,下面设有三个value 分别为 “高性能,中性能,一般性能” 。两个资源池(vSphere-dev 资源池 和 vSphere-test 资源池),vSphere-dev 资源池有2个标签Pro和高性能,vSphere-test 资源池有2个标签UAT和一般性能, 因此在为节点配置云资源、服务申请页面展示的时候,“环境”下只显示Pro和UAT,“性能”下只显示高性能和一般性能,任意选择其中一个资源标签的value之后,剩余的标签展示要根据第一个资源标签的value的选择进行动态调整。例如:首先选择资源标签的value “ Pro ”,剩余的第二个标签只会出现“高性能”。以此类推,在更多key和更多value的应用场景中,选择逻辑也一致。

                      +
                      + + +
                      + +
                      +
                      +
                      + +

                      results matching ""

                      +
                        + +
                        +
                        + +

                        No results matching ""

                        + +
                        +
                        +
                        + +
                        +
                        + +
                        + + + + + + + + + + + + + + +
                        + + +
                        + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git "a/AdminDoc/03\345\237\272\347\241\200\350\256\276\346\226\275\347\256\241\347\220\206/\350\265\204\346\272\220\346\240\207\347\255\276.md" "b/AdminDoc/03\345\237\272\347\241\200\350\256\276\346\226\275\347\256\241\347\220\206/\350\265\204\346\272\220\346\240\207\347\255\276.md" new file mode 100644 index 0000000..387558b --- /dev/null +++ "b/AdminDoc/03\345\237\272\347\241\200\350\256\276\346\226\275\347\256\241\347\220\206/\350\265\204\346\272\220\346\240\207\347\255\276.md" @@ -0,0 +1,23 @@ + +# 资源标签{#资源标签} +标签核心功能:为所管理的资源池设置资源标签,注明资源池的不同用途和属性,从而在配置和申请服务的时候进行筛选和指定,快速筛选匹配资源池。 + +添加标签的具体步骤:点击左侧导航栏 「基础设施」 - 「资源标签」,管理员有配置标签和定义标签的参数的权限。 ++ 配置资源标签的「基本信息」:名称(一般配置中文,比如环境)、主键(只能输入英文和数字,比如env,作为标识位)、描述、顺序(定义标签选择的顺序)选择类型(单选/多选,指定做筛选时,标签选择值集的方式),指定的资源类型:云资源(例如:资源池)、存储资源(例如:vSphere的数据存储,OpenStack的存储类型)、网络资源。注意:同一个资源池可以设置多个标签,例如:可以给同一个vSphere资源池的存储或网络资源,分别选择使不同的标签。 + + ++ 配置资源标签的「值集」例如:当key是环境,支持创建值value时,支持添加一个值集(例如:生产环境),也支持添加多个值集(例如:生产环境、测试环境、开发环境)并且每个值需要配置名称, 主键(可以用于命名规则),以及描述。 +点击保存按钮,资源标签创建完成 + +# 使用资源标签 + +资源标签创建完成之后,将资源池与资源标签进行绑定,具体操作步骤:点击左侧导航栏 「基础设施」 - 「资源池管理」在资源标签选择“标签键值”,一个资源池只能选择一个key,能选择一个或多个value, 例如:vSphere资源池,key选定为"环境",选择一个value“开发环境”或多个value“生产环境、测试环境、开发环境”。 + +资源标签在服务配置中的应用:配置Server或Instance节点的资源池,可供选择的资源池来源于“共享资源池、业务组绑定的资源池”,其中资源标签在选择资源池的作用: ++ 选择手工指定资源池的策略,然后根据选定的资源标签过滤,再进一步根据标签过滤的结果进行选择,选择是否允许在申请时修改或者在审批时修改。例如:vSphere云服务配置Server组件,选择手工指定资源池的策略,选定拥有“开发环境”资源标签的资源池“vSphere开发资源池”,勾选“允许修改”和“仅审批时可改”,则服务配置完成之后,在服务申请时,可再一次选择资源池。 + ++ 选择“自动选择剩余容量最大、自动选择费用最低、平均分配” 的资源池选择策略,平台将根据策略自动分配,并且自动分配的时候,只能在按照标签过滤出来的资源池当中进行选择。更多服务配置信息请参考:[服务配置](https://cloudchef.github.io/doc/AdminDoc/05服务建模/服务配置.html) + ++ 资源标签在服务申请中的应用:服务配置中配置资源池允许修改,则在申请页面,针对每个key,根据资源池中已经配置的资源标签,只展现资源池中已经使用的value。 + +>「Note」面对“多个key 并且每个key有多个value”的应用场景。例如,存在两个key,分别为 “环境、性能 ”。key是环境时,下面设有三个value ,分别为“Pro,UAT,Dev”;key是性能时,下面设有三个value 分别为 “高性能,中性能,一般性能” 。两个资源池(vSphere-dev 资源池 和 vSphere-test 资源池),vSphere-dev 资源池有2个标签Pro和高性能,vSphere-test 资源池有2个标签UAT和一般性能, 因此在为节点配置云资源、服务申请页面展示的时候,“环境”下只显示Pro和UAT,“性能”下只显示高性能和一般性能,任意选择其中一个资源标签的value之后,剩余的标签展示要根据第一个资源标签的value的选择进行动态调整。例如:首先选择资源标签的value “ Pro ”,剩余的第二个标签只会出现“高性能”。以此类推,在更多key和更多value的应用场景中,选择逻辑也一致。 diff --git "a/AdminDoc/03\345\237\272\347\241\200\350\256\276\346\226\275\347\256\241\347\220\206/\350\265\204\346\272\220\346\261\240\347\256\241\347\220\206.html" "b/AdminDoc/03\345\237\272\347\241\200\350\256\276\346\226\275\347\256\241\347\220\206/\350\265\204\346\272\220\346\261\240\347\256\241\347\220\206.html" new file mode 100644 index 0000000..f9f1955 --- /dev/null +++ "b/AdminDoc/03\345\237\272\347\241\200\350\256\276\346\226\275\347\256\241\347\220\206/\350\265\204\346\272\220\346\261\240\347\256\241\347\220\206.html" @@ -0,0 +1,1454 @@ + + + + + + + 资源池管理 · 发行说明 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
                        +
                        + + + + + + + + +
                        + +
                        + +
                        + + + + + + + + +
                        +
                        + +
                        +
                        + +
                        + +

                        资源池管理

                        +

                        基础设施管理员纳管私有云、公有云、混合云、容器、物理机以及主流网络资源,将各类资源进行池化形成资源池。

                        +

                        管理员分配资源池给业务组使用,实现对云平台资源的切分,可以指定资源池使用目标云平台的特定资源,例如:自定义"开发资源池"为开发资源池关联存储资源和网络资源等,通过资源池指定能够使用的资源配额,如允许部署的虚拟机总量,允许申请的vCPU总量、内存总量等。

                        +

                        1. 添加资源池

                        +
                          +
                        • 成功添加云平台之后,支持将云平台资源划分成一个或多个资源池,分配相应的资源额度给不同的业务组使用,资源池和业务组的关联关系,资源的共享情况分为三种: 资源池仅分配给唯一的业务组; 资源池分配给所有的业务组,并且新增的业务组自动关联该资源池; 资源池共享给多个业务组。

                          +
                        • +
                        • 支持资源池复制,使用场景:当管理员给vCenter配置了多个群集,每个业务组都需要配置这些群集做为资源池,支持管理员快速创建配置相同或类似的资源池。具体操作步骤: 在左边导航选择「基础设施」,选择二级菜单「资源池管理」在资源池的列表中,选择一个资源池,点击 复制 按钮(当选择多个资源池时,复制按钮将不能点击),生成一个新的资源池的创建页面,复制资源的名称自动修改为 "<原资源池名称>-1"(例如,原资源池名字为vSphereDemo,复制出来的为vSphereDemo-1。其他的所有配置与原资源池相同,管理员可以修改原资源池的相关参数,包括所分配的业务组,以及共享模式。

                          +
                        • +
                        • 支持资源池启用或者禁用。管理员在新建和编辑资源池的时候,优先级的下方增加选择按钮,启用资源池,默认勾选。资源池不管启用还是禁用,都可以分配给业务组。禁用后,在部署云资源的时候,就不支持选择到这个资源池,但存量的资源不受任何影响。

                          +
                        • +
                        +

                        1.1. 添加vSphere资源池

                        +

                        您可以根据下面的步骤来添加vSphere资源池:

                        +
                          +
                        1. 在左边导航选择「基础设施」,选择二级菜单「资源池管理」。点击「添加」按钮,选择「vSphere」,会出现创建资源池界面。按照表单逐步填写相关信息,保存即可

                          +
                        2. +
                        3. 在「基本信息」页面需填入以下内容:

                          +
                            +
                          • 名称 资源池名称
                          • +
                          • 允许共享给多个业务组
                            +

                            「Note」 勾选后,如果在下方业务组的选择项中如果选择全部业务组,即配置为全局共享资源池,新增的业务组将自动关联;如果选择多个业务组,则共享给多个业务组,不勾选,在下方业务组选择唯一业务组,则单独分配给唯一选定的业务组。

                            +
                            +
                          • +
                          • 资源标签 给资源池添加标签以区分不同的使用环境(可选)
                          • +
                          • 优先级 用于帮助指定资源池选择策略,数值越小,优先级越高
                          • +
                          • 云平台入口 选择哪个 vCenter 划分资源池。
                          • +
                          • 资源入口 选择使用 vCenter 下的哪个集群或主机(包含集群和不在集群中的物理主机)
                          • +
                          • 文件夹 选择用于存储的文件夹(可选)
                          • +
                          +
                        4. +
                        +

                        计算资源」页面显示基本资源入口信息,根据资源入口信息内容填入以下内容:

                        +
                          +
                        • vCPU 本资源池最大允许部署多少vCPU数
                        • +
                        • 内存(GB) 本资源池最大允许部署多少(GB)内存
                        • +
                        • 虚机数量 本资源池最大允许部署多少虚拟机
                        • +
                        • 每台虚拟机允许快照数量 每台虚拟机允许快照的最大数量
                        • +
                        • vSphere资源池 部署出来的虚拟机存放在vSphere哪个资源池
                        • +
                        • 宿主机选择策略 内存有限或存储优先存储
                        • +
                        • 存储 选择虚拟机部署使用的存储以及存储配额(请根据实际情况配置合适大小的资源池,若资源太少则会影响后续部署)
                        • +
                        +

                        「网络资源」,选择网络及IP分配方式(手工指定、IP池、DHCP);若选择IP池,则需要在IP地址管理栏下选择对应的IP池。可给网络添加描述,在服务配置选择时,将显示描述信息,方便选择

                        +

                        点击「保存」按钮,vSphere资源池成功创建。

                        +

                        1.2. 添加vSphere with NSX资源池

                        +

                        添加vSphere带NSX资源池的前提是需要在vSphere云平台中关联VMware NSX。

                        +

                        您可以根据下面的步骤来添加vSphere带NSX资源池:

                        +
                          +
                        1. 在左边导航选择「基础设施」,选择二级菜单「资源池管理」。点击「添加」按钮,选择「vSphere」,会出现创建资源池界面。按照表单逐步填写相关信息,保存即可;

                          +
                        2. +
                        3. 在「基本信息」页面需填入以下内容:

                          +
                            +
                          • 名称 资源池名称
                          • +
                          • 允许共享给多个业务组 勾选后,如果在下方业务组的选择项中如果选择全部业务组,即配置为全局共享资源池,新增的业务组将自动关联;如果选择多个业务组,则共享给多个业务组,不勾选,在下方业务组选择唯一业务组,则单独分配给唯一选定的业务组。
                          • +
                          • 资源标签 给资源池添加标签以区分不同的使用环境(可选)
                          • +
                          • 优先级 用于帮助指定资源池选择策略,数值越小,优先级越高

                            +
                          • +
                          • 云平台入口 选择哪个 vCenter 划分资源池。

                            +
                          • +
                          • 资源入口 选择使用 vCenter 下的哪个集群或主机(包含集群和不在集群中的物理主机)
                          • +
                          • 文件夹 选择文件夹(可选)
                          • +
                          • VMware NSX传输区域 用于配置NSX逻辑交换机,若不选择,在「网络资源」页面将不显示「NXS逻辑交换机」子页面
                          • +
                          +

                          「计算资源」页面:同上节的vSphere资源池配置 +「网络资源」页面:

                          +
                        4. +
                        +
                          +
                        • 网络资源 选择网络以及该网络的IP分配方式,支持手工指定、IP池、DHCP,若选择IP池的分配方式需指定IP池。可给网络添加描述,在服务配置选择时,将显示描述信息,方便选择
                        • +
                        • 分布式虚拟交换机机 选择虚拟交换机
                        • +
                        • NSX逻辑交换机 选择逻辑交换机以及对应的IP池
                        • +
                        • NSX逻辑路由器 选择NSX逻辑路由器
                        • +
                        • NSX服务网关 选择NSX服务网关
                        • +
                        • NSX安全策略组 选择应用于该资源池的安全策略组
                        • +
                        +
                        +

                        「Note」网络资源和NSX逻辑交换机至少配置一种

                        +
                        +

                        点击「保存」按钮,vSphere with NSX资源池成功创建

                        +

                        1.3. 添加openStack资源池

                        +

                        您可以根据下面的步骤来添加openStack资源池:

                        +
                          +
                        1. 在左边导航选择「基础设施」,选择二级菜单「资源池管理」。点击「添加」按钮,选择「openStack」

                          +
                        2. +
                        3. 在「基本信息」页面需填入以下信息:

                          +
                            +
                          • 名称 资源池名称
                          • +
                          • 允许共享给多个业务组 勾选后,如果在下方业务组的选择项中如果选择全部业务组,即配置为全局共享资源池,新增的业务组将自动关联;如果选择多个业务组,则共享给多个业务组,不勾选,在下方业务组选择唯一业务组,则单独分配给唯一选定的业务组。
                          • +
                          • 资源标签 选择或输入自定义资源标签
                          • +
                          • 优先级 用于帮助指定资源池选择策略,数值越小,优先级越高

                            +
                          • +
                          • 云平台入口 选择哪个openStack划分资源池

                            +
                          • +
                          • 可用区 选择使用哪个可用区域DNS域 根据「系统管理」-「系统配置」中添加的DNS域,可选择为资源池添加一个或多个DNS域
                            +

                            「Note」 DNS域需要都是租户DNS域名的子域名

                            +
                            +
                          • +
                          +
                        4. +
                        +
                          +
                        1. 在「计算资源」页面显示基本资源信息,根据资源信息内容填入以下内容:

                          +
                            +
                          • vCPU 本资源池最大允许部署多少vCPU数
                          • +
                          • 内存(GB) 本资源池最大允许部署多少(GB)内存
                          • +
                          • 存储(GB) 本资源池最大允许部署多少(GB)存储
                          • +
                          • 虚机数量 本资源池最大允许部署多少虚拟机
                          • +
                          • 浮动IP数量 资源池最大预留浮动IP数量
                            +

                            「Note」支持openStack的浮动IP单独部署,部署完成后可在「我的部署」-「云资源」-「网络资源」-「FloatingIP」中查看。若部署时候创建的FloatingIP数量超过资源池规定的FloatingIP数量时,会部署失败。

                            +
                            +
                          • +
                          +

                          在「网络资源」页面中有「网络资源」「安全策略组」「防火墙」三个标签页

                          +
                        2. +
                        3. 「网络资源」:选择网络及对应的子网、IP分配方式(手工指定、IP池、DHCP);若IP分配方式选择IP池,则需要指定IP池。可给网络添加描述,在服务配置选择时,将显示描述信息,方便选择

                          +
                        4. +
                        5. 「安全策略组」:可选择一个或多个安全策略组,网络资源和安全策略组必须配置

                          +
                        6. +
                        7. 「防火墙」:可查看当前云平台下的防火墙名称、描述、策略、关联路由、状态(运行中、非激活),可选择一个或多个防火墙

                          +

                          在「路由」界面可指定路由(选填)(若需要配置防火墙,则需要在此选择路由)

                          +

                          点击「保存」按钮,openStack资源池成功创建

                          +
                        8. +
                        +

                        1.4. 添加powerVC资源池

                        +

                        您可以根据下面的步骤来添加powerVC资源池:

                        +
                          +
                        1. 在左边导航选择「基础设施」,选择二级菜单「资源池管理」。点击「添加」按钮,选择「powerVC」

                          +
                        2. +
                        3. 在「基本信息」页面需填入以下内容:

                          +
                        4. +
                        +
                          +
                        • 名称 资源池名称
                        • +
                        • 资源标签 选择或输入自定义标签
                        • +
                        • 优先级 用于帮助指定资源池选择策略,数值越小,优先级越高
                        • +
                        • 云平台入口 选择哪个openStack划分资源池
                        • +
                        • 可用区 选择使用哪个可用区域
                        • +
                        • 允许共享给多个业务组,业务组 勾选后,如果在下方业务组的选择项中如果选择全部业务组,即配置为全局共享资源池,新增的业务组将自动关联;如果选择多个业务组,则共享给多个业务组,不勾选,在下方业务组选择唯一业务组,则单独分配给唯一选定的业务组。
                        • +
                        +

                        在「计算资源」页面显示基本资源信息,根据资源信息内容填入以下内容:

                        +
                          +
                        • vCPU 本资源池最大允许部署多少vCPU数
                        • +
                        • 内存(GB) 本资源池最大允许部署多少(GB)内存
                        • +
                        • 存储(GB) 本资源池最大允许部署多少(GB)存储
                        • +
                        • 虚机数量 本资源池最大允许部署多少虚拟机

                          +

                          在「网络资源」页:选择网络及对应的子网、IP分配方式(IP池、DHCP);若选择IP池,则需要选择IP池。可给网络添加描述,在服务配置选择时,将显示描述信息,方便选择

                          +

                          点击「保存」按钮,powerVC资源池成功创建

                          +
                        • +
                        +

                        1.5. 添加微软Hyper-V资源池

                        +

                        您可以根据下面的步骤来添加Hyper-V资源池:

                        +
                          +
                        1. 在左边导航选择「基础设施」,选择二级菜单「资源池管理」。点击「添加」按钮,选择「Hyper-V」,会出现创建资源池界面。按照表单逐步填写相关信息,保存即可

                          +
                        2. +
                        3. 在「基本信息」页面需填入以下内容:

                          +
                        4. +
                        +
                          +
                        • 名称 资源池名称: HyperV资源池
                        • +
                        • 允许共享给多个业务组 勾选后,如果在下方业务组的选择项中如果选择全部业务组,即配置为全局共享资源池,新增的业务组将自动关联;如果选择多个业务组,则共享给多个业务组
                        • +
                        • 不勾选,在下方业务组选择唯一业务组,则单独分配给唯一选定的业务组。
                        • +
                        • 业务组 选择资源池所属的业务组
                        • +
                        • 资源标签 给资源池添加标签以区分不同的使用环境(可选)
                        • +
                        • 优先级 用于帮助指定资源池选择策略,数值越小,优先级越高

                          +
                        • +
                        • 云平台入口 选择创建的Hyper-V云平台。

                          +
                        • +
                        • 资源入口 选择使用哪个集群或主机(包含集群和不在集群中的物理主机)
                        • +
                        +
                          +
                        1. 「计算资源」页面显示基本资源入口信息,根据资源入口信息内容填入以下内容:
                        2. +
                        +
                          +
                        • vCPU 本资源池最大允许部署多少vCPU数
                        • +
                        • 内存(GB) 本资源池最大允许部署多少(GB)内存
                        • +
                        • 虚机数量 本资源池最大允许部署多少虚拟机

                          +
                        • +
                        • 存储 选择虚拟机部署使用的存储以及存储配额(请根据实际情况配置合适大小的资源池,若资源太少则会影响后续部署)

                          +
                        • +
                        • 预留空间 勾选相应的群集共享卷CSV,填写预留空间
                        • +
                        +
                          +
                        1. 「网络资源」,选择网络名称及IP分配方式(手工指定、DHCP);可给网络添加描述,在服务配置选择时,将显示描述信息,方便选择

                          +
                        2. +
                        3. 点击「保存」按钮,Hyper-V资源池成功创建

                          +
                        4. +
                        +

                        1.6. 添加物理服务器资源池

                        +

                        您可以根据下面的步骤来添加物理服务器资源池:

                        +
                          +
                        1. 在左边导航选择「基础设施」,选择二级菜单「资源池管理」。点击「添加」按钮,选择「物理服务器」

                          +
                        2. +
                        3. 在「基本信息」页需填入资源池名称、资源标签(选填)、云平台入口、优先级等属性

                          +
                        4. +
                        5. 在「物理主机」页选中物理机,将选中的物理机导入x86云平台的资源池

                          +
                        6. +
                        7. 点击「保存」按钮,物理服务器资源池成功创建

                          +
                        8. +
                        +

                        1.7. 添加Kubernetes资源池

                        +
                          +
                        1. 在左边导航选择「基础设施」,选择二级菜单「资源池管理」。点击「添加」按钮,选择「Kubernetes」

                          +
                        2. +
                        3. 在「基本信息」页填入资源池名称、资源标签(选填)、云平台入口、命名空间以及优先级

                          +
                        4. +
                        5. 在计算资源界面填入POD数量

                          +
                        6. +
                        7. 点击「保存」,Kubernetes资源池创建成功

                          +
                        8. +
                        +

                        1.8. 添加Docker资源池

                        +

                        您可以根据下面的步骤来添加Docker资源池:

                        +
                          +
                        1. 在左边导航选择「基础设施」,选择二级菜单「资源池管理」。点击「添加」按钮,选择「Docker」

                          +
                        2. +
                        3. 在「基本信息」页需填入资源池名称、资源标签(选填)、云平台入口、容器数量上限(选填)和优先级等属性

                          +
                        4. +
                        5. 在「主机列表」页显示主机的相关信息,如名称、操作系统、架构、服务端版本、CPU数量、内存等

                          +
                        6. +
                        7. 点击「保存」,Docker资源池创建成功

                          +
                        8. +
                        +

                        1.9. 添加NFS资源池

                        +

                        您可以根据下面的步骤来添加NFS资源池:

                        +
                          +
                        1. 在左边导航选择「基础设施」,选择二级菜单「资源池管理」。点击「添加」按钮,选择「NFS」

                          +
                        2. +
                        3. 在「基本信息」页面填入资源池名称、资源标签(选填)、 +云平台入口、优先级

                          +
                        4. +
                        5. 在「共享文件夹」标签页可添加若干NFS的共享目录

                          +
                        6. +
                        7. 点击「保存」,NFS资源池创建成功

                          +
                        8. +
                        +

                        1.10. 添加阿里云资源池

                        +

                        您可以根据下面的步骤来添加阿里云资源池:

                        +
                          +
                        1. 在左边导航选择「基础设施」,选择二级菜单「资源池管理」。点击「添加」按钮,选择「阿里云」

                          +
                        2. +
                        3. 在「基本信息」页需填写资源池名称,资源标签(选填),云平台入口、网络类型(经典网络和专有网络)和优先级;网络类型为专有网络时,还需要从列表中选择一个专有网络

                          +
                        4. +
                        5. 在「计算资源」填入vCPU数量(上限),内存(上限),虚拟机数量(上限)

                          +
                        6. +
                        7. 在「网络资源」页选择可用的阿里云安全策略组;若网络类型为专有网络时,还需选择虚拟交换机

                          +
                        8. +
                        9. 点击「保存」,阿里云资源池创建成功

                          +
                        10. +
                        +

                        1.11. 添加腾讯云资源池

                        +

                        您可以根据下面的步骤来添加腾讯云资源池:

                        +
                          +
                        1. 在左边导航选择「基础设施」,选择二级菜单「资源池管理」。点击「添加」按钮,选择「腾讯云」

                          +
                        2. +
                        3. 在「基本信息」页需填写资源池名称、资源标签(选填)、云平台入口、优先级

                          +
                        4. +
                        5. 在「计算资源」页填入vCPU数量,内存大小和虚机数量

                          +
                        6. +
                        7. 在「网络资源」页,则可以选择相应的安全组

                          +
                        8. +
                        9. 点击「保存」,腾讯云资源池创建成功

                          +
                        10. +
                        +

                        1.12. 添加青云资源池

                        +

                        您可以根据下面的步骤来添加青云资源池:

                        +
                          +
                        1. 在左边导航选择「基础设施」,选择二级菜单「资源池管理」。点击「添加」按钮,选择「青云」

                          +
                        2. +
                        3. 在「「基本信息」页需填入资源池名称、资源标签(选填)、云平台入口、优先级

                          +
                        4. +
                        5. 在「计算资源」页填入vCPU数量,内存大小和虚机数量

                          +
                        6. +
                        7. 在「防火墙」页面,选择一个防火墙策略

                          +
                        8. +
                        9. 点击「保存」,青云资源池创建成功

                          +
                        10. +
                        +

                        1.13. 添加AWS资源池

                        +

                        您可以根据下面的步骤来添加AWS资源池:

                        +
                          +
                        1. 在左边导航选择「基础设施」,选择二级菜单「资源池管理」。点击「添加」按钮,选择「AWS」

                          +
                        2. +
                        3. 在「基本信息」页需填入资源池名称、资源标签(选填)、优先级、云平台入口、区域、VPC网络

                          +
                        4. +
                        5. 在「计算资源」填入vCPU数量(上限)、内存(上限)、虚拟机数量(上限)

                          +
                        6. +
                        7. 在「网络资源」页,选择子网和安全策略组

                          +
                        8. +
                        9. 点击「保存」,AWS资源池创建成功

                          +
                        10. +
                        +

                        1.14. 添加F5 Big IP资源池

                        +

                        您可以根据下面的步骤来添加F5 BIG-IP资源池:

                        +
                          +
                        1. 在左边导航选择「基础设施」,选择二级菜单「资源池管理」。点击「添加」按钮,选择「F5 +BIG-IP」

                          +
                        2. +
                        3. 在「基本信息」页需填入资源池名称、业务组、资源标签(选填)、云平台入口、IP池和允许共享给多个业务组关联业务组与资源池的共享状态,请参考:业务组添加资源池

                          +
                        4. +
                        5. 点击「保存」,F5 BIG-IP资源池创建成功,F5 Big IP资源池需要关联IP池,才可以保存生效。如果当前没有对应的F5 Big IP的IP池,需要先添加相应的IP池来完成资源池的创建,请您参考添加IP池

                          +
                        6. +
                        +

                        1.15. 添加CISCO ACI资源池

                        +

                        您可以根据下面的步骤来添加CISCO ACI资源池:

                        +
                          +
                        1. 在左边导航选择「基础设施」,选择二级菜单「资源池管理」。点击「添加」按钮,选择「CISCO +ACI」

                          +
                        2. +
                        3. 在「基本信息」页需填入资源池名称、资源标签(选填)、云平台入口、优先级

                          +
                        4. +
                        5. 在「网络资源」中选择应用策略

                          +
                        6. +
                        7. 点击「保存」,ACI资源池创建成功

                          +
                        8. +
                        +

                        1.16. 添加Azure资源池

                        +

                        您可以根据下面的步骤来添加Azure资源池:

                        +
                          +
                        1. 在左边导航选择「基础设施」,选择二级菜单「资源池管理」。点击「添加」按钮,选择「Azure」

                          +
                        2. +
                        3. 在「基本信息」页,包括「基本信息」和「云平台资源信息」两部分。「基本信息」需填写资源池名称,资源标签(选填)和优先级;若勾选「允许共享给多个业务组」,则此资源池可供多个业务组使用。「云平台资源信息」需选择云平台入口、输入订阅ID、选择区域、资源组和虚拟网络

                          +
                        4. +
                        5. 在「计算资源」页,填入vCPU数量(上限),内存(上限),虚拟机数量(上限)

                          +
                        6. +
                        7. 在「网络资源」页,包括「子网」「安全策略组」标签页

                          +
                        8. +
                        9. 在「子网」页,选择子网及IP分配方式(手工指定、IP池、DHCP),通过手工指定和IP池方式可以分配内部专用IP地址。若选择IP池,则需要在IP池管理栏下选择对应的IP池

                          +
                        10. +
                        11. 在「安全策略组」页,选择一个安全策略组

                          +
                        12. +
                        13. 在「存储资源」页,选择一项存储账户

                          +
                        14. +
                        15. 点击「保存」,Azure资源池创建成功

                          +
                        16. +
                        +

                        2. 查看当前租户资源池

                        +

                        您可以根据下面的步骤来查看资源池:

                        +
                          +
                        1. 在左边导航选择「基础设施」,选择二级菜单「资源池管理」,将显示资源池列表界面。该列表显示当前已添加的资源池基本信息:资源池名称、类型、云平台入口、业务组、优先级、创建者、创建时间、已分配vCPU、已分配内存、已分配存储、已分配虚机数量

                          +
                        2. +
                        3. 点击资源池名称,进入资源池页面

                          +
                        4. +
                        5. 点击「资源使用趋势」菜单,该页面通过图表的形式直观地展示资源池使用情况,包括CPU使用情况、内存使用情况、存储使用情况,以及虚机使用数量。可通过调节时间跨度查看不同时间段的资源使用趋势情况,如1天、7天、15天、30天、90天、6个月、1年等

                          +
                        6. +
                        +

                        根据用户角色权限的不同,可进行的操作也不相同:

                        +

                        租户管理员和基础设施管理员可以编辑修改资源池信息;

                        +

                        业务组管理员可以查看资源池配额信息,并可提交扩容申请,操作步骤:

                        +
                          +
                        1. 在资源列表界面,点击资源池名称,进入资源池编辑界面

                          +
                        2. +
                        3. 点击左上角的「申请扩容」,填写资源扩容细节:如希望扩容的CPU、内存、存储的细节等

                          +
                        4. +
                        5. 点击「提交」,提示申请扩容成功。等待扩容申请审批回复。可在「服务审批」-「我的申请」中查看申请流程走向

                          +
                        6. +
                        +

                        3. 资源池导入虚拟机

                        +

                        您可以根据下面的步骤来添导入虚拟机:

                        +
                          +
                        1. 在左边导航选择「基础设施」,选择二级菜单「资源池管理」

                          +
                        2. +
                        3. 点击资源池名称或选中某一资源池点击「编辑」,进入资源池编辑界面

                          +
                        4. +
                        5. 点击「云资源」标签,点击「导入」按钮,导入页面,可根据业务组、项目、所有者、标签进行筛选。也可选择一个集群,选择想要导入的虚拟机。点击「导入」即可

                          +
                        6. +
                        7. 导入的虚拟机可在「我的部署」-「云主机」中查看,可通过云主机列表中状态栏下的图标区分­

                          +
                        8. +
                        +
                        +

                        「Note」资源池需要和业务组绑定后才可以进虚拟机导入。

                        +
                        +

                        4. 资源池同步策略

                        +

                        您可以在资源池中设置同步策略,定时同步云平台新增的资源。支持的同步对象如下:

                        +
                          +
                        • AWS支持:云主机、块存储、对象存储、安全组

                          +
                        • +
                        • Azure支持:云主机、块存储、对象存储、安全组、负载均衡器、MySQL数据库、SQL数据库、Web应用

                          +
                        • +
                        • vSphere和openStack支持:云主机

                          +
                        • +
                        +

                        进入导航栏「基础设施」-「资源池管理」- 选择资源池 - +「同步策略」标签页,可对同步策略进行添加、编辑、删除、启用和禁用等操作。您可以根据下面的步骤设置资源池同步策略:

                        +
                          +
                        1. 点击「添加」,进入同步策略配置界面

                          +
                        2. +
                        3. 选择同步对象类型:点击对象类型即可选中,再次点击则取消选中

                          +
                        4. +
                        5. 输入同步策略名称

                          +
                        6. +
                        7. 选择业务组与资源池的关联情况,请参考:业务组与资源池

                          +
                        8. +
                        9. 若该业务组下有多个项目,选择项目

                          +
                        10. +
                        11. 选择所有者

                          +
                        12. +
                        13. 过滤方式:通过"标签"和"基于名字的正则表达式"筛选出云平台新增的资源

                          +
                        14. +
                        15. 状态:启用或禁用

                          +
                        16. +
                        17. 执行时间:使用Cron表达式设置同步策略的执行时间

                          +
                        18. +
                        19. 策略管理:启用、禁用;删除、修改同步策略

                          +
                        20. +
                        +

                        5. 修改/删除资源池配置

                        +

                        在左边导航选择「基础设施」,选择二级菜单「资源池管理」。

                        +

                        编辑资源池:点击资源池名称或选中某一资源池点击「编辑」,则出现资源编辑界面,根据添加openStack资源池与添加vSphere资源池的参数列表说明修改已存在的资源池,修改完成后,点击「保存」。

                        +

                        删除资源池:选中某一资源池后点击「删除」,确认删除即可。

                        +
                        +

                        「Note」资源池如果和业务组进行绑定,删除会失败。

                        +
                        + + +
                        + +
                        +
                        +
                        + +

                        results matching ""

                        +
                          + +
                          +
                          + +

                          No results matching ""

                          + +
                          +
                          +
                          + +
                          +
                          + +
                          + + + + + + + + + + + + + + +
                          + + +
                          + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git "a/AdminDoc/03\345\237\272\347\241\200\350\256\276\346\226\275\347\256\241\347\220\206/\350\265\204\346\272\220\346\261\240\347\256\241\347\220\206.md" "b/AdminDoc/03\345\237\272\347\241\200\350\256\276\346\226\275\347\256\241\347\220\206/\350\265\204\346\272\220\346\261\240\347\256\241\347\220\206.md" new file mode 100644 index 0000000..80bf00e --- /dev/null +++ "b/AdminDoc/03\345\237\272\347\241\200\350\256\276\346\226\275\347\256\241\347\220\206/\350\265\204\346\272\220\346\261\240\347\256\241\347\220\206.md" @@ -0,0 +1,417 @@ + + + + +**资源池管理** + + +基础设施管理员纳管私有云、公有云、混合云、容器、物理机以及主流网络资源,将各类资源进行池化形成资源池。 + +管理员分配资源池给业务组使用,实现对云平台资源的切分,可以指定资源池使用目标云平台的特定资源,例如:自定义"开发资源池"为开发资源池关联存储资源和网络资源等,通过资源池指定能够使用的资源配额,如允许部署的虚拟机总量,允许申请的vCPU总量、内存总量等。 + + +# 添加资源池 + ++ 成功添加云平台之后,支持将云平台资源划分成一个或多个资源池,分配相应的资源额度给不同的业务组使用,资源池和业务组的关联关系,资源的共享情况分为三种: 资源池仅分配给唯一的业务组; 资源池分配给所有的业务组,并且新增的业务组自动关联该资源池; 资源池共享给多个业务组。 + ++ 支持资源池复制,使用场景:当管理员给vCenter配置了多个群集,每个业务组都需要配置这些群集做为资源池,支持管理员快速创建配置相同或类似的资源池。具体操作步骤: 在左边导航选择「基础设施」,选择二级菜单「资源池管理」在资源池的列表中,选择一个资源池,点击 复制 按钮(当选择多个资源池时,复制按钮将不能点击),生成一个新的资源池的创建页面,复制资源的名称自动修改为 "<原资源池名称>-1"(例如,原资源池名字为vSphereDemo,复制出来的为vSphereDemo-1。其他的所有配置与原资源池相同,管理员可以修改原资源池的相关参数,包括所分配的业务组,以及共享模式。 + ++ 支持资源池启用或者禁用。管理员在新建和编辑资源池的时候,优先级的下方增加选择按钮,启用资源池,默认勾选。资源池不管启用还是禁用,都可以分配给业务组。禁用后,在部署云资源的时候,就不支持选择到这个资源池,但存量的资源不受任何影响。 + + + +## 添加vSphere资源池 {#添加vSphere资源池} + +您可以根据下面的步骤来添加vSphere资源池: + +1. 在左边导航选择「基础设施」,选择二级菜单「资源池管理」。点击「添加」按钮,选择「vSphere」,会出现创建资源池界面。按照表单逐步填写相关信息,保存即可 + +2. 在「基本信息」页面需填入以下内容: + + + 名称 资源池名称 + + 允许共享给多个业务组 + >「Note」 勾选后,如果在下方业务组的选择项中如果选择全部业务组,即配置为全局共享资源池,新增的业务组将自动关联;如果选择多个业务组,则共享给多个业务组,不勾选,在下方业务组选择唯一业务组,则单独分配给唯一选定的业务组。 + + 资源标签 给资源池添加标签以区分不同的使用环境(可选) + + 优先级 用于帮助指定资源池选择策略,数值越小,优先级越高 + + 云平台入口 选择哪个 vCenter 划分资源池。 + + 资源入口 选择使用 vCenter 下的哪个集群或主机(包含集群和不在集群中的物理主机) + + 文件夹 选择用于存储的文件夹(可选) + + + + 计算资源」页面显示基本资源入口信息,根据资源入口信息内容填入以下内容: + + + vCPU 本资源池最大允许部署多少vCPU数 + + 内存(GB) 本资源池最大允许部署多少(GB)内存 + + 虚机数量 本资源池最大允许部署多少虚拟机 + + 每台虚拟机允许快照数量 每台虚拟机允许快照的最大数量 + + vSphere资源池 部署出来的虚拟机存放在vSphere哪个资源池 + + 宿主机选择策略 内存有限或存储优先存储 + + 存储 选择虚拟机部署使用的存储以及存储配额(请根据实际情况配置合适大小的资源池,若资源太少则会影响后续部署) + +「网络资源」,选择网络及IP分配方式(手工指定、IP池、DHCP);若选择IP池,则需要在IP地址管理栏下选择对应的IP池。可给网络添加描述,在服务配置选择时,将显示描述信息,方便选择 + + 点击「保存」按钮,vSphere资源池成功创建。 + +## 添加vSphere with NSX资源池 {#添加vSphereWithNsx资源池} + +添加vSphere带NSX资源池的前提是需要在vSphere云平台中关联VMware NSX。 + +您可以根据下面的步骤来添加vSphere带NSX资源池: + +1. 在左边导航选择「基础设施」,选择二级菜单「资源池管理」。点击「添加」按钮,选择「vSphere」,会出现创建资源池界面。按照表单逐步填写相关信息,保存即可; + +2. 在「基本信息」页面需填入以下内容: + + + 名称 资源池名称 + + 允许共享给多个业务组 勾选后,如果在下方业务组的选择项中如果选择全部业务组,即配置为全局共享资源池,新增的业务组将自动关联;如果选择多个业务组,则共享给多个业务组,不勾选,在下方业务组选择唯一业务组,则单独分配给唯一选定的业务组。 + + 资源标签 给资源池添加标签以区分不同的使用环境(可选) + + 优先级 用于帮助指定资源池选择策略,数值越小,优先级越高 + + + 云平台入口 选择哪个 vCenter 划分资源池。 + + 资源入口 选择使用 vCenter 下的哪个集群或主机(包含集群和不在集群中的物理主机) + + 文件夹 选择文件夹(可选) + + VMware NSX传输区域 用于配置NSX逻辑交换机,若不选择,在「网络资源」页面将不显示「NXS逻辑交换机」子页面 + + 「计算资源」页面:同上节的[vSphere资源池配置](#添加vsphere资源池) + 「网络资源」页面: + + + + 网络资源 选择网络以及该网络的IP分配方式,支持手工指定、IP池、DHCP,若选择IP池的分配方式需指定IP池。可给网络添加描述,在服务配置选择时,将显示描述信息,方便选择 + + 分布式虚拟交换机机 选择虚拟交换机 + + NSX逻辑交换机 选择逻辑交换机以及对应的IP池 + + NSX逻辑路由器 选择NSX逻辑路由器 + + NSX服务网关 选择NSX服务网关 + + NSX安全策略组 选择应用于该资源池的安全策略组 + +>「Note」网络资源和NSX逻辑交换机至少配置一种 + + 点击「保存」按钮,vSphere with NSX资源池成功创建 + +## 添加openStack资源池 {#添加openStack资源池} + +您可以根据下面的步骤来添加openStack资源池: + +1. 在左边导航选择「基础设施」,选择二级菜单「资源池管理」。点击「添加」按钮,选择「openStack」 + +2. 在「基本信息」页面需填入以下信息: + + + 名称 资源池名称 + + 允许共享给多个业务组 勾选后,如果在下方业务组的选择项中如果选择全部业务组,即配置为全局共享资源池,新增的业务组将自动关联;如果选择多个业务组,则共享给多个业务组,不勾选,在下方业务组选择唯一业务组,则单独分配给唯一选定的业务组。 + + 资源标签 选择或输入自定义资源标签 + + 优先级 用于帮助指定资源池选择策略,数值越小,优先级越高 + + + 云平台入口 选择哪个openStack划分资源池 + + 可用区 选择使用哪个可用区域DNS域 根据「系统管理」-「系统配置」中添加的DNS域,可选择为资源池添加一个或多个DNS域 + >「Note」 DNS域需要都是租户DNS域名的子域名 + + +3. 在「计算资源」页面显示基本资源信息,根据资源信息内容填入以下内容: + + + vCPU 本资源池最大允许部署多少vCPU数 + + 内存(GB) 本资源池最大允许部署多少(GB)内存 + + 存储(GB) 本资源池最大允许部署多少(GB)存储 + + 虚机数量 本资源池最大允许部署多少虚拟机 + + 浮动IP数量 资源池最大预留浮动IP数量 + >「Note」支持openStack的浮动IP单独部署,部署完成后可在「我的部署」-「云资源」-「网络资源」-「FloatingIP」中查看。若部署时候创建的FloatingIP数量超过资源池规定的FloatingIP数量时,会部署失败。 + + 在「网络资源」页面中有「网络资源」「安全策略组」「防火墙」三个标签页 +- 「网络资源」:选择网络及对应的子网、IP分配方式(手工指定、IP池、DHCP);若IP分配方式选择IP池,则需要指定IP池。可给网络添加描述,在服务配置选择时,将显示描述信息,方便选择 + +- 「安全策略组」:可选择一个或多个安全策略组,网络资源和安全策略组必须配置 + +- 「防火墙」:可查看当前云平台下的防火墙名称、描述、策略、关联路由、状态(运行中、非激活),可选择一个或多个防火墙 + + 在「路由」界面可指定路由(选填)(若需要配置防火墙,则需要在此选择路由) + + 点击「保存」按钮,openStack资源池成功创建 + +## 添加powerVC资源池 {#添加powerVC资源池} + +您可以根据下面的步骤来添加powerVC资源池: + +1. 在左边导航选择「基础设施」,选择二级菜单「资源池管理」。点击「添加」按钮,选择「powerVC」 + +2. 在「基本信息」页面需填入以下内容: + + + + 名称 资源池名称 + + 资源标签 选择或输入自定义标签 + + 优先级 用于帮助指定资源池选择策略,数值越小,优先级越高 + + 云平台入口 选择哪个openStack划分资源池 + + 可用区 选择使用哪个可用区域 + + 允许共享给多个业务组,业务组 勾选后,如果在下方业务组的选择项中如果选择全部业务组,即配置为全局共享资源池,新增的业务组将自动关联;如果选择多个业务组,则共享给多个业务组,不勾选,在下方业务组选择唯一业务组,则单独分配给唯一选定的业务组。 + + + 在「计算资源」页面显示基本资源信息,根据资源信息内容填入以下内容: + + + + vCPU 本资源池最大允许部署多少vCPU数 + + 内存(GB) 本资源池最大允许部署多少(GB)内存 + + 存储(GB) 本资源池最大允许部署多少(GB)存储 + + 虚机数量 本资源池最大允许部署多少虚拟机 + + 在「网络资源」页:选择网络及对应的子网、IP分配方式(IP池、DHCP);若选择IP池,则需要选择IP池。可给网络添加描述,在服务配置选择时,将显示描述信息,方便选择 + + 点击「保存」按钮,powerVC资源池成功创建 + +## 添加微软Hyper-V资源池 {#添加微软Hyper-V资源池} + +您可以根据下面的步骤来添加Hyper-V资源池: + +1. 在左边导航选择「基础设施」,选择二级菜单「资源池管理」。点击「添加」按钮,选择「Hyper-V」,会出现创建资源池界面。按照表单逐步填写相关信息,保存即可 + +2. 在「基本信息」页面需填入以下内容: + + + + 名称 资源池名称: HyperV资源池 + + 允许共享给多个业务组 勾选后,如果在下方业务组的选择项中如果选择全部业务组,即配置为全局共享资源池,新增的业务组将自动关联;如果选择多个业务组,则共享给多个业务组 + + 不勾选,在下方业务组选择唯一业务组,则单独分配给唯一选定的业务组。 + + 业务组 选择资源池所属的业务组 + + 资源标签 给资源池添加标签以区分不同的使用环境(可选) + + 优先级 用于帮助指定资源池选择策略,数值越小,优先级越高 + + + 云平台入口 选择创建的Hyper-V云平台。 + + 资源入口 选择使用哪个集群或主机(包含集群和不在集群中的物理主机) + + +3. 「计算资源」页面显示基本资源入口信息,根据资源入口信息内容填入以下内容: + + + + vCPU 本资源池最大允许部署多少vCPU数 + + 内存(GB) 本资源池最大允许部署多少(GB)内存 + + 虚机数量 本资源池最大允许部署多少虚拟机 + + + 存储 选择虚拟机部署使用的存储以及存储配额(请根据实际情况配置合适大小的资源池,若资源太少则会影响后续部署) + + 预留空间 勾选相应的群集共享卷CSV,填写预留空间 + + +4. 「网络资源」,选择网络名称及IP分配方式(手工指定、DHCP);可给网络添加描述,在服务配置选择时,将显示描述信息,方便选择 + +5. 点击「保存」按钮,Hyper-V资源池成功创建 + +## 添加物理服务器资源池 {#添加物理服务器资源池} + +您可以根据下面的步骤来添加物理服务器资源池: + +1. 在左边导航选择「基础设施」,选择二级菜单「资源池管理」。点击「添加」按钮,选择「物理服务器」 + +2. 在「基本信息」页需填入资源池名称、资源标签(选填)、云平台入口、优先级等属性 + +3. 在「物理主机」页选中物理机,将选中的物理机导入x86云平台的资源池 + +4. 点击「保存」按钮,物理服务器资源池成功创建 + +## 添加Kubernetes资源池 {#添加Kubernetes资源池} + +1. 在左边导航选择「基础设施」,选择二级菜单「资源池管理」。点击「添加」按钮,选择「Kubernetes」 + +2. 在「基本信息」页填入资源池名称、资源标签(选填)、云平台入口、命名空间以及优先级 + +3. 在计算资源界面填入POD数量 + +4. 点击「保存」,Kubernetes资源池创建成功 + +## 添加Docker资源池 {#添加Docker资源池} + +您可以根据下面的步骤来添加Docker资源池: + +1. 在左边导航选择「基础设施」,选择二级菜单「资源池管理」。点击「添加」按钮,选择「Docker」 + +2. 在「基本信息」页需填入资源池名称、资源标签(选填)、云平台入口、容器数量上限(选填)和优先级等属性 + +3. 在「主机列表」页显示主机的相关信息,如名称、操作系统、架构、服务端版本、CPU数量、内存等 + +4. 点击「保存」,Docker资源池创建成功 + +## 添加NFS资源池 {#添加NFS资源池} + +您可以根据下面的步骤来添加NFS资源池: + +1. 在左边导航选择「基础设施」,选择二级菜单「资源池管理」。点击「添加」按钮,选择「NFS」 + +2. 在「基本信息」页面填入资源池名称、资源标签(选填)、 + 云平台入口、优先级 + +3. 在「共享文件夹」标签页可添加若干NFS的共享目录 + +4. 点击「保存」,NFS资源池创建成功 + +## 添加阿里云资源池 {#添加阿里云资源池} + +您可以根据下面的步骤来添加阿里云资源池: + +7. 在左边导航选择「基础设施」,选择二级菜单「资源池管理」。点击「添加」按钮,选择「阿里云」 + +8. 在「基本信息」页需填写资源池名称,资源标签(选填),云平台入口、网络类型(经典网络和专有网络)和优先级;网络类型为专有网络时,还需要从列表中选择一个专有网络 + +9. 在「计算资源」填入vCPU数量(上限),内存(上限),虚拟机数量(上限) + +10. 在「网络资源」页选择可用的阿里云安全策略组;若网络类型为专有网络时,还需选择虚拟交换机 + +11. 点击「保存」,阿里云资源池创建成功 + +## 添加腾讯云资源池 {#添加腾讯云资源池} + +您可以根据下面的步骤来添加腾讯云资源池: + +1. 在左边导航选择「基础设施」,选择二级菜单「资源池管理」。点击「添加」按钮,选择「腾讯云」 + +2. 在「基本信息」页需填写资源池名称、资源标签(选填)、云平台入口、优先级 + +3. 在「计算资源」页填入vCPU数量,内存大小和虚机数量 + +4. 在「网络资源」页,则可以选择相应的安全组 + +5. 点击「保存」,腾讯云资源池创建成功 + +## 添加青云资源池 {#添加青云资源池} + +您可以根据下面的步骤来添加青云资源池: + +1. 在左边导航选择「基础设施」,选择二级菜单「资源池管理」。点击「添加」按钮,选择「青云」 + +2. 在「「基本信息」页需填入资源池名称、资源标签(选填)、云平台入口、优先级 + +3. 在「计算资源」页填入vCPU数量,内存大小和虚机数量 + +4. 在「防火墙」页面,选择一个防火墙策略 + +5. 点击「保存」,青云资源池创建成功 + +## 添加AWS资源池 {#添加AWS资源池} + +您可以根据下面的步骤来添加AWS资源池: + +1. 在左边导航选择「基础设施」,选择二级菜单「资源池管理」。点击「添加」按钮,选择「AWS」 + +2. 在「基本信息」页需填入资源池名称、资源标签(选填)、优先级、云平台入口、区域、VPC网络 + +3. 在「计算资源」填入vCPU数量(上限)、内存(上限)、虚拟机数量(上限) + +4. 在「网络资源」页,选择子网和安全策略组 + +5. 点击「保存」,AWS资源池创建成功 + +## 添加F5 Big IP资源池 {#添加F5BigIP资源池} + +您可以根据下面的步骤来添加F5 BIG-IP资源池: + +1. 在左边导航选择「基础设施」,选择二级菜单「资源池管理」。点击「添加」按钮,选择「F5 + BIG-IP」 + +2. 在「基本信息」页需填入资源池名称、业务组、资源标签(选填)、云平台入口、IP池和允许共享给多个业务组关联业务组与资源池的共享状态,请参考:[业务组添加资源池](https://cloudchef.github.io/doc/AdminDoc/04组织架构管理/业务组.html#业务组添加资源池) + +3. 点击「保存」,F5 BIG-IP资源池创建成功,F5 Big IP资源池需要关联IP池,才可以保存生效。如果当前没有对应的F5 Big IP的IP池,需要先添加相应的IP池来完成资源池的创建,请您参考[添加IP池](https://cloudchef.github.io/doc/AdminDoc/03基础设施管理/IP地址管理.html#添加IP池)。 + +## 添加CISCO ACI资源池 {#添加CISCOACI资源池} + +您可以根据下面的步骤来添加CISCO ACI资源池: + +1. 在左边导航选择「基础设施」,选择二级菜单「资源池管理」。点击「添加」按钮,选择「CISCO + ACI」 + +2. 在「基本信息」页需填入资源池名称、资源标签(选填)、云平台入口、优先级 + +3. 在「网络资源」中选择应用策略 + +4. 点击「保存」,ACI资源池创建成功 + +## 添加Azure资源池 {#添加Azure资源池} + +您可以根据下面的步骤来添加Azure资源池: + +1. 在左边导航选择「基础设施」,选择二级菜单「资源池管理」。点击「添加」按钮,选择「Azure」 + +2. 在「基本信息」页,包括「基本信息」和「云平台资源信息」两部分。「基本信息」需填写资源池名称,资源标签(选填)和优先级;若勾选「允许共享给多个业务组」,则此资源池可供多个业务组使用。「云平台资源信息」需选择云平台入口、输入订阅ID、选择区域、资源组和虚拟网络 + +3. 在「计算资源」页,填入vCPU数量(上限),内存(上限),虚拟机数量(上限) + +4. 在「网络资源」页,包括「子网」「安全策略组」标签页 + +- 在「子网」页,选择子网及IP分配方式(手工指定、IP池、DHCP),通过手工指定和IP池方式可以分配内部专用IP地址。若选择IP池,则需要在IP池管理栏下选择对应的IP池 + +- 在「安全策略组」页,选择一个安全策略组 + +1. 在「存储资源」页,选择一项存储账户 + +2. 点击「保存」,Azure资源池创建成功 + +# 查看当前租户资源池 + +您可以根据下面的步骤来查看资源池: + +1. 在左边导航选择「基础设施」,选择二级菜单「资源池管理」,将显示资源池列表界面。该列表显示当前已添加的资源池基本信息:资源池名称、类型、云平台入口、业务组、优先级、创建者、创建时间、已分配vCPU、已分配内存、已分配存储、已分配虚机数量 + +2. 点击资源池名称,进入资源池页面 + +3. 点击「资源使用趋势」菜单,该页面通过图表的形式直观地展示资源池使用情况,包括CPU使用情况、内存使用情况、存储使用情况,以及虚机使用数量。可通过调节时间跨度查看不同时间段的资源使用趋势情况,如1天、7天、15天、30天、90天、6个月、1年等 + +根据用户角色权限的不同,可进行的操作也不相同: + +租户管理员和基础设施管理员可以编辑修改资源池信息; + +业务组管理员可以查看资源池配额信息,并可提交扩容申请,操作步骤: + +1. 在资源列表界面,点击资源池名称,进入资源池编辑界面 + +2. 点击左上角的「申请扩容」,填写资源扩容细节:如希望扩容的CPU、内存、存储的细节等 + +3. 点击「提交」,提示申请扩容成功。等待扩容申请审批回复。可在「服务审批」-「我的申请」中查看申请流程走向 + +# 资源池导入虚拟机 + +您可以根据下面的步骤来添导入虚拟机: + +1. 在左边导航选择「基础设施」,选择二级菜单「资源池管理」 + +2. 点击资源池名称或选中某一资源池点击「编辑」,进入资源池编辑界面 + +3. 点击「云资源」标签,点击「导入」按钮,导入页面,可根据业务组、项目、所有者、标签进行筛选。也可选择一个集群,选择想要导入的虚拟机。点击「导入」即可 + +4. 导入的虚拟机可在「我的部署」-「云主机」中查看,可通过云主机列表中状态栏下的图标区分­ + +>「Note」资源池需要和业务组绑定后才可以进虚拟机导入。 + +# 资源池同步策略 + +您可以在资源池中设置同步策略,定时同步云平台新增的资源。支持的同步对象如下: + +- AWS支持:云主机、块存储、对象存储、安全组 + +- Azure支持:云主机、块存储、对象存储、安全组、负载均衡器、MySQL数据库、SQL数据库、Web应用 + +- vSphere和openStack支持:云主机 + +进入导航栏「基础设施」-「资源池管理」- 选择资源池 - +「同步策略」标签页,可对同步策略进行添加、编辑、删除、启用和禁用等操作。您可以根据下面的步骤设置资源池同步策略: + +1. 点击「添加」,进入同步策略配置界面 + +2. 选择同步对象类型:点击对象类型即可选中,再次点击则取消选中 + +3. 输入同步策略名称 + +4. 选择业务组与资源池的关联情况,请参考:[业务组与资源池](https://cloudchef.github.io/doc/AdminDoc/04组织架构管理/业务组.html#业务组添加资源池) + +5. 若该业务组下有多个项目,选择项目 + +6. 选择所有者 + +7. 过滤方式:通过"标签"和"基于名字的正则表达式"筛选出云平台新增的资源 + +8. 状态:启用或禁用 + +9. 执行时间:使用Cron表达式设置同步策略的执行时间 + +10. 策略管理:启用、禁用;删除、修改同步策略 + +# 修改/删除资源池配置 + +在左边导航选择「基础设施」,选择二级菜单「资源池管理」。 + +编辑资源池:点击资源池名称或选中某一资源池点击「编辑」,则出现资源编辑界面,根据添加openStack资源池与添加vSphere资源池的参数列表说明修改已存在的资源池,修改完成后,点击「保存」。 + +删除资源池:选中某一资源池后点击「删除」,确认删除即可。 + +>「Note」资源池如果和业务组进行绑定,删除会失败。 \ No newline at end of file diff --git "a/AdminDoc/04\347\273\204\347\273\207\346\236\266\346\236\204\347\256\241\347\220\206/README.md" "b/AdminDoc/04\347\273\204\347\273\207\346\236\266\346\236\204\347\256\241\347\220\206/README.md" new file mode 100644 index 0000000..43a4c6c --- /dev/null +++ "b/AdminDoc/04\347\273\204\347\273\207\346\236\266\346\236\204\347\256\241\347\220\206/README.md" @@ -0,0 +1,8 @@ +**组织架构** + + +业务组是租户内的逻辑组织结构,支持创建多级业务组,用于在SmartCMP系统内对应企业的组织架构。业务组内关联该业务组所属的用户以及该业务组可使用的资源池。业务组是一个逻辑概念,有需要把用户、服务目录和资源配额联系在一起的实体都可以用业务组来对应,比如子公司,不同层级的部门等。系统默认创建Default业务组以及租户管理员、业务组管理员和业务组普通用户等。 + +业务组可以创建一个或多个项目。项目内的用户成员只能来源于项目所在业务组的成员,可互相访问项目成员创建的虚拟机。 + +租户提供资源的逻辑隔离,与管理边界分割。 diff --git "a/AdminDoc/04\347\273\204\347\273\207\346\236\266\346\236\204\347\256\241\347\220\206/index.html" "b/AdminDoc/04\347\273\204\347\273\207\346\236\266\346\236\204\347\256\241\347\220\206/index.html" new file mode 100644 index 0000000..143af3f --- /dev/null +++ "b/AdminDoc/04\347\273\204\347\273\207\346\236\266\346\236\204\347\256\241\347\220\206/index.html" @@ -0,0 +1,1046 @@ + + + + + + + 组织架构 · 发行说明 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
                          +
                          + + + + + + + + +
                          + +
                          + +
                          + + + + + + + + +
                          +
                          + +
                          +
                          + +
                          + +

                          组织架构

                          +

                          业务组是租户内的逻辑组织结构,支持创建多级业务组,用于在SmartCMP系统内对应企业的组织架构。业务组内关联该业务组所属的用户以及该业务组可使用的资源池。业务组是一个逻辑概念,有需要把用户、服务目录和资源配额联系在一起的实体都可以用业务组来对应,比如子公司,不同层级的部门等。系统默认创建Default业务组以及租户管理员、业务组管理员和业务组普通用户等。

                          +

                          业务组可以创建一个或多个项目。项目内的用户成员只能来源于项目所在业务组的成员,可互相访问项目成员创建的虚拟机。

                          +

                          租户提供资源的逻辑隔离,与管理边界分割。

                          + + +
                          + +
                          +
                          +
                          + +

                          results matching ""

                          +
                            + +
                            +
                            + +

                            No results matching ""

                            + +
                            +
                            +
                            + +
                            +
                            + +
                            + + + + + + + + + + + + + + +
                            + + +
                            + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git "a/AdminDoc/04\347\273\204\347\273\207\346\236\266\346\236\204\347\256\241\347\220\206/\344\270\232\345\212\241\347\273\204.html" "b/AdminDoc/04\347\273\204\347\273\207\346\236\266\346\236\204\347\256\241\347\220\206/\344\270\232\345\212\241\347\273\204.html" new file mode 100644 index 0000000..1cd498e --- /dev/null +++ "b/AdminDoc/04\347\273\204\347\273\207\346\236\266\346\236\204\347\256\241\347\220\206/\344\270\232\345\212\241\347\273\204.html" @@ -0,0 +1,1203 @@ + + + + + + + 业务组 · 发行说明 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
                            +
                            + + + + + + + + +
                            + +
                            + +
                            + + + + + + + + +
                            +
                            + +
                            +
                            + +
                            + +

                            业务组

                            +

                            1. 添加业务组

                            +
                              +
                            1. 在左边导航选择「组织架构」-「业务组」,点击「添加」

                              +
                            2. +
                            3. 输入业务组名称,选择上级业务组,输入业务组描述,点击「提交」,业务组添加成功,转至编辑业务组页面

                              +
                            4. +
                            +

                            1.1. 概况

                            +

                            「概况」标签页:业务组主色调:选择某一颜色作为该业务组的主色调,该业务组发布的服务在服务目录中将显示设置的主色调颜色。若未设置,将由系统随机选择。服务部署租用时间范围:设置服务部署租用时间范围,最小值和最大值,最大值最小值任意留空则对应区间无限制。 服务租用时间到期后云主机将被自动关机。服务部署保留时间范围:设置服务部署保留时间范围,最小值和最大值,最大值最小值任意留空则对应区间无限制。

                            +
                            +

                            「Note」 服务部署保留时间到期后云主机将被放到回收站,支持管理员到回收站删除云主机,将资源释放;同时也支持还原操作,具体的操作,请参考,回收站章节。

                            +
                            +

                            此处设定的服务部署租用/保留时间范围将限制服务配置和申请服务时候用户能够选择的租期范围。最大可延期次数:允许用户延长租用到期时间的次数。服务到期后允许启动:勾选表示在服务部署到期之后,允许用户在延长租期之前启动该服务继续试用。云主机CPU、内存(GB)最大值。可启用向导式申请,快速申请服务。

                            +

                            1.2. 用户

                            +

                            「用户」页面:关联用户,点击「关联用户」,勾选列表中的用户,点击「确定」,关联该用户到业务组。关联成功后,将在用户页面显示已关联用户,点击登录名将跳转至该用户界面。

                            +
                              +
                            • 移除用户:若该业务组中已有用户,在列表中选择某用户,点击「移除用户」,取消该用户和业务组的关联,该用户将不能查看、使用该业务组的资源。

                              +
                            • +
                            • 关联角色:选择列表界面中的某用户,点击「关联角色」,勾选「业务组管理员」,点击「提交」,给该用户业务组管理员的角色。

                              +
                            • +
                            +

                            1.3. 资源池

                            +

                            「资源池」页面资源池与业务组进行关联,使得业务组内的用户可以申请这些资源。

                            +
                              +
                            • 添加资源池:点击「添加资源池」,勾选列表中的资源池,点击「确定」,关联该资源池和业务组的关系。

                              +
                            • +
                            • 移除资源池:选择列表中的某资源池,点击「移除资源池」,「确定」后移除该资源池和业务组的关系。若有未卸除部署在该资源池上,将不能移除

                              +
                            • +
                            +

                            1.4. 规范

                            +

                            「规范」标签页:命名规范包括,

                            +
                              +
                            • 服务部署名命名规则:可设置业务组服务部署命名规则,在业务组成员申请服务时,根据规则自动生成服务部署名称。已有字段:业务组名、项目名、所有者名、时间戳(yyyyMMddHHmmss)、服务配置名、项目简称、业务组简称

                              +
                            • +
                            • 云主机名命名规则:在SmartCMP或vCenter/OpenStack管理界面中的虚拟机显示名称。已有字段:IP地址、业务组名、项目名、所有者名、部署名、虚机蓝图节点名、OS主机名、项目简称、业务组简称

                              +
                            • +
                            • Windows主机名命名规则:Windows虚拟机hostname。已有字段:业务组名、项目名、所有者名、部署名、虚机蓝图节点名、项目简称、业务组简称

                              +
                            • +
                            • Linux主机名命名规则:Linux虚拟机hostname。已有字段:业务组名、项目名、所有者名、部署名、虚机蓝图节点名、项目简称、业务组简称

                              +
                            • +
                            +
                            +

                            「Note」 虚拟机主机名不支持特殊符号,否则部署虚机可能失败Windows主机名命名规则所产生的Windows主机名超过15个字符将自动截取(15-后缀名长度)的字段,命名规则中有后缀部分,可以选择「基础设施」中已有的「命名后缀」组成。

                            +
                            +
                              +
                            • 公网IP名称命名规则:业务组名、项目名、所有者名、项目简称、业务组简称、云主机名。

                              +
                            • +
                            • 申请规范:配置业务组在服务目录申请资源的规范,申请云主机CPU和内存最大值,留空表示无限制

                              +
                            • +
                            +

                            1.5. 云资源操作许可

                            +

                            云资源相关操作的权限设置有两种方法。一是在业务组---云资源操作许可中设置;二是在服务配置中进行设置。

                            +

                            服务配置中的云资源操作许可将继承业务组配置,可在此范围内进行更改操作项启用与否和审批流程,业务组中未启用的操作将不能在服务配置处进行启用。详情请参考:部署操作许可

                            +

                            具体操作方法:

                            +
                              +
                            1. 「组织架构」-「业务组」,选择「云资源操作许可」标签页,该标签页将列出业务组所有启用的云资源操作。

                              +
                            2. +
                            3. 配置完成,申请服务部署成功后,可在「我的部署」-「云主机」中,进入云主机详情页面,对虚机做相应的运维操作。

                              +
                            4. +
                            +

                            在业务组中添加云资源操作许可

                            +

                            可在业务组层面添加云资源的操作许可。

                            +
                              +
                            1. 「组织架构」-「业务组」,选择「云资源操作许可」标签页

                              +
                            2. +
                            3. 点击「添加」,出现「添加操作许可」页面,支持添加自定义的操作

                              +
                            4. +
                            5. 页面左侧第一列为云资源(包括虚机、云硬盘、容器服务、网络资源等)操作列表,第二列为角色列表,第三列为启用状况列表,最右侧一列为审批模板列表

                              +
                            6. +
                            7. 在虚机操作列表中勾选某项操作,如启用,停止,挂起等。在角色列表中选择能进行这项操作的角色,在启用状况列表中可勾选不启用(不能进行该项虚机操作),启用(能进行该项虚机操作)或启用且审批(能进行该项虚机操作且需要在审批模板列表中选择一个审批模板)

                              +
                            8. +
                            9. 「审批模板」选择默认模板(业务组管理员审批模板或租户管理员审批模板)

                              +
                            10. +
                            11. 点击「保存」

                              +
                            12. +
                            +
                            +

                            「Note」添加操作许可时可一次性选择多个操作、多个角色,设置相同的启用和审批规则。保存之后可对每一条添加的设置进行修改或删除,或继续添加新的操作许可规则设置。

                            +
                            +

                            1.6. 服务部署操作许可

                            +

                            服务部署操作许可规定了对该服务部署成功后,可进行的运维操作以及针对该操作的审批流程。

                            +

                            在「我的部署」-「服务部署」页面,选择一个服务部署,列表页面顶部将显示该服务部署可进行的操作。

                            +

                            在业务组中添加服务部署操作许可

                            +
                              +
                            1. 「组织架构」-「业务组」,点击业务组名称,进入概况页面,选择「服务部署操作许可」标签页

                              +
                            2. +
                            3. 点击「添加」,出现「添加操作许可」页面

                              +
                            4. +
                            5. 页面左侧第一列为操作列表,第二列为角色列表,第三列为启用状况列表,最右侧一列为审批模板列表

                              +
                            6. +
                            7. 在操作列表中勾选某项操作,如更改所有者,启动服务部署,停止服务部署等。在角色列表中选择能进行这项操作的角色,在启用状况列表中可勾选不启用(不能进行该项操作),启用(能进行该项操作)或启用且审批(能进行该项操作且需要在审批模板列表中选择一个审批模板)

                              +
                            8. +
                            9. 点击「保存」,成功为业务组添加服务部署操作许可

                              +
                            10. +
                            +

                            1.7. 资源配额

                            +

                            支持业务组的资源配额以满足控制部门级别资源配额的需求。业务组的预算配额与资源池的资源配额是独立的,当业务组预算达到阈值,资源池的资源配额还有大量剩余时,业务组成员在服务目录不能申请新的资源。注意:资源配额可以配置比业务组预算更大的额度。 +具体能够设置以下资源的额度:CPU、内存、存储、虚机数量,注意:首先要启用“是否启用资源配额”。

                            +
                              +
                            • 默认不启用:资源配额界面禁止输入,同时不计算已使用的资源数量
                            • +
                            • 选择启用:上述资源可以设置配额,都是非必填项,只能输入大于等于零的整数,留空表示无限制,支持查看已使用配额(剩余最小是0,不会出现负数;如果某个配额是无限制,剩余也一直是无限制,使用率一直是0%)当新服务部署占用资源,或者运维操作修改配置变更资源使用情况,或者更改业务组,相应的资源使用情况会产生变更。
                            • +
                            +
                            +

                            「Note」如果之前一段时间业务组没有启用配额,但业务组有资源占用,则该业务组在启用配额之后,需要能显示已经使用的资源。子业务组的配额暂时独立,即不受父业务组的限制,可以单独配置。

                            +
                            +

                            1.8. 预算配额

                            +

                            管理员可以为“此业务组和个人” / “业务组或个人” 配置每个月/每年的预算,留空为无限制。

                            +
                            +

                            「Note」个人预算不能大于业务组总预算。

                            +
                            +

                            当这个月的个人花费超过预算时,用户将不能申请新的云资源,属于用户的付费云主机将关机。支持根据配置的策略对资源和资源申请进行控制。可以实时在此页面查看,业务组云资源的使用率、资源用量和剩余数量。 +具体操作步骤:

                            +
                              +
                            • 选择计时单位年或月,选择按月表示在每月1号清零已有,恢复初始值;选择按年表示在下一年的起始日清零已有,恢复初始值。

                              +
                            • +
                            • 业务组配额管理,填写总预算,设定百分比,当业务组整体费用超过配置的总预算百分比,触发后续通知,系统将自动发送通知给业务组管理员。

                              +
                            • +
                            • 用户配额管理:设置个人预算,设定百分比,个人预算使用到达阈值时,触发后续通知,将发送通知给用户。

                              +
                            • +
                            • 预算策略:选择“预算用完后不能申请新的资源”,当业务组预算使用完时,业务组关联的所有用户将不能申请新的需要付费的资源。选择“预算用完后付费资源将自动关机” +例如:配置vsphere计费规则,部署vsphere云主机,配置业务组计费和个人预算,配置“预算用完后云主机关机策略”,当个人预算使用完时,属于个人的云主机将关机,或者当业务组预算使用完时,属于业务组的云主机将关机。关机后将根据业务组的保留时间进行保留;保留时间到期后,资源将被放入回收站。

                              +
                            • +
                            +
                            +

                            「Note」当业务组下有多个额度不同的用户时,其中一个用户欠费,不影响其他用户申请资源,属于欠费用户的云主机停机,不影响其他用户的云主机状态。

                            +
                            +
                              +
                            • 个人预算续费:当用户费用使用完成之后,提交续费工单,管理员可进入进行配额修改,可在"用户"标签页针对每个用户进行修改。具体操作步骤:选择「用户」-「预算配置」标签页面,修改用户的个人预算。
                            • +
                            +

                            「流程控制」页面:选择审批以及具体的审批模板或无审批

                            +

                            「云资源操作许可」及「服务部署许可」:参照在业务组中添加云资源操作许可在业务组中添加服务部署操作许可

                            +

                            点击「保存」,业务组添加成功

                            +

                            2. 查看当前业务组

                            +

                            在左边导航选择「组织架构」-「业务组」,可查看当前所有业务组。显示该业务组的名称、上级业务组、创建者以及创建时间等,可添加、编辑和删除业务组。

                            +

                            3. 修改业务组配置

                            +

                            在左边导航选择「组织架构」-「业务组」,选择一个业务组,点击「编辑」按钮,输入需要修改的内容点击「保存」。

                            +

                            3.1. 添加级连业务组

                            +

                            在添加业务组的UI中,您可以选择一个上级业务组,从而使得您的当前业务组加入到上级业务组中,实现一个级连的机构。(能且只能添加一个上级业务组)级连业务组可以实现组织机构的层级关系,您可以通过级连业务组对应到任意公司的任意的组织结构。

                            +

                            级连业务组拥有如下的特点:

                            +
                              +
                            • 子业务组所关联的用户,必须是父业务组的关联用户

                              +
                            • +
                            • 每级业务组所关联的资源池相互独立

                              +
                            • +
                            • 每级业务组所关联的服务目录相互独立

                              +
                            • +
                            • 每级业务组所关联的部署和虚机相互独立

                              +
                            • +
                            +

                            3.2. 删除业务组

                            +

                            您可以根据下面的步骤来删除业务组:

                            +
                              +
                            1. 在左边导航选择「组织架构」-「业务组」,选择一个业务组,点击「删除」按钮。

                              +
                            2. +
                            3. 确认删除操作,点击「是」删除业务组

                              +
                            4. +
                            +
                            +

                            「Note」 删除业务组会删除该业务组下的脚本库、命名后缀、密钥对等,并将所有用户从该业务组中移除。删除业务组前请确保该业务组下的所有服务部署已经卸除成功,并移除业务组下所有资源池、删除所有发布与未发布的服务。

                            +
                            + + +
                            + +
                            +
                            +
                            + +

                            results matching ""

                            +
                              + +
                              +
                              + +

                              No results matching ""

                              + +
                              +
                              +
                              + +
                              +
                              + +
                              + + + + + + + + + + + + + + +
                              + + +
                              + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git "a/AdminDoc/04\347\273\204\347\273\207\346\236\266\346\236\204\347\256\241\347\220\206/\344\270\232\345\212\241\347\273\204.md" "b/AdminDoc/04\347\273\204\347\273\207\346\236\266\346\236\204\347\256\241\347\220\206/\344\270\232\345\212\241\347\273\204.md" new file mode 100644 index 0000000..dbb15df --- /dev/null +++ "b/AdminDoc/04\347\273\204\347\273\207\346\236\266\346\236\204\347\256\241\347\220\206/\344\270\232\345\212\241\347\273\204.md" @@ -0,0 +1,171 @@ +**业务组** + + +# 添加业务组 + +1. 在左边导航选择「组织架构」-「业务组」,点击「添加」 + +2. 输入业务组名称,选择上级业务组,输入业务组描述,点击「提交」,业务组添加成功,转至编辑业务组页面 + +## 概况 + +「概况」标签页:业务组主色调:选择某一颜色作为该业务组的主色调,该业务组发布的服务在服务目录中将显示设置的主色调颜色。若未设置,将由系统随机选择。服务部署租用时间范围:设置服务部署租用时间范围,最小值和最大值,最大值最小值任意留空则对应区间无限制。 服务租用时间到期后云主机将被自动关机。服务部署保留时间范围:设置服务部署保留时间范围,最小值和最大值,最大值最小值任意留空则对应区间无限制。 +>「Note」 服务部署保留时间到期后云主机将被放到回收站,支持管理员到回收站删除云主机,将资源释放;同时也支持还原操作,具体的操作,请参考,回收站章节。 + +此处设定的服务部署租用/保留时间范围将限制服务配置和申请服务时候用户能够选择的租期范围。最大可延期次数:允许用户延长租用到期时间的次数。服务到期后允许启动:勾选表示在服务部署到期之后,允许用户在延长租期之前启动该服务继续试用。云主机CPU、内存(GB)最大值。可启用向导式申请,快速申请服务。 + + + +## 用户 +「用户」页面:关联用户,点击「关联用户」,勾选列表中的用户,点击「确定」,关联该用户到业务组。关联成功后,将在用户页面显示已关联用户,点击登录名将跳转至该用户界面。 + ++ 移除用户:若该业务组中已有用户,在列表中选择某用户,点击「移除用户」,取消该用户和业务组的关联,该用户将不能查看、使用该业务组的资源。 + ++ 关联角色:选择列表界面中的某用户,点击「关联角色」,勾选「业务组管理员」,点击「提交」,给该用户业务组管理员的角色。 + +## 资源池 {#业务组添加资源池} + 「资源池」页面资源池与业务组进行关联,使得业务组内的用户可以申请这些资源。 + ++ 添加资源池:点击「添加资源池」,勾选列表中的资源池,点击「确定」,关联该资源池和业务组的关系。 + ++ 移除资源池:选择列表中的某资源池,点击「移除资源池」,「确定」后移除该资源池和业务组的关系。若有未卸除部署在该资源池上,将不能移除 + +## 规范 +「规范」标签页:命名规范包括, ++ 服务部署名命名规则:可设置业务组服务部署命名规则,在业务组成员申请服务时,根据规则自动生成服务部署名称。已有字段:业务组名、项目名、所有者名、时间戳(yyyyMMddHHmmss)、服务配置名、项目简称、业务组简称 + ++ 云主机名命名规则:在SmartCMP或vCenter/OpenStack管理界面中的虚拟机显示名称。已有字段:IP地址、业务组名、项目名、所有者名、部署名、虚机蓝图节点名、OS主机名、项目简称、业务组简称 + ++ Windows主机名命名规则:Windows虚拟机hostname。已有字段:业务组名、项目名、所有者名、部署名、虚机蓝图节点名、项目简称、业务组简称 + ++ Linux主机名命名规则:Linux虚拟机hostname。已有字段:业务组名、项目名、所有者名、部署名、虚机蓝图节点名、项目简称、业务组简称 + +>「Note」 虚拟机主机名不支持特殊符号,否则部署虚机可能失败Windows主机名命名规则所产生的Windows主机名超过15个字符将自动截取(15-后缀名长度)的字段,命名规则中有后缀部分,可以选择「基础设施」中已有的「命名后缀」组成。 + ++ 公网IP名称命名规则:业务组名、项目名、所有者名、项目简称、业务组简称、云主机名。 + ++ 申请规范:配置业务组在服务目录申请资源的规范,申请云主机CPU和内存最大值,留空表示无限制 + +## 云资源操作许可 {#云资源操作许可} + +云资源相关操作的权限设置有两种方法。一是在业务组---云资源操作许可中设置;二是在服务配置中进行设置。 + +服务配置中的云资源操作许可将继承业务组配置,可在此范围内进行更改操作项启用与否和审批流程,业务组中未启用的操作将不能在服务配置处进行启用。详情请参考:[部署操作许可](https://cloudchef.github.io/doc/AdminDoc/09服务配置/服务配置.html#部署操作许可) + +具体操作方法: + +1. 「组织架构」-「业务组」,选择「云资源操作许可」标签页,该标签页将列出业务组所有启用的云资源操作。 + +2. 配置完成,申请服务部署成功后,可在「我的部署」-「云主机」中,进入云主机详情页面,对虚机做相应的运维操作。 + +在业务组中添加云资源操作许可 + +可在业务组层面添加云资源的操作许可。 + +1. 「组织架构」-「业务组」,选择「云资源操作许可」标签页 + +2. 点击「添加」,出现「添加操作许可」页面,支持添加自定义的操作 + +3. 页面左侧第一列为云资源(包括虚机、云硬盘、容器服务、网络资源等)操作列表,第二列为角色列表,第三列为启用状况列表,最右侧一列为审批模板列表 + +4. 在虚机操作列表中勾选某项操作,如启用,停止,挂起等。在角色列表中选择能进行这项操作的角色,在启用状况列表中可勾选不启用(不能进行该项虚机操作),启用(能进行该项虚机操作)或启用且审批(能进行该项虚机操作且需要在审批模板列表中选择一个审批模板) + +5. 「审批模板」选择默认模板(业务组管理员审批模板或租户管理员审批模板) + +6. 点击「保存」 + +>「Note」添加操作许可时可一次性选择多个操作、多个角色,设置相同的启用和审批规则。保存之后可对每一条添加的设置进行修改或删除,或继续添加新的操作许可规则设置。 + + + +## 服务部署操作许可 {#服务部署操作许可 .afff6} + +服务部署操作许可规定了对该服务部署成功后,可进行的运维操作以及针对该操作的审批流程。 + +在「我的部署」-「服务部署」页面,选择一个服务部署,列表页面顶部将显示该服务部署可进行的操作。 + +在业务组中添加服务部署操作许可 + +1. 「组织架构」-「业务组」,点击业务组名称,进入概况页面,选择「服务部署操作许可」标签页 + +2. 点击「添加」,出现「添加操作许可」页面 + +3. 页面左侧第一列为操作列表,第二列为角色列表,第三列为启用状况列表,最右侧一列为审批模板列表 + +4. 在操作列表中勾选某项操作,如更改所有者,启动服务部署,停止服务部署等。在角色列表中选择能进行这项操作的角色,在启用状况列表中可勾选不启用(不能进行该项操作),启用(能进行该项操作)或启用且审批(能进行该项操作且需要在审批模板列表中选择一个审批模板) + +5. 点击「保存」,成功为业务组添加服务部署操作许可 + + + + +## 资源配额 +支持业务组的资源配额以满足控制部门级别资源配额的需求。业务组的预算配额与资源池的资源配额是独立的,当业务组预算达到阈值,资源池的资源配额还有大量剩余时,业务组成员在服务目录不能申请新的资源。注意:资源配额可以配置比业务组预算更大的额度。 +具体能够设置以下资源的额度:CPU、内存、存储、虚机数量,注意:首先要启用“是否启用资源配额”。 + ++ 默认不启用:资源配额界面禁止输入,同时不计算已使用的资源数量 ++ 选择启用:上述资源可以设置配额,都是非必填项,只能输入大于等于零的整数,留空表示无限制,支持查看已使用配额(剩余最小是0,不会出现负数;如果某个配额是无限制,剩余也一直是无限制,使用率一直是0%)当新服务部署占用资源,或者运维操作修改配置变更资源使用情况,或者更改业务组,相应的资源使用情况会产生变更。 + +>「Note」如果之前一段时间业务组没有启用配额,但业务组有资源占用,则该业务组在启用配额之后,需要能显示已经使用的资源。子业务组的配额暂时独立,即不受父业务组的限制,可以单独配置。 + + + +## 预算配额 + +管理员可以为“此业务组和个人” / “业务组或个人” 配置每个月/每年的预算,留空为无限制。 + +>「Note」个人预算不能大于业务组总预算。 + +当这个月的个人花费超过预算时,用户将不能申请新的云资源,属于用户的付费云主机将关机。支持根据配置的策略对资源和资源申请进行控制。可以实时在此页面查看,业务组云资源的使用率、资源用量和剩余数量。 +具体操作步骤: + + 选择计时单位年或月,选择按月表示在每月1号清零已有,恢复初始值;选择按年表示在下一年的起始日清零已有,恢复初始值。 + + + 业务组配额管理,填写总预算,设定百分比,当业务组整体费用超过配置的总预算百分比,触发后续通知,系统将自动发送通知给业务组管理员。 + + + 用户配额管理:设置个人预算,设定百分比,个人预算使用到达阈值时,触发后续通知,将发送通知给用户。 + + + 预算策略:选择“预算用完后不能申请新的资源”,当业务组预算使用完时,业务组关联的所有用户将不能申请新的需要付费的资源。选择“预算用完后付费资源将自动关机” + 例如:配置vsphere计费规则,部署vsphere云主机,配置业务组计费和个人预算,配置“预算用完后云主机关机策略”,当个人预算使用完时,属于个人的云主机将关机,或者当业务组预算使用完时,属于业务组的云主机将关机。关机后将根据业务组的保留时间进行保留;保留时间到期后,资源将被放入回收站。 + +>「Note」当业务组下有多个额度不同的用户时,其中一个用户欠费,不影响其他用户申请资源,属于欠费用户的云主机停机,不影响其他用户的云主机状态。 + + + 个人预算续费:当用户费用使用完成之后,提交续费工单,管理员可进入进行配额修改,可在"用户"标签页针对每个用户进行修改。具体操作步骤:选择「用户」-「预算配置」标签页面,修改用户的个人预算。 + + +「流程控制」页面:选择审批以及具体的审批模板或无审批 + +「云资源操作许可」及「服务部署许可」:参照[在业务组中添加云资源操作许可](https://cloudchef.github.io/doc/AdminDoc/05服务建模/流程配置.html#在业务组中添加云资源操作许可)及[在业务组中添加服务部署操作许可](https://cloudchef.github.io/doc/AdminDoc/05服务建模/流程配置.html#在业务组中添加服务部署操作许可) + + 点击「保存」,业务组添加成功 + +# 查看当前业务组 + +在左边导航选择「组织架构」-「业务组」,可查看当前所有业务组。显示该业务组的名称、上级业务组、创建者以及创建时间等,可添加、编辑和删除业务组。 + +# 修改业务组配置 + +在左边导航选择「组织架构」-「业务组」,选择一个业务组,点击「编辑」按钮,输入需要修改的内容点击「保存」。 + +## 添加级连业务组 + +在添加业务组的UI中,您可以选择一个上级业务组,从而使得您的当前业务组加入到上级业务组中,实现一个级连的机构。(能且只能添加一个上级业务组)级连业务组可以实现组织机构的层级关系,您可以通过级连业务组对应到任意公司的任意的组织结构。 + +级连业务组拥有如下的特点: + +- 子业务组所关联的用户,必须是父业务组的关联用户 + +- 每级业务组所关联的资源池相互独立 + +- 每级业务组所关联的服务目录相互独立 + +- 每级业务组所关联的部署和虚机相互独立 + +## 删除业务组 + +您可以根据下面的步骤来删除业务组: + +1. 在左边导航选择「组织架构」-「业务组」,选择一个业务组,点击「删除」按钮。 + +2. 确认删除操作,点击「是」删除业务组 + +>「Note」 删除业务组会删除该业务组下的脚本库、命名后缀、密钥对等,并将所有用户从该业务组中移除。删除业务组前请确保该业务组下的所有服务部署已经卸除成功,并移除业务组下所有资源池、删除所有发布与未发布的服务。 diff --git "a/AdminDoc/04\347\273\204\347\273\207\346\236\266\346\236\204\347\256\241\347\220\206/\346\234\215\345\212\241\345\233\242\351\230\237.html" "b/AdminDoc/04\347\273\204\347\273\207\346\236\266\346\236\204\347\256\241\347\220\206/\346\234\215\345\212\241\345\233\242\351\230\237.html" new file mode 100644 index 0000000..6f3d403 --- /dev/null +++ "b/AdminDoc/04\347\273\204\347\273\207\346\236\266\346\236\204\347\256\241\347\220\206/\346\234\215\345\212\241\345\233\242\351\230\237.html" @@ -0,0 +1,1076 @@ + + + + + + + 服务团队 · 发行说明 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
                              +
                              + + + + + + + + +
                              + +
                              + +
                              + + + + + + + + +
                              +
                              + +
                              +
                              + +
                              + +

                              服务团队

                              +

                              服务团队是工单服务管理过程中处理工单任务的服务人员集合,支持租户管理员指定一个或多个用户成为服务团队的成员。当用户通过服务目录申请需要人工介入的手工工单服务之后,根据预先配置的服务流程,相应的服务团队将接到工单进行处理。

                              +

                              服务团队中的指定人员收到工单请求之后,可以进行转派,也可以进行线下处理,任务完成之后更新工单状态,系统将自动通知用户,同时用户可以主动实时关注处理进程。

                              +

                              服务团队涉及到的功能点具体表现:

                              +
                                +
                              • 租户管理员可以创建、编辑、删除多种类型的服务团队

                                +
                              • +
                              • 租户管理员可以自定义关联的用户和解除关联的用户

                                +
                              • +
                              • 用户申请工单之后,相应的服务团队将接到工单进行处理

                                +
                              • +
                              • 支持处理工单任务的人员之间相互指派工单任务,协同处理工单任务,也可以进行线下处理,处理完成之后更新工单状态,工单进入已处理状态。

                                +
                              • +
                              +

                              1. 添加服务团队

                              +
                                +
                              1. 在左边导航选择「组织架构」-「服务团队」,点击「添加」,创建团队名称和描述,填写完成点击提交,进入基本信息界面。

                                +
                              2. +
                              3. 「基本信息」界面:输入团队名称必填项,选填团队描述。

                                +
                              4. +
                              5. 点击用户进入「用户」页面:自定义关联用户和移除关联用户。点击关联用户,勾选相应的用户,点击保存即可关联成功。

                                +
                              6. +
                              7. 点击「保存」,服务团队成功

                                +
                              8. +
                              +

                              2. 查看服务团队

                              +
                                +
                              1. 在左边导航选择「组织架构」-「服务团队」,该页面显示当前租户下的所有服务团队,显示团队名称、描述、创建者、创建时间等。

                                +
                              2. +
                              3. 可对服务团队进行添加、编辑、删除等操作。

                                +
                              4. +
                              5. 可通过搜索进行快速定位。

                                +
                              6. +
                              + + +
                              + +
                              +
                              +
                              + +

                              results matching ""

                              +
                                + +
                                +
                                + +

                                No results matching ""

                                + +
                                +
                                +
                                + +
                                +
                                + +
                                + + + + + + + + + + + + + + +
                                + + +
                                + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git "a/AdminDoc/04\347\273\204\347\273\207\346\236\266\346\236\204\347\256\241\347\220\206/\346\234\215\345\212\241\345\233\242\351\230\237.md" "b/AdminDoc/04\347\273\204\347\273\207\346\236\266\346\236\204\347\256\241\347\220\206/\346\234\215\345\212\241\345\233\242\351\230\237.md" new file mode 100644 index 0000000..579e66c --- /dev/null +++ "b/AdminDoc/04\347\273\204\347\273\207\346\236\266\346\236\204\347\256\241\347\220\206/\346\234\215\345\212\241\345\233\242\351\230\237.md" @@ -0,0 +1,34 @@ +**服务团队** + + +服务团队是工单服务管理过程中处理工单任务的服务人员集合,支持租户管理员指定一个或多个用户成为服务团队的成员。当用户通过服务目录申请需要人工介入的手工工单服务之后,根据预先配置的服务流程,相应的服务团队将接到工单进行处理。 + +服务团队中的指定人员收到工单请求之后,可以进行转派,也可以进行线下处理,任务完成之后更新工单状态,系统将自动通知用户,同时用户可以主动实时关注处理进程。 + +服务团队涉及到的功能点具体表现: + +- 租户管理员可以创建、编辑、删除多种类型的服务团队 + +- 租户管理员可以自定义关联的用户和解除关联的用户 + +- 用户申请工单之后,相应的服务团队将接到工单进行处理 + +- 支持处理工单任务的人员之间相互指派工单任务,协同处理工单任务,也可以进行线下处理,处理完成之后更新工单状态,工单进入已处理状态。 + +# 添加服务团队 + +1. 在左边导航选择「组织架构」-「服务团队」,点击「添加」,创建团队名称和描述,填写完成点击提交,进入基本信息界面。 + +2. 「基本信息」界面:输入团队名称必填项,选填团队描述。 + +3. 点击用户进入「用户」页面:自定义关联用户和移除关联用户。点击关联用户,勾选相应的用户,点击保存即可关联成功。 + +4. 点击「保存」,服务团队成功 + +# 查看服务团队 + +1. 在左边导航选择「组织架构」-「服务团队」,该页面显示当前租户下的所有服务团队,显示团队名称、描述、创建者、创建时间等。 + +2. 可对服务团队进行添加、编辑、删除等操作。 + +3. 可通过搜索进行快速定位。 diff --git "a/AdminDoc/04\347\273\204\347\273\207\346\236\266\346\236\204\347\256\241\347\220\206/\347\224\250\346\210\267.html" "b/AdminDoc/04\347\273\204\347\273\207\346\236\266\346\236\204\347\256\241\347\220\206/\347\224\250\346\210\267.html" new file mode 100644 index 0000000..fdcdbbb --- /dev/null +++ "b/AdminDoc/04\347\273\204\347\273\207\346\236\266\346\236\204\347\256\241\347\220\206/\347\224\250\346\210\267.html" @@ -0,0 +1,1105 @@ + + + + + + + 用户 · 发行说明 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
                                +
                                + + + + + + + + +
                                + +
                                + +
                                + + + + + + + + +
                                +
                                + +
                                +
                                + +
                                + +

                                用户

                                +

                                在左边导航选择「组织架构」-「用户」,该页面显示当前租户下的所有用户,显示用户登录名、用户姓名、用户邮箱、登录方式、业务组、组织单位、用户状态、创建时间、到期时间等。可对用户进行添加、编辑、重置密码和删除等操作。可通过搜索进行快速定位。

                                +

                                1. 添加用户

                                +
                                  +
                                1. 在左边导航选择「组织架构」-「用户」,点击「添加」,选择登录类型:本地/根据系统配置,进入创建用户基本信息界面(若系统配置配置了LDAP登录方式,也将可选)

                                  +
                                2. +
                                3. 「基本信息」界面:输入用户姓名、登录名、邮箱和密码等必填项,手机号码、QQ号、联系人姓名、联系人名称、到期时间(指定到期时间自动禁用)等选填

                                  +
                                4. +
                                5. 「角色」界面:默认用户为租户成员,系统默认有软件架构师、基础设施管理员、租户管理员等角色,您也可自定义角色,为该角色分配相应的权限,具体参照角色章节。勾选某角色后,会显示该角色所对应的实体对象和权限范围

                                  +
                                6. +
                                7. 「关联业务组」页面:勾选业务组,将该业务组与用户关联(创建业务组详见添加业务组

                                  +
                                8. +
                                9. 点击「保存」,用户创建成功

                                  +
                                10. +
                                +

                                2. 编辑用户

                                +

                                在左侧导航栏点击「组织架构」-「用户」,选择一个用户,点击「编辑」按钮,输入需要修改的内容,点击「保存」。

                                +

                                2.1. 重置密码

                                +

                                在左侧导航栏点击「组织架构」-「用户」,选择一个用户,点击「重置密码」按钮,输入新密码、确认密码,点击「提交」。用户再次登录时需要输入新密码。

                                +

                                3. 删除用户

                                +

                                在左侧导航栏点击「组织架构」-「用户」,选择一个用户,点击「删除」按钮,弹出删除提示框点击「是」,提示删除用户成功。

                                +

                                4. 禁用/启用用户

                                +

                                在左侧导航栏点击「组织架构」-「用户」,选择一个用户,点击「禁用」按钮,弹出提示框点击「是」,提示用户禁用成功。

                                +

                                用户被禁用后,不能登录系统,登录系统时在登录页提示「用户已禁用」。

                                +

                                用户被禁用后,可以被启用,在左侧导航栏点击「组织架构」-「用户」,选择一个被禁用用户,点击「启用」按钮,启用后可以重新登录。

                                +

                                5. 导入AD用户

                                +

                                左侧导航栏点击「组织架构」-「用户」,点击「添加」,出现选择LDAP用户页面。

                                +

                                左侧可选择OU,在右侧可选择将用户批量添加至相应的业务组中,点击「导入」,添加LDAP用户完成。也可以按照关键字进行过滤。

                                +
                                +

                                「Note」支持AD账号自动同步

                                +
                                +

                                6. LDAP登录类型

                                +
                                  +
                                1. 进入菜单「系统管理」-「系统配置」,在系统配置中,用户可以配置当前租户的登录类型。当前租户可以支持的登录类型有: +本地登录、LDAP/Microsoft Active Directory

                                  +
                                    +
                                  • 选择本地登录,SmartCMP将使用本地数据库来对登录用户进行身份认证
                                  • +
                                  • 选择LDAP/Microsoft Active Directory, +SmartCMP将使用OpenLDAP或Miscrosoft AD 对登录用户进行身份认证
                                  • +
                                  +
                                2. +
                                3. 如果选择LDAP/Microsoft Active Directory,将出现LDAP的配置界面

                                  +
                                    +
                                  • 目录服务器地址: OpenLDAP或Miscrosoft AD +的主机地址(可输入多个域控地址,以逗号分隔)
                                  • +
                                  • 目录服务端口: 如果是OpenLDAP, 请使用389端口;如果是Miscrosoft AD, +请使用3268端口
                                  • +
                                  • 域名:请使用LDAP的语法输入域名,例如,您的域名是"cloudchef.io", +这里的域名应该是"dc=cloudchef, dc=io"
                                  • +
                                  • 管理员用户名:请使用 "账号\@域名"的方式,例如: +"administrator\@cloudchef.io"
                                  • +
                                  • 管理员密码:请输入您的管理员密码
                                  • +
                                  • 目录搜索属性:这是根据您的LDAP的服务器的定制。我们提供了默认的搜索属性:
                                  • +
                                  +
                                4. +
                                5. 对于MicroSoft AD,我们默认使用sAMAccountName和 userPrincipalName +来搜索匹配您的账号信息

                                  +
                                6. +
                                7. 对于OpenLDAP,我们默认使用cn或uid来搜索匹配您的账号信息,如果您的服务器有额外的配置,请在这里输入您使用的搜索属性

                                  +
                                8. +
                                9. 若勾选「允许本地同时登录」,则本地用户和LDAP用户可以同时登录

                                  +
                                10. +
                                + + +
                                + +
                                +
                                +
                                + +

                                results matching ""

                                +
                                  + +
                                  +
                                  + +

                                  No results matching ""

                                  + +
                                  +
                                  +
                                  + +
                                  +
                                  + +
                                  + + + + + + + + + + + + + + +
                                  + + +
                                  + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git "a/AdminDoc/04\347\273\204\347\273\207\346\236\266\346\236\204\347\256\241\347\220\206/\347\224\250\346\210\267.md" "b/AdminDoc/04\347\273\204\347\273\207\346\236\266\346\236\204\347\256\241\347\220\206/\347\224\250\346\210\267.md" new file mode 100644 index 0000000..4e06a2c --- /dev/null +++ "b/AdminDoc/04\347\273\204\347\273\207\346\236\266\346\236\204\347\256\241\347\220\206/\347\224\250\346\210\267.md" @@ -0,0 +1,74 @@ +**用户** + +在左边导航选择「组织架构」-「用户」,该页面显示当前租户下的所有用户,显示用户登录名、用户姓名、用户邮箱、登录方式、业务组、组织单位、用户状态、创建时间、到期时间等。可对用户进行添加、编辑、重置密码和删除等操作。可通过搜索进行快速定位。 + +# 添加用户 + +1. 在左边导航选择「组织架构」-「用户」,点击「添加」,选择登录类型:本地/根据系统配置,进入创建用户基本信息界面(若系统配置配置了LDAP登录方式,也将可选) + +2. 「基本信息」界面:输入用户姓名、登录名、邮箱和密码等必填项,手机号码、QQ号、联系人姓名、联系人名称、到期时间(指定到期时间自动禁用)等选填 + +3. 「角色」界面:默认用户为租户成员,系统默认有软件架构师、基础设施管理员、租户管理员等角色,您也可自定义角色,为该角色分配相应的权限,具体参照[角色](https://cloudchef.github.io/doc/AdminDoc/04组织架构管理/角色.html)章节。勾选某角色后,会显示该角色所对应的实体对象和权限范围 + +4. 「关联业务组」页面:勾选业务组,将该业务组与用户关联(创建业务组详见[添加业务组](https://cloudchef.github.io/doc/AdminDoc/04组织架构管理/业务组.html) + +5. 点击「保存」,用户创建成功 + +# 编辑用户 + +在左侧导航栏点击「组织架构」-「用户」,选择一个用户,点击「编辑」按钮,输入需要修改的内容,点击「保存」。 + +## 重置密码 + +在左侧导航栏点击「组织架构」-「用户」,选择一个用户,点击「重置密码」按钮,输入新密码、确认密码,点击「提交」。用户再次登录时需要输入新密码。 + +# 删除用户 + +在左侧导航栏点击「组织架构」-「用户」,选择一个用户,点击「删除」按钮,弹出删除提示框点击「是」,提示删除用户成功。 + +# 禁用/启用用户 + +在左侧导航栏点击「组织架构」-「用户」,选择一个用户,点击「禁用」按钮,弹出提示框点击「是」,提示用户禁用成功。 + +用户被禁用后,不能登录系统,登录系统时在登录页提示「用户已禁用」。 + +用户被禁用后,可以被启用,在左侧导航栏点击「组织架构」-「用户」,选择一个被禁用用户,点击「启用」按钮,启用后可以重新登录。 + +# 导入AD用户 + +左侧导航栏点击「组织架构」-「用户」,点击「添加」,出现选择LDAP用户页面。 + +左侧可选择OU,在右侧可选择将用户批量添加至相应的业务组中,点击「导入」,添加LDAP用户完成。也可以按照关键字进行过滤。 + +>「Note」支持AD账号自动同步 + + + +# LDAP登录类型 {#ldap登录类型 .afff6} + +1. 进入菜单「系统管理」-「系统配置」,在系统配置中,用户可以配置当前租户的登录类型。当前租户可以支持的登录类型有: + 本地登录、LDAP/Microsoft Active Directory + + 选择本地登录,SmartCMP将使用本地数据库来对登录用户进行身份认证 + + 选择LDAP/Microsoft Active Directory, + SmartCMP将使用OpenLDAP或Miscrosoft AD 对登录用户进行身份认证 + +2. 如果选择LDAP/Microsoft Active Directory,将出现LDAP的配置界面 + + 目录服务器地址: OpenLDAP或Miscrosoft AD + 的主机地址(可输入多个域控地址,以逗号分隔) + + 目录服务端口: 如果是OpenLDAP, 请使用389端口;如果是Miscrosoft AD, + 请使用3268端口 + + 域名:请使用LDAP的语法输入域名,例如,您的域名是"cloudchef.io", + 这里的域名应该是"dc=cloudchef, dc=io" + + 管理员用户名:请使用 "账号\@域名"的方式,例如: + "administrator\@cloudchef.io" + + 管理员密码:请输入您的管理员密码 + + 目录搜索属性:这是根据您的LDAP的服务器的定制。我们提供了默认的搜索属性: + +3. 对于MicroSoft AD,我们默认使用sAMAccountName和 userPrincipalName + 来搜索匹配您的账号信息 + +4. 对于OpenLDAP,我们默认使用cn或uid来搜索匹配您的账号信息,如果您的服务器有额外的配置,请在这里输入您使用的搜索属性 + +5. 若勾选「允许本地同时登录」,则本地用户和LDAP用户可以同时登录 + + diff --git "a/AdminDoc/04\347\273\204\347\273\207\346\236\266\346\236\204\347\256\241\347\220\206/\350\247\222\350\211\262.html" "b/AdminDoc/04\347\273\204\347\273\207\346\236\266\346\236\204\347\256\241\347\220\206/\350\247\222\350\211\262.html" new file mode 100644 index 0000000..d9be2f6 --- /dev/null +++ "b/AdminDoc/04\347\273\204\347\273\207\346\236\266\346\236\204\347\256\241\347\220\206/\350\247\222\350\211\262.html" @@ -0,0 +1,1072 @@ + + + + + + + 角色 · 发行说明 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
                                  +
                                  + + + + + + + + +
                                  + +
                                  + +
                                  + + + + + + + + +
                                  +
                                  + +
                                  +
                                  + +
                                  + +

                                  角色

                                  +

                                  SmartCMP混合云应用管理平台支持多种角色的权限设置,系统已有基础角色包括:

                                  +
                                    +
                                  • 最高权限:系统管理员

                                    +
                                  • +
                                  • 租户级别:租户管理员、软件架构师、基础设施管理员和租户成员

                                    +
                                  • +
                                  • 业务组级别:业务组管理员和业务组成员

                                    +
                                  • +
                                  • 项目级别:项目管理员和项目成员

                                    +
                                  • +
                                  +

                                  如图示展现角色之间的逻辑关系:

                                  +

                                  系统管理员和租户管理员可以在「组织架构」-「角色」页面内添加、删除、编辑角色权限。角色管理完成后,系统管理员可以在「组织架构」-「用户」页面内管理用户,并根据需要为用户分配相应的角色。

                                  +

                                  在左侧菜单栏中点击「组织架构」-「角色」。角色列表界面,可以查看当前租户的所有角色信息,显示角色的名称、角色范围、描述等。可添加、编辑、删除角色,并管理权限。

                                  +

                                  1. 创建自定义角色

                                  +

                                  在左侧菜单栏中点击「组织架构」-「角色」,点击「添加」,进入创建角色界面中。输入角色名称、描述信息,选择相应的角色权限范围,给相应的实体对象赋予不同的权限。点击「保存」生成新的角色,点击「返回」放弃创建角色。

                                  +

                                  角色的权限范围支持租户级别。

                                  +
                                  +

                                  「Note」对某一个实体对象只有读取权限,则看不到左侧菜单栏相应的菜单项。

                                  +
                                  +

                                  2. 编辑自定义角色

                                  +

                                  在角色列表界面中,选中一个自定义角色,点击列表上面的「编辑」,即可打开编辑自定义角色界面。

                                  +

                                  系统默认的角色不能编辑,自定义角色可以编辑,编辑完成后点击「保存」;点击「返回」,将不进行任何修改。

                                  +

                                  3. 删除自定义角色

                                  +

                                  在角色列表界面中,选中一个自定义角色,点击列表上面的「删除」,弹出提示窗口,点击「是」即可删除该自定义角色。

                                  +

                                  系统默认的角色不能删除。

                                  +
                                  +

                                  「Note」假如该角色仍然被其他用户所关联,则不允许删除。

                                  +
                                  + + +
                                  + +
                                  +
                                  +
                                  + +

                                  results matching ""

                                  +
                                    + +
                                    +
                                    + +

                                    No results matching ""

                                    + +
                                    +
                                    +
                                    + +
                                    +
                                    + +
                                    + + + + + + + + + + + + + + +
                                    + + +
                                    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git "a/AdminDoc/04\347\273\204\347\273\207\346\236\266\346\236\204\347\256\241\347\220\206/\350\247\222\350\211\262.md" "b/AdminDoc/04\347\273\204\347\273\207\346\236\266\346\236\204\347\256\241\347\220\206/\350\247\222\350\211\262.md" new file mode 100644 index 0000000..27ecb81 --- /dev/null +++ "b/AdminDoc/04\347\273\204\347\273\207\346\236\266\346\236\204\347\256\241\347\220\206/\350\247\222\350\211\262.md" @@ -0,0 +1,41 @@ +**角色** + +SmartCMP混合云应用管理平台支持多种角色的权限设置,系统已有基础角色包括: + +- 最高权限:系统管理员 + +- 租户级别:租户管理员、软件架构师、基础设施管理员和租户成员 + +- 业务组级别:业务组管理员和业务组成员 + +- 项目级别:项目管理员和项目成员 + +如图示展现角色之间的逻辑关系: + + + +系统管理员和租户管理员可以在「组织架构」-「角色」页面内添加、删除、编辑角色权限。角色管理完成后,系统管理员可以在「组织架构」-「用户」页面内管理用户,并根据需要为用户分配相应的角色。 + +在左侧菜单栏中点击「组织架构」-「角色」。角色列表界面,可以查看当前租户的所有角色信息,显示角色的名称、角色范围、描述等。可添加、编辑、删除角色,并管理权限。 + +# 创建自定义角色 + +在左侧菜单栏中点击「组织架构」-「角色」,点击「添加」,进入创建角色界面中。输入角色名称、描述信息,选择相应的角色权限范围,给相应的实体对象赋予不同的权限。点击「保存」生成新的角色,点击「返回」放弃创建角色。 + +角色的权限范围支持租户级别。 + +>「Note」对某一个实体对象只有读取权限,则看不到左侧菜单栏相应的菜单项。 + +# 编辑自定义角色 + +在角色列表界面中,选中一个自定义角色,点击列表上面的「编辑」,即可打开编辑自定义角色界面。 + +系统默认的角色不能编辑,自定义角色可以编辑,编辑完成后点击「保存」;点击「返回」,将不进行任何修改。 + +# 删除自定义角色 + +在角色列表界面中,选中一个自定义角色,点击列表上面的「删除」,弹出提示窗口,点击「是」即可删除该自定义角色。 + +系统默认的角色不能删除。 + +>「Note」假如该角色仍然被其他用户所关联,则不允许删除。 diff --git "a/AdminDoc/04\347\273\204\347\273\207\346\236\266\346\236\204\347\256\241\347\220\206/\351\241\271\347\233\256.html" "b/AdminDoc/04\347\273\204\347\273\207\346\236\266\346\236\204\347\256\241\347\220\206/\351\241\271\347\233\256.html" new file mode 100644 index 0000000..2c605c2 --- /dev/null +++ "b/AdminDoc/04\347\273\204\347\273\207\346\236\266\346\236\204\347\256\241\347\220\206/\351\241\271\347\233\256.html" @@ -0,0 +1,1064 @@ + + + + + + + 项目 · 发行说明 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
                                    +
                                    + + + + + + + + +
                                    + +
                                    + +
                                    + + + + + + + + +
                                    +
                                    + +
                                    +
                                    + +
                                    + +

                                    项目

                                    +

                                    1. 添加项目

                                    +
                                      +
                                    1. 在左边导航栏选择「组织架构」-「项目」,点击「添加」
                                    2. +
                                    +

                                    输入项目名称,选择所属业务组,点击「确定」

                                    +
                                      +
                                    1. 「用户」页面:

                                      +
                                    2. +
                                    3. 关联用户:点击「关联用户」,勾选用户,点击「确定」,关联该用户到项目。关联成功后,将在项目页面显示已关联用户,点击登录名将跳转至用户界面

                                      +
                                    4. +
                                    5. 移除用户:若该项目中已有用户,在列表中选择某用户,点击「移除用户」,取消该用户和项目的关联

                                      +
                                    6. +
                                    7. 关联角色:选中某个用户,点击「关联角色」,选择项目管理员,点击「提交」,给该用户项目管理员的角色

                                      +
                                    8. +
                                    9. 点击「保存」,项目创建成功

                                      +
                                    10. +
                                    +

                                    2. 编辑/删除项目

                                    +

                                    您可以根据下面的步骤来编辑项目:在左边导航选择「组织架构」-「项目」,在列表中选择一个项目,点击「编辑」按钮,或点击项目名称,进入项目详情页面,输入需要修改的内容点击「保存」。

                                    +

                                    您可以根据下面的步骤来删除项目: +在左边导航选择「组织架构」-「项目」,选择一个项目,点击「删除」按钮,确认删除操作,点击「是」删除项目,项目删除成功。

                                    + + +
                                    + +
                                    +
                                    +
                                    + +

                                    results matching ""

                                    +
                                      + +
                                      +
                                      + +

                                      No results matching ""

                                      + +
                                      +
                                      +
                                      + +
                                      +
                                      + +
                                      + + + + + + + + + + + + + + +
                                      + + +
                                      + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git "a/AdminDoc/04\347\273\204\347\273\207\346\236\266\346\236\204\347\256\241\347\220\206/\351\241\271\347\233\256.md" "b/AdminDoc/04\347\273\204\347\273\207\346\236\266\346\236\204\347\256\241\347\220\206/\351\241\271\347\233\256.md" new file mode 100644 index 0000000..86fe15d --- /dev/null +++ "b/AdminDoc/04\347\273\204\347\273\207\346\236\266\346\236\204\347\256\241\347\220\206/\351\241\271\347\233\256.md" @@ -0,0 +1,24 @@ +**项目** + +# 添加项目 + +1. 在左边导航栏选择「组织架构」-「项目」,点击「添加」 + +输入项目名称,选择所属业务组,点击「确定」 + +2. 「用户」页面: + +- 关联用户:点击「关联用户」,勾选用户,点击「确定」,关联该用户到项目。关联成功后,将在项目页面显示已关联用户,点击登录名将跳转至用户界面 + +- 移除用户:若该项目中已有用户,在列表中选择某用户,点击「移除用户」,取消该用户和项目的关联 + +- 关联角色:选中某个用户,点击「关联角色」,选择项目管理员,点击「提交」,给该用户项目管理员的角色 + +3. 点击「保存」,项目创建成功 + +# 编辑/删除项目 + +您可以根据下面的步骤来编辑项目:在左边导航选择「组织架构」-「项目」,在列表中选择一个项目,点击「编辑」按钮,或点击项目名称,进入项目详情页面,输入需要修改的内容点击「保存」。 + +您可以根据下面的步骤来删除项目: +在左边导航选择「组织架构」-「项目」,选择一个项目,点击「删除」按钮,确认删除操作,点击「是」删除项目,项目删除成功。 diff --git "a/AdminDoc/05\346\234\215\345\212\241\345\273\272\346\250\241/README.md" "b/AdminDoc/05\346\234\215\345\212\241\345\273\272\346\250\241/README.md" new file mode 100644 index 0000000..5851ba2 --- /dev/null +++ "b/AdminDoc/05\346\234\215\345\212\241\345\273\272\346\250\241/README.md" @@ -0,0 +1,11 @@ +**服务模型** + + +在SmartCMP中,一切服务基于蓝图建模来定义标准的服务框架与组件,SmartCMP提供丰富的开箱即用的软件组件,以可视化的形式编排蓝图,提供自定义表单,为任意服务定义参数和字段,灵活的为各项服务配置资源满足用户多样的需求;同时提供内置的流程设计器,让用户能够以可视化拖拉拽的方式设计服务流程和审批流程,帮助用户准确和快速的完成流程策略设计。 +管理员将服务分组通过服务目录发布企业或组织需要的IT产品和服务,提供给用户自助申请。服务建模为各项服务配置资源、参数、自动化的工作流程和审批策略,实现自动化部署。 + +下图描述了如何组合组件、构建蓝图、服务配置、服务分组和发布的全过程。软件架构师组合软件组件和基础架构组件构建云服务的蓝图,管理员为服务配置资源和参数,IT支持管理员定义流程并指定服务团队,将服务分组并发布到服务目录。业务组成员在服务目录中根据实际需求进行自助申请。 +>「Note」服务申请的具体操作,请您参考:[云服务管理](https://cloudchef.github.io/doc/AdminDoc/06云服务管理/) + +![服务模型示例](../../picture/Admin/服务模型.png) + diff --git "a/AdminDoc/05\346\234\215\345\212\241\345\273\272\346\250\241/index.html" "b/AdminDoc/05\346\234\215\345\212\241\345\273\272\346\250\241/index.html" new file mode 100644 index 0000000..ce5f82d --- /dev/null +++ "b/AdminDoc/05\346\234\215\345\212\241\345\273\272\346\250\241/index.html" @@ -0,0 +1,1050 @@ + + + + + + + 服务建模 · 发行说明 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
                                      +
                                      + + + + + + + + +
                                      + +
                                      + +
                                      + + + + + + + + +
                                      +
                                      + +
                                      +
                                      + +
                                      + +

                                      服务模型

                                      +

                                      在SmartCMP中,一切服务基于蓝图建模来定义标准的服务框架与组件,SmartCMP提供丰富的开箱即用的软件组件,以可视化的形式编排蓝图,提供自定义表单,为任意服务定义参数和字段,灵活的为各项服务配置资源满足用户多样的需求;同时提供内置的流程设计器,让用户能够以可视化拖拉拽的方式设计服务流程和审批流程,帮助用户准确和快速的完成流程策略设计。 +管理员将服务分组通过服务目录发布企业或组织需要的IT产品和服务,提供给用户自助申请。服务建模为各项服务配置资源、参数、自动化的工作流程和审批策略,实现自动化部署。

                                      +

                                      下图描述了如何组合组件、构建蓝图、服务配置、服务分组和发布的全过程。软件架构师组合软件组件和基础架构组件构建云服务的蓝图,管理员为服务配置资源和参数,IT支持管理员定义流程并指定服务团队,将服务分组并发布到服务目录。业务组成员在服务目录中根据实际需求进行自助申请。

                                      +
                                      +

                                      「Note」服务申请的具体操作,请您参考:云服务管理

                                      +
                                      +

                                      服务模型示例

                                      + + +
                                      + +
                                      +
                                      +
                                      + +

                                      results matching ""

                                      +
                                        + +
                                        +
                                        + +

                                        No results matching ""

                                        + +
                                        +
                                        +
                                        + +
                                        +
                                        + +
                                        + + + + + + + + + + + + + + +
                                        + + +
                                        + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git "a/AdminDoc/05\346\234\215\345\212\241\345\273\272\346\250\241/\346\234\215\345\212\241\345\210\206\347\273\204.html" "b/AdminDoc/05\346\234\215\345\212\241\345\273\272\346\250\241/\346\234\215\345\212\241\345\210\206\347\273\204.html" new file mode 100644 index 0000000..d8d49d8 --- /dev/null +++ "b/AdminDoc/05\346\234\215\345\212\241\345\273\272\346\250\241/\346\234\215\345\212\241\345\210\206\347\273\204.html" @@ -0,0 +1,1053 @@ + + + + + + + 服务分组 · 发行说明 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
                                        +
                                        + + + + + + + + +
                                        + +
                                        + +
                                        + + + + + + + + +
                                        +
                                        + +
                                        +
                                        + +
                                        + +

                                        服务分组

                                        +

                                        支持服务卡片的分类。可自定义不同服务卡片的类别,在服务配置中将相关的服务关联到不同的类别,在服务目录中分类展示,其中内置的服务分组有三种类型:工单服务,数据库和基础设施。

                                        +

                                        1. 添加服务分组

                                        +

                                        在左侧导航栏点击「服务建模」-「服务分组」,点击「添加」按钮,输入服务名称和服务描述,点击「保存」,即可添加成功。

                                        +

                                        2. 编辑、删除服务分组

                                        +
                                          +
                                        • 在左侧导航栏点击「服务建模」-「服务分组」,选择一个服务分组,点击「编辑」按钮,输入需要修改的内容,点击「保存」。

                                          +
                                        • +
                                        • 在左侧导航栏点击「服务建模」-「服务分组」,选择一个服务分组,点击「删除」按钮,提示删除服务分组成功。

                                          +
                                        • +
                                        + + +
                                        + +
                                        +
                                        +
                                        + +

                                        results matching ""

                                        +
                                          + +
                                          +
                                          + +

                                          No results matching ""

                                          + +
                                          +
                                          +
                                          + +
                                          +
                                          + +
                                          + + + + + + + + + + + + + + +
                                          + + +
                                          + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git "a/AdminDoc/05\346\234\215\345\212\241\345\273\272\346\250\241/\346\234\215\345\212\241\345\210\206\347\273\204.md" "b/AdminDoc/05\346\234\215\345\212\241\345\273\272\346\250\241/\346\234\215\345\212\241\345\210\206\347\273\204.md" new file mode 100644 index 0000000..769d165 --- /dev/null +++ "b/AdminDoc/05\346\234\215\345\212\241\345\273\272\346\250\241/\346\234\215\345\212\241\345\210\206\347\273\204.md" @@ -0,0 +1,13 @@ +**服务分组** + +支持服务卡片的分类。可自定义不同服务卡片的类别,在服务配置中将相关的服务关联到不同的类别,在服务目录中分类展示,其中内置的服务分组有三种类型:工单服务,数据库和基础设施。 + +# 添加服务分组 + +在左侧导航栏点击「服务建模」-「服务分组」,点击「添加」按钮,输入服务名称和服务描述,点击「保存」,即可添加成功。 + +# 编辑、删除服务分组 + +- 在左侧导航栏点击「服务建模」-「服务分组」,选择一个服务分组,点击「编辑」按钮,输入需要修改的内容,点击「保存」。 + +- 在左侧导航栏点击「服务建模」-「服务分组」,选择一个服务分组,点击「删除」按钮,提示删除服务分组成功。 diff --git "a/AdminDoc/05\346\234\215\345\212\241\345\273\272\346\250\241/\346\234\215\345\212\241\351\205\215\347\275\256.html" "b/AdminDoc/05\346\234\215\345\212\241\345\273\272\346\250\241/\346\234\215\345\212\241\351\205\215\347\275\256.html" new file mode 100644 index 0000000..852a97e --- /dev/null +++ "b/AdminDoc/05\346\234\215\345\212\241\345\273\272\346\250\241/\346\234\215\345\212\241\351\205\215\347\275\256.html" @@ -0,0 +1,2011 @@ + + + + + + + 服务配置 · 发行说明 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
                                          +
                                          + + + + + + + + +
                                          + +
                                          + +
                                          + + + + + + + + +
                                          +
                                          + +
                                          +
                                          + +
                                          + +

                                          服务配置

                                          +

                                          SmartCMP云管平台从组件的定义,到应用的可视化拓扑建模,并将服务配置标准化,再到基于蓝图和配置的自动化部署,最终生成一个符合TOSCA规范的云资源蓝图服务。支持管理员将设计好的蓝图发布为服务,在服务配置处配置基本信息、构成蓝图的组件详细参数、输入与输出、可以将服务与企业内部的流程(例如:审批流程)集成之后发布到服务目录。服务项主要功能有:

                                          +
                                            +
                                          • 服务与一个、多个或全部蓝图关联,服务与业务组关联,选定服务类型(云资源蓝图服务、手工工单服务、执行任务服务等等)

                                            +
                                          • +
                                          • 服务与服务策略关系,如服务时间、租期、服务流程等

                                            +
                                          • +
                                          • 服务访问权限设置,配置部署操作许可,指定操作权限

                                            +
                                          • +
                                          • 服务与流程集成,如审批流程、云服务部署流程等等

                                            +
                                          • +
                                          +

                                          具体操作步骤如下文:在左边导航选择「服务建模」-「服务配置」,出现服务列表,列表中显示服务名称、描述、蓝图设计、业务组、状态、服务部署数量、创建时间等,可对服务配置做如下操作:添加、编辑、取消发布、删除等。

                                          +
                                          +

                                          「Note」服务发布完成之后,可以通过服务目录进行服务申请,具体操作方法参考:服务目录申请

                                          +
                                          +

                                          1. 添加服务配置

                                          +

                                          您可以根据下面步骤添加服务配置:

                                          +
                                            +
                                          1. 在左边导航栏选择「服务建模」-「服务配置」,点击「添加」

                                            +
                                          2. +
                                          3. 填写服务名称、服务描述(选填)、选择业务组,服务类型,当选择服务类型为云资源蓝图服务时,增选蓝图设计,选择关联一个、多个、或全部蓝图,当选择手工工单服务是,增选流程选择,点击「提交」

                                            +

                                            接下来为您介绍云资源蓝图服务配置的具体步骤,手工工单服务配置具体步骤请参考:手工工单服务配置

                                            +
                                          4. +
                                          +
                                          +

                                          「Note」服务配置的服务描述支持Markdown语法书写规则,从而在服务申请时候展示不同服务描述的展示格式

                                          +
                                          +

                                          1.1. 概况

                                          +

                                          在「概况」标签页填入下列信息:服务项名称、服务项描述、 服务项logo选择,发布后将在服务目录处显示、业务组名称 +(服务配置可设置在某个业务组,或共享给所有业务组;当共享给所有业务组时,有些设置无法在服务配置时指定,将在用户申请服务时,指定某个业务组后,根据选中业务组上的资源而决定),状态(只读)服务项状态(已发布:将服务项发布到服务目录;未发布:服务项未发布状态;已过期:服务项已过期)

                                          +
                                            +
                                          • 服务部署租用时间(日) 服务部署租用时间到后,部署里的所有云主机会停机。可配置的租用时间在业务组配置的区间范围内设置,勾选「允许修改」和「仅审批时可修改」。

                                            +
                                          • +
                                          • 服务部署保留时间(日) 保留时间,保留时间到后,部署会被卸除。可配置的保留时间在业务组配置的区间范围内设置,勾选「允许修改」和「仅审批时可修改」。

                                            +
                                          • +
                                          • 启用关联规则 支持将vSphere虚拟机强制分散到不同的物理机或聚合到同一台物理机上。允许申请时添加软件 勾选后,服务发布成功后,服务申请时将允许该服务在申请时候添加软件

                                            +
                                          • +
                                          +

                                          点击「输入与输出」:可添加输入输出参数,服务部署成功后,可在详情页面进行查看相关输出数据。输入:点击添加,填写名称(必填)、描述、默认值等输入信息。 输出:点击添加,填写名称(必填)、描述、表达式(必填)等输出信息。表达式可选择已有,也可根据需求自行输入。

                                          +

                                          点击「审批配置」标签页,选择审批流程(内置的默认审批流程或自定义的审批流程,例如:平行审批流程)、查看审批流程图、审批流程步骤

                                          +

                                          点击「流程配置」标签页,选择服务流程(内置的标准云服务部署流程或自定义的服务流程),查看服务流程图、服务流程步骤

                                          +

                                          点击「表单配置」标签页,选择表单、进行表单预览

                                          +

                                          点击「部署操作许可」视图:在此可启用服务部署管理中的各项操作,以及配置所需的审批流程。对于每个操作,可针对不同的角色,配置不同的规则和审批流程。默认继承业务组配置,可增删,可对操作列表进行角色筛选

                                          +

                                          1.2. 组件配置

                                          +

                                          点击「组件配置」标签页,可看到配置服务中的蓝图拓扑和所有组件:

                                          +

                                          组件配置列表中有三种类型的组件,分别为:计算组件、软件组件、网络组件。计算组件:一般指服务器或计算节点,如Server、WindowsServer、InstanceD等, 软件组件:一般是放在服务器或者计算节点上的应用,例如:Apache、MySQL、Tomcat等, 网络组件:一般指服务器的网络配置,如network

                                          +

                                          组件配置:

                                          +
                                            +
                                          • 计算组件配置:可以通过选择有启用监控的虚拟机模板来给当前节点或服务器添加监控

                                            +
                                          • +
                                          • 软件组件:可以添加相应的监控点来启用监控,软件组件所在的节点必须启用监控,软件组件的监控才会生效。当带监控的服务器或节点和软件组件部署成功后,可以在部署详情页面的监控标签页查看当前部署的监控数据信息。对应的节点云主机详情页面也会有节点的监控标签页以供用户监控当前节点的数据。同时,如果当前节点中安装了带监控点的软件组件,则可以通过添加监控点来查看软件组件的监控数据

                                            +
                                          • +
                                          • 软件组件节点详细设置,与制品库相关联的设置,选择组、软件组件名称、版本。

                                            +
                                          • +
                                          +

                                          云资源配置:服务配置中,配置云主机节点的云资源配置,需要注意资源池选择策略,平台主要提供以下几种策略:

                                          +
                                            +
                                          • 手工指定:手工指定资源池,若资源池选择策略选择“手工指定”,支持使用资源标签,缩小选择范围,将出现“资源池”选择项,在下拉框中选择资源池,指定资源池,可选择勾选「允许修改」和「仅审批时可修改」。
                                          • +
                                          • 自动选择剩余容量最大的:平台自动按照策略选择当前可选择的资源池,资源使用量最小,剩余容量最大的。
                                          • +
                                          • 自动选择费用最低的:平台支持设置资源计费规则,按照策略选择当前可选择的资源池,费用最低 花费最少的。
                                          • +
                                          • 平均分配:服务部署的时, 资源是平均分配到不同的资源池, (平均分配的前提是选择的资源池有足够的资源。)
                                          • +
                                          +
                                          +

                                          「Note」资源标签来源于管理员在「系统管理」-「资源标签」中配置完成,具体配置参考,请参考:资源标签 根据标签选择匹配该标签的资源池,实现将应用部署到特定的资源池。

                                          +
                                          +

                                          1.3. 部署操作许可

                                          +

                                          部署操作许可规定了对该服务部署成功后可启用服务部署管理中的各项操作,以及配置所需的审批流程。对于每个操作,可针对不同的角色,配置不同的启用规则和审批流程。

                                          +
                                            +
                                          1. 点击左侧导航栏「服务建模」-「服务配置」,点击服务部署名称,进入服务部署页面。

                                            +
                                          2. +
                                          3. 点击「服务部署操作许可」标签页,在此可配置服务部署中的各项操作,以及配置所需的审批流程。对于每个操作,可针对不同的角色,配置不同的启用规则和审批流程。

                                            +
                                          4. +
                                          +
                                          +

                                          「Note」服务部署操作许可列表由业务组服务部署操作许可继承而来,不勾选「继承业务组配置」可在此范围内删减许可。

                                          +
                                          +
                                            +
                                          1. 若勾选「继承业务组配置」,则与在业务组中的服务部署操作配置相同

                                            +
                                          2. +
                                          3. 若不勾选「继承业务组配置」,在每项操作后进行编辑,选择启用状况,最后点击「保存」

                                            +
                                          4. +
                                          +

                                          2. 配置云资源蓝图服务

                                          +

                                          2.1. 配置vSphere单节点服务

                                          +
                                            +
                                          1. 在左侧导航点击「服务建模」-「服务配置」,点击左上角的「添加」进入新建服务配置界面,依次填写服务名称,服务描述(选填),蓝图设计(选择创建的vSphere单节点蓝图,业务组,点击「提交」

                                            +
                                          2. +
                                          3. 「概况」「输入与输出」和「服务部署操作许可」视图配置请参照[概述]

                                            +
                                          4. +
                                          5. 「组件配置」视图:可以看到vSphere服务拓扑图以及服所有组件:Server、Network

                                            +
                                              +
                                            • Server:点击Server名称,进入节点详细设置,共有「概况」「服务器配置」「网络」「用户」「磁盘」「关系」「操作许可」等标签页
                                            • +
                                            +
                                          6. +
                                          +

                                          「概况」页面:

                                          +
                                            +
                                          • 基本信息 展示server的类型、类别和名称等基本信息
                                          • +
                                          • 云主机数量 选择部署的云主机数量

                                            +
                                            +

                                            「Note」勾选「允许修改」和「仅审批时可修改」。这里存在两种情况:如果勾选一项「允许修改」,则用户在请求服务时,可以进行修改参数云主机数量,在服务审批阶段也可以进行修改参数云主机数量;如果勾选两项项「允许修改」和「仅审批时可修改」,则用户在请求服务时,不可以进行修改参数云主机数量,只在服务审批阶段允许进行修改参数云主机数量;

                                            +
                                            +
                                          • +
                                          +

                                          「服务器配置」页面: +计算资源

                                          +
                                            +
                                          • OS主机名(Hostname) 没有定义时默认继承业务组命名规则,勾选「允许修改」和「仅审批时可修改」。这里存在两种情况:
                                          • +
                                          • 如果勾选一项「允许修改」,则用户在请求服务时,可修改参数,在服务审批阶段也可修改参数;
                                          • +
                                          • 如果勾选两项「允许修改」和「仅审批时可修改」,用户在服务请求中,不可修改参数,只在服务审批阶段允许修改参数;
                                          • +
                                          • 云主机名称 没有定义时默认继承业务组命名规则,勾选「允许修改」和「仅审批时可修改」。
                                          • +
                                          • 注释 选填,勾选「允许修改」和「仅审批时可修改」。
                                          • +
                                          • AD域(Windows服务):AD域 勾选后,填写AD域名和用户姓名、密码。该服务部署后的虚机将加进AD域里
                                          • +
                                          +

                                          模板设置

                                          +
                                            +
                                          • 操作系统名称 选择Linux/Windows操作系统
                                          • +
                                          • 虚拟机模板 选择该操作系统下的vSphere虚拟机模板
                                          • +
                                          • 计算规格配置
                                          • +
                                          • 计算规格模式 计算规格模式定义了云主机CPU和内存的配置方式。“自定义”允许直接输入数字,“固定规格”将按照管理员配置的计算规格进行选择
                                          • +
                                          • vCPU数量 若计算规格模式选择自定义,输入vCPU数量,勾选「允许修改」和「仅审批时可修改」。
                                          • +
                                          • 内存(GB) 若计算规格模式选择自定义,输入内存,勾选「允许修改」和「仅审批时可修改」。
                                          • +
                                          • 计算规格 若计算规格模式选择固定规格,选择规格,勾选「允许修改」和「仅审批时可修改」。
                                          • +
                                          • 在「系统管理」-「计算规格」中配置相关的计算规格
                                          • +
                                          +

                                          系统盘配置

                                          +
                                            +
                                          • 置备模式 (选择完全克隆的虚拟机模板才会出现该选项,即选择虚拟机虚拟磁盘的磁盘格式)支持三种置备模式:精简置备、厚置备延迟置零、厚置备置零。
                                          • +
                                          +
                                          +

                                          「Note」 厚置备延迟置零格式,以默认的厚格式创建虚拟磁盘。创建虚拟磁盘时分配虚拟磁盘所需的空间。创建时不会擦除物理设备上保留的数据,但是从虚拟机首次执行写入操作时会按需要将其置零。

                                          +

                                          「Note」 厚置备置零,是一种厚虚拟磁盘类型,支持诸如 Fault Tolerance 等群集功能。在创建时为虚拟磁盘分配所需的空间。与常规格式相反,创建虚拟磁盘后,会将物理设备上保留的数据置零。创建这种格式的磁盘所需的时间可能会比创建其他类型的磁盘所需的时间更长。

                                          +

                                          「Note」 精简置备格式,可节省存储空间。最初,精简置备的磁盘只使用该磁盘最初所需要的数据存储空间。如果以后精简磁盘需要更多空间,则它可以增长到为其分配的最大容量。

                                          +
                                          +
                                            +
                                          • 文件夹 虚机会部署在选中的vCenter文件夹里,支持申请时改变需要在「资源池」—「云平台资源信息」中选择文件夹
                                          • +
                                          • 数据存储策略 (选择完全克隆的虚拟机模板才会出现该选项)默认选择数据存储默认值,下拉可选择VMware vCenter中配置好的存储策略,支持勾选「允许修改」和「仅审批时可修改」。
                                          • +
                                          • 存储 虚机会部署在选中的存储里,存储会根据选择的存储策略判定兼容性,以及显示该存储的空余空间、总空间以及占比。若不选,则部署在资源池定义的存储里允许用户添加新磁盘时选择置备模式和存储 选择是否允许,若不允许,新磁盘的置备模式和存储的选择将与系统盘保持一致
                                          • +
                                          +
                                            +
                                          • 「网络」页面配置访问域(选填)和DNS服务器(选填);IP分配方式根据资源池中的配置指定,可在Network节点中选择不同的网络标签

                                            +
                                          • +
                                          • 「用户」视图(Linux服务):可以添加Linux用户和用户组,一个用户可以有多个用户组,一个用户组可以有多个用户,虚拟机部署成功后,将会有对应的用户和组被创建,用户可以选择是否设置为sudoer。注意:只有安装了代理(部署时安装),才出现用户标签页面

                                            +
                                          • +
                                          • 「磁盘」视图:可以配置Linux虚拟机逻辑卷。除了直接创建硬盘分区外,还可以选择创建逻辑卷

                                            +
                                          • +
                                          + +
                                            +
                                          • 要创建逻辑卷(LV),需要先创建卷组(VG),然后往卷组中添加物理卷(PV)作为卷组底层资源,然后才能创建逻辑卷,一个卷组上创建的逻辑卷的总大小需不大于该卷组的资源总大小。物理卷可以勾选swap选项以创建swap分区

                                            +
                                          • +
                                          • 添加/更改磁盘(物理卷PV):存储为空的时候,图标变为绿色,表示部署时允许添加磁盘。添加的磁盘需要填写大小和置备模式(目前为必选项),挂载点、卷组、数据存储名选填

                                            +
                                          • +
                                          + +
                                            +
                                          • 「关系」视图:可选择可以关联的虚拟机

                                            +
                                          • +
                                          • 「操作许可」视图:为某服务项添加云资源操作许可]

                                            +
                                          • +
                                          + +
                                            +
                                          • 「Network」组件:点击network名称,进入节点详细设置,共有「概况」「属性」两个标签页
                                          • +
                                          + +
                                            +
                                          • 「概况」页面:可查看Network组件类型、类别、名称

                                            +
                                          • +
                                          • 「属性」页面:可选择网络标签以及管理网络,网络标签支持勾选「允许修改」和「仅审批时可修改」。

                                            +
                                          • +
                                          +
                                            +
                                          1. 「服务部署操作许可」视图:在此可启用服务部署管理中的各项操作,以及配置所需的审批流程。对于每个操作,可针对不同的角色,配置不同的规则和审批流程。默认继承业务组配置,可增删,可对操作列表进行角色筛选

                                            +
                                          2. +
                                          3. 点击「保存」,返回组件列表界面。点击「验证」,验证成功后,「保存并发布」该服务,vSphere虚拟机服务配置并发布成功

                                            +
                                          4. +
                                          +

                                          2.2. 配置VMware NSX服务

                                          +

                                          配置带NSX云平台的vSphere服务,配置服务前操作:

                                          +
                                            +
                                          1. 确保该业务组已添加vSphere云平台和VMware +NSX云平台,并在vSphere云平台处添加与VMware NSX云平台的关联关系

                                            +
                                          2. +
                                          3. 在vSphere资源池中,关联VMware +NSX的传输区域(将影响「NSX逻辑交换机」的显示)

                                            +
                                          4. +
                                          5. 关联成功后,在「资源池」- vSphere资源池 +-「网络资源」中看到「NSX逻辑交换机」「NSX逻辑路由器」「安全策略组」三个额外标签页

                                            +
                                              +
                                            • 配置「NSX逻辑交换机」,选择交换机并分配资源池(网络资源与NSX逻辑交换机至少配置一种)

                                              +
                                            • +
                                            • 配置「NSX逻辑路由器」,选择DLR加入该资源池

                                              +
                                            • +
                                            • 配置「安全策略组」,勾选已有的安全策略组

                                              +
                                            • +
                                            +
                                          6. +
                                          7. 点击「保存」,VMware NSX资源池配置成功

                                            +
                                          8. +
                                          +

                                          开始配置VMware NSX虚拟机服务:

                                          +
                                            +
                                          1. 「服务建模」-「服务配置」-「添加」,填写服务名称,选择在VMware +NSX蓝图,选择业务组,点击「提交」

                                            +
                                          2. +
                                          3. 「基本信息」「输入与输出」和「服务部署操作许可」视图配置请参照[概述]

                                            +
                                          4. +
                                          5. 点击「组件配置」,可看到VMware +NSX蓝图拓扑图和所有组件:Lswitch、Server、SecurityGroup、DLR,「Server」组件:配置同6.3.3.1 vSphere服务一样,「Lswitch」组件,点击Lswitch名称,进入「节点详细设置」页面:共有「基本信息」「属性」两个标签页
                                          6. +
                                          +

                                          基本信息」页面:查看Lswitch的基本信息,如类型、类别和名称

                                          +

                                          属性」页面: 属性(不勾选使用已有网络)

                                          +
                                            +
                                          • IP分配方式 支持IP池和手工指定,若选择IP池,需指定IP池
                                          • +
                                          • 复制模式 选择单播。支持单播、多播和混合三种方式
                                          • +
                                          • 管理网络 勾选是否管理网络
                                          • +
                                          • 属性(勾选使用已有网络)
                                          • +
                                          • 网络标签 从已有的网络中选择,勾选「允许修改」和「仅审批时可修改」。(需要在vSphere with NSX资源池中,选择NSX逻辑交换机)
                                          • +
                                          • IP分配方式 支持IP池、DHCP、手工指定三种方式
                                          • +
                                          • 管理网络 勾选是否管理网络
                                          • +
                                          +

                                          「DLR」组件,点击DLR名称,进入「节点详细设置」页面:共有「基本信息」「属性」两个标签页

                                          +

                                          「基本信息」页面:查看DLR的基本信息,如类型、类别和名称

                                          +

                                          「属性」页面:选择一个已有的逻辑路由器(DLR)(在资源池中选择NSX逻辑路由器);可增加接口配置

                                          +

                                          「SecurityGroup」组件,点击SecurityGroup名称,进入「节点详细设置」页面:共有「基本信息」「属性」两个标签页

                                          +

                                          「基本信息」页面:查看SecurityGroup的基本信息,如类型、类别和名称

                                          +

                                          「属性」页面: 属性(不勾选使用已有安全组)

                                          +
                                            +
                                          • 名称 新建安全组,填写安全组的名称,勾选「允许修改」和「仅审批时可修改」。
                                          • +
                                          • 描述 填写安全组相关描述信息(选填)
                                          • +
                                          • 属性(勾选使用已有安全组) 安全组 从已有的安全组中选择一个,需要在资源池「安全策略组」中选择一个或多个安全策略用于该资源池

                                            +
                                          • +
                                          • 点击「保存」,返回组件列表界面。点击「验证」,验证成功后,「保存并发布」该服务,VMware +NSX服务配置并发布成功

                                            +
                                          • +
                                          +

                                          2.3. 配置vSphere MySQL带监控服务

                                          +
                                            +
                                          1. 在左侧导航点击「服务建模」-「服务配置」,点击左上角的「添加」进入新建服务配置界面,依次填写服务名称,服务描述(选填),蓝图设计(选择创建的vSphereMySQL带监控蓝图,业务组,点击「提交」

                                            +
                                          2. +
                                          3. 「基本信息」「输入与输出」和「服务部署操作许可」视图配置请参照[概述]

                                            +
                                          4. +
                                          5. 「组件配置」视图:可以看到vSphere服务拓扑图以及服所有组件:Server、Network

                                            +
                                              +
                                            • 「Server」: 配置同vSphere服务一样(需选择带自动化代理的虚拟机模板)

                                              +
                                            • +
                                            • 「Network」:配置同vSphere服务一样

                                              +
                                            • +
                                            • 「MySQL」: +点击MySQL名称,进入节点详细设置,共有「基本信息」「属性」「关系」等标签页

                                              +
                                            • +
                                            +
                                          6. +
                                          + +
                                            +
                                          • 「基本信息」页面:展示MySQL的类型、类别和名称等基本信息

                                            +
                                          • +
                                          • 「属性」页面:展示MySQL主键相关信息,来源于「服务建模」-「软件组件」中的配置

                                            +
                                          • +
                                          • 「关系」页面:展示Server与MySQLExporter之间的关系

                                            +
                                          • +
                                          + +
                                            +
                                          • 「MySQLExporter」: + 点击MySQLExporter名称,进入节点详细设置,共有「基本信息」「属性」「关系」等标签页
                                          • +
                                          + +
                                            +
                                          • 「基本信息」页面:展示MySQLExporter的类型、类别和名称等基本信息

                                            +
                                          • +
                                          • 「属性」页面:展示MySQLExporter主键相关信息,来源于「服务建模」-「软件组件」中的配置,若未填写package_url,需填写地址

                                            +
                                          • +
                                          • 「关系」页面:展示Server与MySQLExporter之间的关系

                                            +
                                          • +
                                          +
                                            +
                                          1. 点击「保存」,返回组件列表界面。点击「验证」,验证成功后,「保存并发布」该服务,vSphere +MySQL带监控服务配置并发布成功
                                          2. +
                                          +

                                          2.4. 配置OpenStack单节点服务

                                          +
                                            +
                                          1. 在左侧导航点击「服务建模」-「服务配置」,点击左上角的「添加」进入新建服务配置界面,依次填写服务名称,服务描述(选填),蓝图设计(选择创建的OpenStack单节点蓝图,业务组,点击「提交」

                                            +
                                          2. +
                                          3. 「概况」「输入与输出」和「服务部署操作许可」视图配置请参照[概述]

                                            +
                                          4. +
                                          5. 「组件配置」视图:可以看到OpenStack +单节点服务拓扑图以及服所有组件:Server、Network

                                            +
                                              +
                                            • Server:点击Server名称,进入节点详细设置,共有「概况」「属性」「网络资源」「用户」「磁盘」「安全策略组」「关系」「操作许可」等标签页
                                            • +
                                            +
                                          6. +
                                          + +
                                            +
                                          • 「概况」页面:
                                          • +
                                          +
                                            +
                                          • 基本信息 展示server的类型、类别和名称等基本信息
                                          • +
                                          • 资源池选择策略
                                          • +
                                          • 自动选择:平台自动按照策略选择资源池
                                          • +
                                          • 基于资源标签选择:若该服务所使用的蓝图中已有资源便签,默认继承该资源标签,根据标签去选择业务组中匹配该标签的资源池(前提是资源池已设置资源标签),实现将资源部署到特定的资源池中。也可在服务配置选择其他资源标签;勾选「允许修改」和「仅审批时可修改」。
                                          • +
                                          • 手工指定:可选择为该服务手工指定资源池,若 资源池选择策略选择“手工指定”后,将出现资源池选择项,指定资源池,允许资源池申请时改变
                                            +

                                            「Note」若该服务共享给全部业务组,则资源池无法指定,默认强制勾选「允许修改」和「仅审批时可修改」。;若该服务指定给某一业务组,则选择该业务组下的资源池

                                            +
                                            +
                                          • +
                                          • 云主机数量 选择部署的云主机数量,勾选「允许修改」和「仅审批时可修改」。

                                            +

                                            「属性」页面:

                                            +
                                          • +
                                          +
                                            +
                                          • OS主机名 没有定义时默认继承业务组命名规则,勾选「允许修改」和「仅审批时可修改」。
                                          • +
                                          • 云主机名称 没有定义时默认继承业务组命名规则,勾选「允许修改」和「仅审批时可修改」。
                                          • +
                                          • 操作系统名称 选择Linux操作系统
                                          • +
                                          • 虚拟机模板 选择Linux操作系统下的OpenStack虚拟机模板
                                          • +
                                          • 卷类型 若选择从云硬盘启动或从云硬盘快照启动的虚拟机模板,则会出现该选项,选择OpenStack云平台上已存在的卷类型,也可选择"未设置卷类型"
                                          • +
                                          • 卷大小 若选择从云硬盘启动或从云硬盘快照启动的虚拟机模板,则会出现该选项,卷大小需大于等于镜像要求的磁盘大小,选填
                                          • +
                                          • 主机集合 虚机会部署到选择的主机中
                                          • +
                                          • 虚拟机规格 选择部署的虚拟机CPU和内存规格,支持勾选「允许修改」和「仅审批时可修改」。

                                            +
                                          • +
                                          • 「网络资源」页面可配置DNS:DNS名称、DNS域、DNS类型(仅支持A类型)、DNS服务器(勾选「允许修改」和「仅审批时可修改」。

                                            +
                                          • +
                                          • 「用户」视图(Linux服务):可以添加Linux用户和用户组,一个用户可以有多个用户组,一个用户组可以有多个用户,虚拟机部署成功后,将会有对应的用户和组被创建,用户可以选择是否设置为sudoer。注意:只有安装了代理(部署时安装),才出现用户标签页面

                                            +
                                          • +
                                          • 「磁盘」页面:可以配置Linux虚拟机逻辑卷。除了直接创建硬盘分区外,还可以选择创建逻辑卷(如果需要配置逻辑卷管理(LVM),请确保在虚拟机模板中安装自动化代理)

                                            +
                                          • +
                                          + +
                                            +
                                          • 要创建逻辑卷(LV),需要先创建卷组(VG),然后往卷组中添加物理卷(PV)作为卷组底层资源,然后才能创建逻辑卷,一个卷组上创建的逻辑卷的总大小需不大于该卷组的资源总大小。物理卷可以勾选swap选项以创建swap分区

                                            +
                                          • +
                                          • 添加/更改磁盘(物理卷PV):存储为空的时候,点击,表示部署时允许添加磁盘。添加的磁盘需要填写大小和置备模式(目前为必选项),挂载点、卷组、数据存储名选填

                                            +
                                          • +
                                          + +
                                            +
                                          • 「安全策略组」页面:可选择虚拟机的安全策略组

                                            +
                                          • +
                                          • 「关系」页面:可选择可以关联的虚拟机

                                            +
                                          • +
                                          • 「操作许可」页面: + 为某服务项添加云资源操作许可

                                            +
                                          • +
                                          + +
                                            +
                                          • 「Network」组件:点击network名称,进入节点详细设置,共有「基本信息」「属性」两个标签页
                                          • +
                                          + +
                                            +
                                          • 「基本信息」页面:可查看Network组件类型、类别、名称

                                            +
                                          • +
                                          • 「属性」页面:可选择网络、子网、IP分配方式(根据网络和子网的选择,读取资源池中的配置)以及管理网络,网络和子网勾选「允许修改」和「仅审批时可修改」。

                                            +
                                          • +
                                          +
                                            +
                                          1. 点击「保存」,返回组件列表界面。点击「验证」,验证成功后,「保存并发布」该服务,OpenStack +单节点服务配置并发布成功
                                          2. +
                                          +

                                          2.5. 配置OpenStack Firewall服务

                                          +
                                            +
                                          1. 在左侧导航选择「服务建模」-「服务配置」,点击左上角的「添加」进入新建服务配置界面,依次填写服务名称,服务描述(选填),蓝图设计(选择 OpenStack Firewall蓝图,业务组,点击「提交」
                                          2. +
                                          3. 「基本信息」「输入与输出」和「服务部署操作许可」视图配置请参照[概述]

                                            +
                                          4. +
                                          5. 「组件配置」视图:可以看到OpenStack +Firewall服务拓扑图以及Firewall组件

                                            +

                                            「基本信息」页面:可查看Firewall组件类型、类别、名称; 「属性」页面:

                                            +
                                          6. +
                                          7. 名称 防火墙名称(勾选「允许修改」和「仅审批时可修改」。这里存在两种情况:如果勾选一项「允许修改」,则用户在请求服务时,可修改参数,在服务审批阶段也可修改参数;如果勾选两项「允许修改」和「仅审批时可修改」,用户在服务请求中,不可修改参数,只在服务审批阶段允许修改参数;)

                                            +
                                          8. +
                                          9. 描述 选填
                                          10. +
                                          11. 管理员状态 启用、禁用,默认启用
                                          12. +
                                          13. 路由 只允许用户在申请时候选择,需要在配置OpenStack资源池时添加路由勾选“使用已有策略” 选择已有策略,勾选「允许修改」和「仅审批时可修改」。这里存在两种情况:如果勾选一项「允许修改」,则用户在请求服务时,可修改参数,在服务审批阶段也可修改参数;如果勾选两项「允许修改」和「仅审批时可修改」,用户在服务请求中,不可修改参数,只在服务审批阶段允许修改参数;不勾选“使用已有策略” 新建策略,填写策略名称(必填),策略描述(选填),选择是否“共享的”和“已审计”。 若勾选“共享的”,在对Firewall做运维操作「更新防火墙策略」时,只能选择已共享的策略及其策略下的规则; 若未勾选“共享的”,在对Firewall做运维操作「更新防火墙策略」时,可选择“共享的”和“未共享的“策略及其策略下的规则
                                          14. +
                                          15. 资源池选择策略 支持资源池选择策略
                                          16. +
                                          17. 资源池 当一个业务组关联多个OpenStack资源池时,支持选择具体使用哪个资源池的资源
                                          18. +
                                          19. 属性(勾选使用已有防火墙)
                                          20. +
                                          21. 防火墙 从已有防火墙中选择一个,勾选「允许修改」和「仅审批时可修改」。这里存在两种情况:如果勾选一项「允许修改」,则用户在请求服务时,可修改参数,在服务审批阶段也可修改参数;如果勾选两项「允许修改」和「仅审批时可修改」,用户在服务请求中,不可修改参数,只在服务审批阶段允许修改参数;
                                          22. +
                                          23. 资源池选择策略 支持资源池选择策略
                                          24. +
                                          25. 资源池 当一个业务组关联多个OpenStack资源池时,支持选择具体使用哪个资源池的资源
                                          26. +
                                          +
                                            +
                                          1. 点击「保存」,返回组件列表界面。点击「验证」,验证成功后,「保存并发布」该服务,OpenStack +Firewall虚拟机服务配置并发布成功
                                          2. +
                                          +

                                          2.6. 配置OpenStack LoadBalancer with SecuriryGruop服务

                                          +
                                            +
                                          1. 在左侧导航选择「服务建模」-「服务配置」,点击左上角的「添加」进入新建服务配置界面,依次填写服务名称,服务描述(选填),蓝图设计(选择OpenStack LoadBalancer with SecurityGroup蓝图,业务组,点击「提交」

                                            +
                                          2. +
                                          3. 「基本信息」「输入与输出」和「服务部署操作许可」视图配置请参照[概述]

                                            +
                                          4. +
                                          5. 「组件配置」视图:可以看到OpenStack LoadBalancer with +SecuriryGruop服务拓扑图以及所有组件:Server、Network +、LoadBalancer、Listener、SecurityGroup

                                            + +
                                          6. +
                                          + +
                                            +
                                          • 「基本信息」:显示类型、类别、名称等基本信息

                                            +
                                          • +
                                          • 「属性」页面

                                            +
                                          • +
                                          +
                                            +
                                          • 属性(不勾选使用已有资源)
                                          • +
                                          • 服务提供商 选择LoadBalancer的服务提供商(Provider),支持F5和HA
                                          • +
                                          • 名称 填写名称(必填),勾选「允许修改」和「仅审批时可修改」。
                                          • +
                                          • 描述 选填
                                          • +
                                          • DNS名称 仅支持请求服务时填写,如需指定DNS请勾选允许申请时更改,若勾选允许申请时修改,DNS服务器将必填,DNS类型为A
                                          • +
                                          • DNS域 选填,勾选「允许修改」和「仅审批时可修改」。
                                          • +
                                          • DNS服务器 选填,勾选「允许修改」和「仅审批时可修改」。
                                          • +
                                          • DNS类型 选填,勾选「允许修改」和「仅审批时可修改」。

                                            +
                                          • +
                                          • 属性(勾选使用已有资源)

                                            +
                                          • +
                                          • 服务提供商 选择LoadBalancer的服务提供商(Provider),支持F5和HA
                                          • +
                                          • 名称 填写名称(必填),勾选「允许修改」和「仅审批时可修改」。
                                          • +
                                          • DNS名称 仅支持请求服务时填写,如需指定DNS请勾选允许申请时更改若勾选允许申请时修改,DNS服务器将必填,DNS类型为A
                                          • +
                                          • DNS域 选填,勾选「允许修改」和「仅审批时可修改」。
                                          • +
                                          • DNS服务器 选填,勾选「允许修改」和「仅审批时可修改」。
                                          • +
                                          • DNS类型 选填,勾选「允许修改」和「仅审批时可修改」。
                                          • +
                                          +
                                            +
                                          • Listener:点击Listener名称,进入节点详细设置,共有「基本信息」「属性」「成员」「策略和规则」四个标签页
                                          • +
                                          + +
                                            +
                                          • 「基本信息」:显示类型、类别、名称等基本信息

                                            +
                                          • +
                                          • 「属性」页面

                                            +

                                            属性(不勾选使用已有资源)

                                            +
                                              +
                                            • 名称 填写名称(必填),勾选「允许修改」和「仅审批时可修改」。
                                            • +
                                            • 描述 选填
                                            • +
                                            • 协议 选择协议(选填),支持HTTP、TCP、UDP,勾选「允许修改」和「仅审批时可修改」。
                                            • +
                                            • 端口 填写端口号(必填),如80,勾选「允许修改」和「仅审批时可修改」。
                                            • +
                                            • 流量分发算法 选择一个算法(选填),勾选「允许修改」和「仅审批时可修改」。
                                            • +
                                            • 属性(勾选使用已有资源)
                                            • +
                                            • 名称 填写名称(必填),勾选「允许修改」和「仅审批时可修改」。
                                            • +
                                            +
                                          • +
                                          • 「成员」页面:内部成员和外部成员,内部成员列出当前蓝图中所有和该Listener节点相关联的server/windowsServer;外部成员,可添加外部成员,填写IP地址(必填)、子网(必填)、端口(必填)、权重等

                                            +
                                          • +
                                          • 「健康监控」页面:

                                            +
                                          • +
                                          + +
                                            +
                                          • 监控类型:支持多种监控类型,如HTTP、HTTPS、TCP等,勾选「允许修改」和「仅审批时可修改」。

                                            +
                                          • +
                                          • 时间间隔(秒):必须大于等于1,勾选「允许修改」和「仅审批时可修改」。

                                            +
                                          • +
                                          • 最大重试次数:1~10,勾选「允许修改」和「仅审批时可修改」。

                                            +
                                          • +
                                          • 超时(秒):超时(秒)必须小于等于时间间隔(秒),勾选「允许修改」和「仅审批时可修改」。

                                            +
                                          • +
                                          • HTTP方法:若监控类型选择HTTP,将选择HTTP方法。如GET、POST等,勾选「允许修改」和「仅审批时可修改」。

                                            +
                                          • +
                                          • 期望的状态码:若监控类型选择HTTP,将填写期望的状态码

                                            +
                                          • +
                                          • URL路径: + 若监控类型选择HTTP,将填写URL路径,勾选「允许修改」和「仅审批时可修改」。

                                            +
                                          • +
                                          + +
                                            +
                                          • 「策略和规则」页面:可新建应用于该Listener的策略和规则,勾选「允许修改」和「仅审批时可修改」。;添加策略,填写名称,选择操作,描述(选填),权重,重定向URL
                                          • +
                                          + +
                                            +
                                          • SecurityGroup:点击SecurityGroup名称,进入节点详细设置,共有「基本信息」和「属性」两个标签页
                                          • +
                                          + +
                                            +
                                          • 「基本信息」:显示类型、类别、名称等基本信息

                                            +
                                          • +
                                          • 「属性」页面:默认"使用已有安全组",选择一个安全组

                                            +
                                          • +
                                          +
                                          +

                                          「Note」OpenStack资源池中,在「网络资源」-「安全策略组」中需要选择一个安全策略组后,才能在SecurityGroup「属性」页面选择一个已有的安全组

                                          +
                                          +
                                            +
                                          1. 点击「保存」,返回组件列表界面。点击「验证」,验证成功后,「保存并发布」该服务,OpenStack +LoadBalancer with SecuriryGruop虚拟机服务配置并发布成功
                                          2. +
                                          +

                                          2.7. 配置OpenStack FloatingIP服务

                                          +
                                            +
                                          1. 在左侧导航选择「服务建模」-「服务配置」,点击左上角的「添加」进入新建服务配置界面,依次填写服务名称,服务描述(选填),蓝图设计(选择OpenStack FloatingIP蓝图,业务组,点击「提交」

                                            +
                                          2. +
                                          3. 「基本信息」「输入与输出」和「服务部署操作许可」视图配置请参照[概述]

                                            +
                                          4. +
                                          5. 「组件配置」视图:可以看到OpenStack +FloatingIP服务拓扑图及组件FloatingIP

                                            +
                                              +
                                            • FloatingIP:点击LoadBalancer名称,进入节点详细设置,共有「基本信息」和「属性」两个标签页
                                            • +
                                            +
                                          6. +
                                          + +
                                            +
                                          • 「基本信息」:显示类型、类别、名称等基本信息

                                            +
                                          • +
                                          • 「属性」页面

                                            +

                                            属性(不勾选使用已有资源)

                                            +
                                          • +
                                          +
                                            +
                                          • 网络 选择FloatingIP的网络,勾选「允许修改」和「仅审批时可修改」。
                                          • +
                                          • 子网 选择FloatingIP网络对应的子网,勾选「允许修改」和「仅审批时可修改」。
                                          • +
                                          • IP分配方式 选择IP分配方式,支持IP池、DHCP、手工指定,若选择手工指定,则需在服务申请时指定IP地址
                                          • +
                                          • IP池 若选择IP池的分配方式,选择IP池
                                          • +
                                          • DNS名称 仅支持请求服务时填写,如需指定DNS请勾选允许申请时更改
                                          • +
                                          • DNS域 选填,勾选「允许修改」和「仅审批时可修改」。
                                          • +
                                          • DNS服务器 选填,勾选「允许修改」和「仅审批时可修改」。
                                          • +
                                          • DNS类型 选填,勾选「允许修改」和「仅审批时可修改」。
                                          • +
                                          • 属性(勾选使用已有资源)
                                          • +
                                          • 浮动IP 选择FloatingIP的网络,勾选「允许修改」和「仅审批时可修改」。

                                            +
                                          • +
                                          • 点击「保存」,返回组件列表界面。点击「验证」,验证成功后,「保存并发布」该服务,OpenStack +FloatingIP虚拟机服务配置并发布成功

                                            +
                                          • +
                                          +

                                          2.8. 配置OpenStack DNS服务

                                          +
                                            +
                                          1. 在左侧导航选择「服务建模」-「服务配置」,点击左上角的「添加」进入新建服务配置界面,依次填写服务名称,服务描述(选填),蓝图设计(选择OpenStack DNS蓝图,业务组,点击「提交」

                                            +
                                          2. +
                                          3. 「基本信息」「输入与输出」和「服务部署操作许可」视图配置请参照[概述]

                                            +
                                          4. +
                                          5. 「组件配置」视图:可以看到OpenStack DNS服务拓扑图及组件DNS

                                            +
                                              +
                                            • DNS:点击DNS名称,进入节点详细设置,共有「基本信息」和「属性」两个标签页
                                            • +
                                            +
                                          6. +
                                          + +
                                            +
                                          • 「基本信息」:显示类型、类别、名称等基本信息

                                            +
                                          • +
                                          • 「属性」页面

                                            +
                                          • +
                                          +
                                            +
                                          • DNS类型 支持A、CNAME、MX、TXT 4种类型 +• A记录:WEB服务器的IP指向,用来指定主机名(或域名)对应的IP地址记录 +• CNAME记录:别名解析 +• MX记录:邮件交换记录 +• TXT记录:某个主机名或域名的说明
                                          • +
                                          • MX优先级 如果DNS类型选择MX,将出现「MX优先级」这个菜单
                                          • +
                                          • DNS名称 输入DNS的名称,默认强制允许申请时更改
                                          • +
                                          • DNS域 选择DNS域,在系统配置中添加的DNS域
                                          • +
                                          • DNS服务器 根据所在业务组的OpenStack云平台服务器中配置的DNS服务器选择
                                          • +
                                          • DNS参数 若DNS类型选择的A:填写IP地址,支持多条,用逗号分隔;
                                          • +
                                          • 若DNS类型选择的CNAME:输入域名,例test.example.com
                                          • +
                                          • 若DNS类型选择的MX:输入域名,例test.example.com
                                          • +
                                          • 若DNS类型选择的TXT:输入一段描述
                                          • +
                                          +
                                            +
                                          1. 点击「保存」,返回组件列表界面。点击「验证」,验证成功后,「保存并发布」该服务,OpenStack +DNS虚拟机服务配置并发布成功
                                          2. +
                                          +

                                          2.9. 配置Kubernetes服务

                                          +
                                            +
                                          1. 在左侧导航选择「服务建模」-「服务配置」,点击左上角的「添加」进入新建服务配置界面,依次填写服务名称,服务描述(选填),蓝图设计(,业务组,点击「提交」

                                            +
                                          2. +
                                          3. 「基本信息」「输入与输出」和「服务部署操作许可」视图配置请参照[概述]

                                            +
                                          4. +
                                          5. 「组件配置」视图:可以看到Kubernetes服务拓扑图以及服务配置中的所有组件,根据kubernetes蓝图,一共有4个组件,分别是Deployment、Service、Container、PersistentVolumeClaim

                                            +
                                              +
                                            • Deployment:点击Deployment名称,进入「基本信息」页面,点击「属性」,可选择副本数量,默认为1,点击「保存」

                                              +
                                            • +
                                            • Container:点击Container名称,进入基本信息页面,点击「属性」标签页:

                                              +
                                            • +
                                            +

                                            Container

                                            +
                                          6. +
                                          7. 镜像源 选择已添加的镜像源,可在kubernetes云平台中添加的Habor、Docker Trusted Registry镜像源,勾选「允许修改」和「仅审批时可修改」。

                                            +
                                          8. +
                                          9. 镜像名称 若已选镜像源,则自动过滤该镜像源下的镜像;若未选择镜像源,可输入名称自动创建,勾选「允许修改」和「仅审批时可修改」。
                                          10. +
                                          11. 镜像标签 选择需要的镜像标签,勾选「允许修改」和「仅审批时可修改」。
                                          12. +
                                          13. 资源规格 - CPU 输入请求的CPU大小和最大限制的CPU大小,请求的CPU不能大于最大限制,支持申请时改变
                                          14. +
                                          15. 资源规格 - 内存 输入请求的内存大小和最大限制的内存大小,请求的内存不能大于最大限制,支持申请时改变
                                          16. +
                                          17. 容器开放端口 例如8080
                                          18. +
                                          19. 环境变量 例如参数/JRE_Home的值为/usr

                                            +
                                              +
                                            • Service:点击Service名称,进入基本信息页面,点击「属性」,可配置端口映射,填写下列的信息:
                                            • +
                                            +
                                          20. +
                                          21. 服务端口 服务对外开放的端口,例如8080

                                            +
                                          22. +
                                          23. 所依赖的Deployment节点 选择该Service依赖的一个Deployment节点
                                          24. +
                                          25. 所依赖的Container节点 选择Deployment中的容器节点
                                          26. +
                                          27. 容器开放端口 选择容器中配置的开放端口
                                          28. +
                                          29. 主机端口 选择Node的开放端口,默认范围30000-32767
                                          30. +
                                          31. 协议 TCP或者UDP
                                          32. +
                                          +

                                          PersistentVolumeClaim:点击PersistentVolumeClaim名称,进入基本信息页面,点击「属性」:

                                          +
                                            +
                                          • 挂载点 例如/opt/share
                                          • +
                                          • 访问模式 支持ReadWriteOnce,ReadOnlyMany,ReadWriteMany
                                          • +
                                          • 存储类 Standard
                                          • +
                                          • 空间限额(Gi) 输入空间大小

                                            +
                                          • +
                                          • 点击「保存」,返回组件列表界面。点击「验证」,验证成功后,「保存并发布」该服务,Kubernetes虚拟机服务配置并发布成功

                                            +
                                          • +
                                          +

                                          2.10. 配置阿里云服务

                                          +
                                            +
                                          1. 在左侧导航选择「服务建模」-「服务配置」,点击左上角的「添加」进入新建服务配置界面,依次填写服务名称,服务描述(选填),蓝图设计(选择创建的阿里云蓝图,业务组,点击「提交」

                                            +
                                          2. +
                                          3. 「基本信息」「输入与输出」和「服务部署操作许可」视图配置请参照[概述]

                                            +
                                          4. +
                                          5. 「组件配置」视图:可以看到阿里云服务拓扑图以及服务配置中的所有组件:Instance、SecurityGroup

                                            +
                                              +
                                            • Instance:点击Instance名称,进入节点详细设置,共有「基本信息」「网络」「属性」「存储」「安全策略组」「负载均衡」「操作许可」等标签页
                                            • +
                                            +
                                          6. +
                                          7. 「基本信息」页面: 基本信息 展示Instance的类型、类别和名称等基本信息. +资源池选择策略:1. 自动选择:平台自动按照策略选择资源池 2. 基于资源标签选择:若该服务所使用的蓝图中已有资源便签,默认继承该资源标签,根据标签去选择业务组中匹配该标签的资源池(前提是资源池已设置资源标签),实现将资源部署到特定的资源池中。也可在服务配置选择其他资源标签;勾选「允许修改」和「仅审批时可修改」。,勾选后可在申请时选择 3. 手工指定:可选择为该服务手工指定资源池,若 资源池选择策略选择“手工指定”后,将出现资源池选择项,指定资源池,允许资源池申请时改变
                                            +

                                            「Note」若该服务共享给全部业务组,则资源池无法指定,默认强制勾选「允许修改」和「仅审批时可修改」。;若该服务指定给某一业务组,则选择该业务组下的资源池 +云主机数量 选择部署的云主机数量,勾选「允许修改」和「仅审批时可修改」。

                                            +
                                            +
                                          8. +
                                          +
                                            +
                                          1. 「网络」页面:

                                            +
                                          2. +
                                          3. 可用区 选择网络的可用区。更改可用区可能会导致虚拟交换机、虚拟机规格、磁盘种类等值的相应改变

                                            +
                                          4. +
                                          5. 网络类型 根据资源池中配置的网络类型显示
                                          6. +
                                          7. 专有网络 若选择专有网络,需选择专有网络
                                          8. +
                                          9. 虚拟交换机 若选择专有网络,需选择虚拟交换机
                                          10. +
                                          11. 分配公网IP地址 选中此项,用于安装软件组件或运行脚本

                                            +
                                          12. +
                                          13. 「属性」页面

                                            +
                                          14. +
                                          +
                                            +
                                          • 付费方式 选择预付费或后付费
                                          • +
                                          • 虚拟机镜像 选择阿里云上的虚拟机镜像
                                          • +
                                          • 虚拟机规格 选择虚拟机规格
                                          • +
                                          • 监控方式 选择监控方式,无监控或SSH安装监控代理
                                          • +
                                          • 安装自动化代理 不安装或SSH安装
                                          • +
                                          • 应用蓝图自动化部署,服务配置初始化并挂载磁盘,以及某些虚拟机操作(如重置密码、添加新逻辑卷等)将使用此代理;如果未安装,这些功能将受影响。安装自动化代理前提条件:网络类型必须是专有网络(VPC)
                                          • +
                                          • 用户名 root用户
                                          • +
                                          • 密码 请输入模板的密码以便在此云主机上安装软件
                                          • +
                                          • 购买资源时长单位(预付费) 月或周
                                          • +
                                          • 购买单位时长(预付费) 若购买资源时长单位选择“月”,则可选择1~9,12、24、36、48、60等时长,若购买资源时长单位选择“周”,则可选择1~4周
                                          • +
                                          • 是否自动续费(预付费) 若勾选自动续费,则根据购买资源时长单位延长相应的周或月
                                          • +
                                          +

                                          「存储」页面:支持添加或编辑磁盘信息,添加磁盘需填写描述(选填)、选择磁盘种类、填写大小(GB),选择快照

                                          +

                                          「安全策略组」页面:默认安全策略组且不可编辑

                                          +

                                          「负载均衡」页面:无

                                          +

                                          「操作许可」页面:默认继承业务组 +「SecurityGroup 」组件:点击SecurityGroup + 名称,进入节点详细设置,共有「基本信息」「属性」两个标签页 +「基本信息」页面:可查看SecurityGroup 组件类型、类别、名称

                                          +

                                          「属性」页面: 使用已有安全组,选择一个已有安全组(资源池中配置的安全组), 若需要新建安全组,需在「服务建模」-「蓝图设计」- 阿里云蓝图 SecurityGroup 参数选项,取消勾选"使用已有资源",即可在此新建安全组,安全组名称 填写新建的安全组的名称。管理安全组规则 点击“添加规则”,新建安全组规则

                                          +
                                            +
                                          • 网卡类型:选择私网或公网
                                          • +
                                          • 规则方向:选择入口或出口
                                          • +
                                          • 授权策略:选择允许或拒绝
                                          • +
                                          • 协议类型:选择全部或http、udp、icmp、gre
                                          • +
                                          • 端口范围:取值范围为1~65535;例如“1/200”、“80/80”
                                          • +
                                          • 授权类型:地址段访问
                                          • +
                                          • 授权对象:请谨慎设置授权对象,根据授权策略的不同,0.0.0.0/0代表允许或拒绝所有IP的访问(可点击“教我设置”)
                                          • +
                                          • 优先级:设置规则优先级

                                            +

                                            点击「保存」,返回组件列表界面。点击「验证」,验证成功后,「保存并发布」该服务,阿里云服务配置并发布成功

                                            +
                                          • +
                                          +

                                          2.11. 配置Azure服务

                                          +
                                            +
                                          1. 在左侧导航选择「服务建模」-「服务配置」,点击左上角的「添加」进入新建服务配置界面,依次填写服务名称,服务描述(选填),蓝图设计(选择创建的Azure蓝图),业务组,点击「提交」

                                            +
                                          2. +
                                          3. 「基本信息」「输入与输出」和「服务部署操作许可」视图配置请参照[概述]

                                            +
                                          4. +
                                          5. 「组件配置」视图:可以看到Azure服务拓扑图以及服务配置中的所有组件:Instance、VirtualNetwork、AvailabilitySet、SecurityGroup、LoadBalancer、LoadBalancerRule、BlobContainer

                                            +
                                              +
                                            • Instance:点击Instance名称,进入节点详细设置,共有「基本信息」「云资源配置」「网络」「操作许可」等标签页

                                              +
                                            • +
                                            • 「基本信息」页面:显示类型、类别、名称等基本信息。可设置部署的云主机数量,勾选「允许修改」和「仅审批时可修改」

                                              +
                                            • +
                                            • 「云资源配置」:包括「云主机配置」、「资源池配置」、「虚拟机模板配置」、「资源规格配置」四部分

                                              +
                                            • +
                                            +
                                          6. +
                                          7. 云主机配置 云主机名称,默认继承业务组命名规则,勾选「允许修改」和「仅审批时可修改」

                                            +
                                          8. +
                                          9. 资源池配置 + 资源池选择策略:目前支持 “手工指定”一个资源池,勾选「允许修改」和「仅审批时可修改」
                                              +
                                            • 诊断存储账户:选择一个存储账户
                                            • +
                                            • 磁盘类型:选择一种磁盘类型,如HDD、SSD
                                            • +
                                            +
                                          10. +
                                          11. 虚拟机模板配置
                                              +
                                            • 操作系统名称:选择Windows或Linux操作系统
                                            • +
                                            • 虚拟机模板:选择windows或Linux操作系统下的Azure虚拟机模板
                                            • +
                                            +
                                          12. +
                                          13. 资源规格配置 + 资源规格:选择一种系统创建的资源规格
                                              +
                                            • 云平台规格:从该资源规格下的Azure云平台资源规格中选择一种
                                            • +
                                            +
                                          14. +
                                          +
                                            +
                                          • 「网络」页面:显示虚拟网络名称、子网、IP分配方式等信息。可勾选「使用公共IP」

                                            +
                                          • +
                                          • 「操作许可」页面默认继承业务组配置

                                            +
                                          • +
                                          + +
                                            +
                                          • VirtualNetwork:点击VirtualNetwork名称,进入节点详细设置,共有「基本信息」「属性」等标签页
                                          • +
                                          + +
                                            +
                                          • 「基本信息」页面:显示类型、类别、名称等信息。

                                            +
                                          • +
                                          • 「属性」页面:可选择子网,勾选「允许修改」和「仅审批时可修改」

                                            +
                                          • +
                                          + +
                                            +
                                          • AvailabilitySet:点击Availability名称,进入节点详细设置,共有「基本信息」「属性」等标签页
                                          • +
                                          + +
                                            +
                                          • 「基本信息」页面:显示类型、类别、名称等信息。

                                            +
                                          • +
                                          • 「属性」页面:默认勾选「使用已有资源」。可选择可用性集,勾选「允许修改」和「仅审批时可修改」

                                            +
                                          • +
                                          + +
                                            +
                                          • SecurityGroup:点击SecurityGroup名称,进入节点详细设置,共有「基本信息」「属性」等标签页
                                          • +
                                          + +
                                            +
                                          • 「基本信息」页面:显示类型、类别、名称等信息。

                                            +
                                          • +
                                          • 「属性」页面:默认勾选「使用已有安全组」。可选择安全组,勾选「允许修改」和「仅审批时可修改」选择安全组后,列出详细的入站、出站安全规则。

                                            +
                                          • +
                                          + +
                                            +
                                          • LoadBalancer:点击LoadBalancer名称,进入节点详细设置,共有「基本信息」「属性」等标签页
                                          • +
                                          + +
                                            +
                                          • 「基本信息」页面:显示类型、类别、名称等信息。

                                            +
                                          • +
                                          • 「属性」页面:默认勾选「使用已有资源」。可选择负载均衡器,勾选「允许修改」和「仅审批时可修改」

                                            +
                                          • +
                                          + +
                                            +
                                          • LoadBalancerRule:点击LoadBalancerRule名称,进入节点详细设置,共有「基本信息」「属性」等标签页
                                          • +
                                          + +
                                            +
                                          • 「基本信息」页面:显示类型、类别、名称等信息。

                                            +
                                          • +
                                          • 「属性」页面:输入负载均衡规则名称、选择前端IP地址和通信协议(TCP/UDP)、输入端口和后端端口。上述项目均勾选「允许修改」和「仅审批时可修改」。。

                                            +
                                          • +
                                          + +
                                            +
                                          • BlobContainer:点击BlobContainer名称,进入节点详细设置,共有「基本信息」「属性」等标签页
                                          • +
                                          + +
                                            +
                                          • 「基本信息」页面:显示类型、类别、名称等信息

                                            +
                                          • +
                                          • 「属性」页面:基于"资源池选择策略(手工指定/自动选择/基于资源标签选择)"选择资源池,勾选「允许修改」和「仅审批时可修改」。。输入BlobContainer名称,勾选「允许修改」和「仅审批时可修改」。。选择一个存储账户,并选择公共访问级别(仅匿名读取访问Blob/匿名读取访问容器和Blob)

                                            +
                                          • +
                                          +
                                            +
                                          1. 点击「保存」,返回组件列表界面。点击「验证」,验证成功后,「保存并发布」该服务,Azure服务配置并发布成功
                                          2. +
                                          +

                                          2.12. 配置AWS服务

                                          +
                                            +
                                          1. 在左侧导航选择「服务建模」-「服务配置」,点击左上角的「添加」进入新建服务配置界面,依次填写服务名称,服务描述(选填),蓝图设计(选择AWS蓝图,业务组,点击「提交」

                                            +
                                          2. +
                                          3. 「基本信息」「输入与输出」和「服务部署操作许可」视图配置请参照[概述]

                                            +
                                          4. +
                                          5. 「组件配置」视图:可以看到AWS服务拓扑图以及服务配置中的所有组件:Instance、SecurityGroup

                                            +
                                              +
                                            • Instance:点击Instance名称,进入节点详细设置,共有「基本信息」「云资源配置」「操作许可」等标签页
                                            • +
                                            +
                                          6. +
                                          + +
                                            +
                                          • 「基本信息」页面:
                                          • +
                                          +
                                            +
                                          • 基本信息 展示Instance的类型、名称等基本信息
                                          • +
                                          • 云主机数量 默认云主机数量为1,可更改或选择"勾选「允许修改」和「仅审批时可修改」。"

                                            +
                                              +
                                            • 「云资源配置」页面:
                                            • +
                                            +
                                          • +
                                          +
                                            +
                                          1. 云主机配置 +云主机名称 没有定义时默认继承业务组命名规则,支持勾选「允许修改」和「仅审批时可修改」。
                                          2. +
                                          3. 资源池配置 +资源池选择策略 + 手工指定:手工指定资源池 +「Note」若该服务共享给全部业务组,则资源池无法指定,默认强制勾选「允许修改」和「仅审批时可修改」。;若该服务指定给某一业务组,则选择该业务组下的资源池 +资源池 选择资源池,将根据蓝图类型进行过滤 +可用区 选择可用区,将根据所选资源池中可用区进行过滤 +子网 选择子网,将根据所选资源池中配置的子网进行过滤
                                          4. +
                                          5. 虚拟机模板配置 +操作系统 选择Linux操作系统 +虚拟机模板 选择该操作系统下的青云虚拟机模板
                                          6. +
                                          7. 计算规格配置 +资源规格 选择在「基础设施」-「计算规格」中自定义的规格 +云平台规格 选择在「基础设施」-「计算规格」中自定义的云平台规格,将根据所选的资源规格进行过滤 +公网配置 +分配公网IP地址 可选是否分配公网IP地址
                                          8. +
                                          +
                                            +
                                          • 「操作许可」页面:在此可启用虚拟机的各项操作,以及配置所需的审批流程。对于每个操作,可针对不同的角色,配置不同的规则和审批流程。默认选填继承业务组配置,可增删,可对操作列表进行角色筛选
                                          • +
                                          + +
                                            +
                                          • SecurityGroup:点击SecurityGroup名称,进入节点详细设置,共有「基本信息」「属性」等标签页
                                          • +
                                          + +
                                            +
                                          • 「基本信息」页面:显示类型和名称

                                            +
                                          • +
                                          • 「属性」页面:

                                            +
                                          • +
                                          +

                                          默认勾选「使用已有安全组」,选择已有安全组,选择后将列出该安全组的规则,勾选「允许修改」和「仅审批时可修改」。 + 若不勾选「使用已有安全组」即新建安全组,填写安全组名称、描述,名称勾选「允许修改」和「仅审批时可修改」。,点击添加规则,配置相关的安全组规则

                                          +
                                            +
                                          1. 点击「保存」,返回组件列表界面。点击「验证」,验证成功后,「保存并发布」该服务,AWS服务配置并发布成功
                                          2. +
                                          +

                                          2.13. 配置青云服务

                                          +
                                            +
                                          1. 在左侧导航选择「服务建模」-「服务配置」,点击左上角的「添加」进入新建服务配置界面,依次填写服务名称,服务描述(选填),蓝图设计(选择青云蓝图,业务组,点击「提交」

                                            +
                                          2. +
                                          3. 「基本信息」「输入与输出」和「服务部署操作许可」视图配置请参照[概述]

                                            +
                                          4. +
                                          5. 「组件配置」视图:可以看到青云服务拓扑图以及服务配置中的所有组件:WindowsInstance、SecurityGroup +WindowsInstance:点击WindowsInstance名称,进入节点详细设置,共有「基本信息」「云资源配置」「操作许可」等标签页。

                                            +
                                              +
                                            • 「基本信息」页面: 基本信息 展示WindowsInstance的类型、名称等基本信息。 云主机数量 默认云主机数量为1,可更改或选择"勾选「允许修改」和「仅审批时可修改」。"

                                              +
                                            • +
                                            • 「云资源配置」页面: 云主机配置云主机名称, 没有定义时默认继承业务组命名规则,支持勾选「允许修改」和「仅审批时可修改」。 资源池配置,资源池选择策略; 手工指定:手工指定资源池。选择资源池,将根据蓝图类型进行过滤。 选择子网,将根据所选资源池中配置的子网进行过滤。

                                              +
                                            • +
                                            +
                                          6. +
                                          +
                                          +

                                          「Note」若该服务共享给全部业务组,则资源池无法指定,默认强制勾选「允许修改」和「仅审批时可修改」。;若该服务指定给某一业务组,则选择该业务组下的资源池

                                          +
                                          +
                                            +
                                          • 虚拟机模板配置:操作系统 选择Linux操作系统;虚拟机模板 选择该操作系统下的青云虚拟机模板
                                          • +
                                          • 计算规格配置:资源规格 选择在「基础设施」-「计算规格」中自定义的规格;云平台规格 选择在「基础设施」-「计算规格」中自定义的云平台规格,将根据所选的资源规格进行过滤;公网配置分配公网IP地址 可选是否分配公网IP地址。 没有定义时默认继承业务组命名规则,支持勾选「允许修改」和「仅审批时可修改」。 手工指定:手工指定资源池

                                            +
                                            +

                                            「Note」若该服务共享给全部业务组,则资源池无法指定,默认强制勾选「允许修改」和「仅审批时可修改」。;若该服务指定给某一业务组,则选择该业务组下的资源池

                                            +
                                            +
                                          • +
                                          • 「操作许可」页面:在此可启用虚拟机的各项操作,以及配置所需的审批流程。对于每个操作,可针对不同的角色,配置不同的规则和审批流程。默认选填继承业务组配置,可增删,可对操作列表进行角色筛选

                                            +
                                          • +
                                          + +
                                            +
                                          • SecurityGroup:点击SecurityGroup名称,进入节点详细设置,共有「基本信息」「属性」等标签页
                                          • +
                                          + +
                                            +
                                          • 「基本信息」页面:显示类型和名称

                                            +
                                          • +
                                          • 「属性」页面:

                                            +

                                            默认勾选「使用已有安全组」,选择已有安全组,选择后将列出该安全组的规则,勾选「允许修改」和「仅审批时可修改」。 若不勾选「使用已有安全组」即新建安全组,填写安全组名称,点击添加规则,配置相关的防火墙规则

                                            +
                                          • +
                                          +
                                            +
                                          1. 点击「保存」,返回组件列表界面。点击「验证」,验证成功后,「保存并发布」该服务,青云服务配置并发布成功
                                          2. +
                                          +

                                          2.14. 配置Hyper-V服务

                                          +
                                            +
                                          1. 在左侧导航点击「服务建模」-「服务配置」,点击左上角的「添加」进入新建服务配置界面,依次填写服务名称,服务描述(选填),蓝图设计(选择Hyper-V单节点蓝图),业务组,点击「提交」

                                            +
                                          2. +
                                          3. 「基本信息」页面:

                                            +
                                          4. +
                                          5. 业务组 部署所属业务组

                                            +
                                          6. +
                                          7. 服务部署名称 部署名称(若业务组已设定服务部署命名规则,服务部署名称将按照规则自动生成,无需填写)
                                          8. +
                                          9. Logo图像 上传图像,在服务目录展示时更美观
                                          10. +
                                          11. 描述 部署描述
                                          12. +
                                          13. 服务分组 内置三者类型:工单服务、数据库、基础设施,支持自定义(关于服务分组的详细介绍请参考:服务分组
                                          14. +
                                          15. 顺序 指定服务目录中的排列顺序,数值小的排列靠前
                                          16. +
                                          17. 服务状态 实时展示服务状态,如:未发布
                                          18. +
                                          19. 服务部署租用时间(日) 租用时间,租用时间到后,部署里的所有云主机会停机并归档
                                          20. +
                                          21. 服务部署保留时间(日) 保留时间,保留时间到后,部署会被卸除
                                          22. +
                                          23. 允许申请时添加软件 勾选上则允许服务申请时添加软件
                                          24. +
                                          25. 审批流程 可选择无审批流程、默认审批流程和自定义的审批流程

                                            +
                                          26. +
                                          27. 「流程配置」视图:可以选择流程类型,查看流程信息、流程图、流程步骤

                                            +
                                          28. +
                                          29. 「组件配置」视图:可以看到Hyper-V服务拓扑图以及服所有组件:WindowsInstance和NetworkAdapter,可进行组件节点详细设计。其中下面为您详细介绍WindowsInstance云资源配置:

                                            +
                                              +
                                            • 资源池配置 资源池选择策略:选择手工指定;资源池:选择Hyper-V资源池,勾选申请时可见则服务申请时显示,勾选申请时可修改则在服务申请时可以修改资源池。
                                            • +
                                            • 计算规格 计算规格:选择微型(1C1G); 勾选申请时可见则服务申请时显示,勾选申请时可修改则在服务申请时可以修改计算规格。
                                            • +
                                            +
                                          30. +
                                          31. 「输入与输出配置请参照[概述]

                                            +
                                          32. +
                                          33. 「服务部署操作许可」视图:在此可启用服务部署管理中的各项操作,以及配置所需的审批流程。对于每个操作,可针对不同的角色,配置不同的规则和审批流程。默认继承业务组配置,可增删,可对操作列表进行角色筛选

                                            +
                                          34. +
                                          35. 点击「保存」,返回组件列表界面。点击「验证」,验证成功后,「保存并发布」该服务,Hyper-V虚拟机服务配置并发布成功

                                            +
                                          36. +
                                          +

                                          2.15. 配置F5与OpenStack组合服务

                                          +
                                            +
                                          1. 在左侧导航点击「服务建模」-「服务配置」,点击左上角的「添加」进入新建服务配置界面,依次填写服务名称,服务描述(选填),蓝图设计(选择F5与OpenStack组合蓝图),点击「提交」。

                                            +
                                          2. +
                                          3. 「基本信息」页面: +除了服务名称自定义填写,其余与配置vSphere单节点服务基本信息页面一致。

                                            +
                                          4. +
                                          5. 「流程配置」视图:可以选择流程类型,查看流程信息、流程图、流程步骤

                                            +
                                          6. +
                                          7. 「组件配置」视图:可以看到OpenStack +服务拓扑图以及所有组件:Server、Network,F5服务所有组件:Virtual +Server、Pool以及SNAT Pool

                                            +
                                          8. +
                                          +

                                          OpenStack的Server和Network组件,配置参考:配置OpenStack单节点服务

                                          +

                                          F5服务的组件配置:

                                          +
                                            +
                                          1. Pool: 进入「属性」视图,选择资源池选择策略(手工指定),选择资源池(F5BIG-IP资源池),勾选允许修改 则在服务申请时允许修改,选择负载均衡方式;SNAT Pool:
                                          2. +
                                          3. 进入「属性」视图,选择资源池选择策略(手工指定),选择资源池(F5BIG-IP资源池),勾选允许修改 则在服务申请时允许修改,定义基础属性 :勾选使用已有资源 选择已有的SNATPool,例如:F5-SNATPool;不勾选使用已有资源 定义IP名称和IP地址,例如:

                                            +
                                          4. +
                                          5. Virtual Server: + 进入「属性」视图,选择资源池选择策略(手工指定),选择资源池(F5 BIG-IP资源池),勾选允许修改 + 则在服务申请时允许修改,IP分配方式选择(IP池)

                                            +
                                          6. +
                                          +
                                            +
                                          1. 点击「保存」,返回组件列表界面。点击「验证」,验证成功后,「保存并发布」该服务,F5服务配置并发布成功
                                          2. +
                                          +

                                          3. 配置标准任务

                                          +

                                          在左侧导航点击「服务建模」-「服务配置」,点击左上角的「添加」进入新建服务配置界面,依次填写服务名称,服务描述(选填),选择业务组,服务类型选择执行任务服务,流程选择标准任务服务流程,点击「提交」。 +「概况」页面:服务名称、描述自定义填写,选择服务可供申请的角色、服务分组、服务卡片排序、状态。

                                          +

                                          「任务配置」页面:点击添加按钮,与流水线添加任务的界面一致。详情请参考:配置任务

                                          +

                                          「审批配置」页面:选择审批流程,例如:业务组管理员审批、租户管理审批、并行审批等其他自定义审批流程。

                                          +

                                          「表单配置」页面:根据需求自定义绑定表单,例如:上传附件、创建IP池、创建项目、添加AD用户等其他自定义表单。

                                          +

                                          「流程配置」页面:可以选择流程类型,查看流程信息、流程图、流程步骤

                                          +

                                          4. 编辑服务配置

                                          +

                                          在左侧导航选择「服务建模」-「服务配置」,在服务配置列表界面,点击服务配置名称,进入「基本信息」页面,可编辑相应的参数,点击」保存」。

                                          +

                                          5. 取消发布服务配置

                                          +

                                          在左侧导航选择「服务建模」-「服务配置」,在服务配置列表界面,选中某服务配置,若该服务配置状态为"已发布",则「取消发布」操作可用,点击后确定,取消发布成功。在服务配置列表界面该服务配置状态更改为"未发布",未发布服务配置将不能在服务目录界面显示且不能被申请。

                                          +

                                          6. 卸除服务配置

                                          +

                                          在左侧导航选择「服务建模」-「服务配置」,在服务配置列表界面,选中某服务配置,点击「卸除服务部署」,确定后卸除服务配置成功。

                                          + + +
                                          + +
                                          +
                                          +
                                          + +

                                          results matching ""

                                          +
                                            + +
                                            +
                                            + +

                                            No results matching ""

                                            + +
                                            +
                                            +
                                            + +
                                            +
                                            + +
                                            + + + + + + + + + + + + + + +
                                            + + +
                                            + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git "a/AdminDoc/05\346\234\215\345\212\241\345\273\272\346\250\241/\346\234\215\345\212\241\351\205\215\347\275\256.md" "b/AdminDoc/05\346\234\215\345\212\241\345\273\272\346\250\241/\346\234\215\345\212\241\351\205\215\347\275\256.md" new file mode 100644 index 0000000..eead418 --- /dev/null +++ "b/AdminDoc/05\346\234\215\345\212\241\345\273\272\346\250\241/\346\234\215\345\212\241\351\205\215\347\275\256.md" @@ -0,0 +1,899 @@ + +**服务配置** + +SmartCMP云管平台从组件的定义,到应用的可视化拓扑建模,并将服务配置标准化,再到基于蓝图和配置的自动化部署,最终生成一个符合TOSCA规范的云资源蓝图服务。支持管理员将设计好的蓝图发布为服务,在服务配置处配置基本信息、构成蓝图的组件详细参数、输入与输出、可以将服务与企业内部的流程(例如:审批流程)集成之后发布到服务目录。服务项主要功能有: + + + 服务与一个、多个或全部蓝图关联,服务与业务组关联,选定服务类型(云资源蓝图服务、手工工单服务、执行任务服务等等) + + + 服务与服务策略关系,如服务时间、租期、服务流程等 + + + 服务访问权限设置,配置部署操作许可,指定操作权限 + + + 服务与流程集成,如审批流程、云服务部署流程等等 + +具体操作步骤如下文:在左边导航选择「服务建模」-「服务配置」,出现服务列表,列表中显示服务名称、描述、蓝图设计、业务组、状态、服务部署数量、创建时间等,可对服务配置做如下操作:添加、编辑、取消发布、删除等。 + +>「Note」服务发布完成之后,可以通过服务目录进行服务申请,具体操作方法参考:[服务目录申请](https://cloudchef.github.io/doc/AdminDoc/06云服务管理/#服务目录申请) + +# 添加服务配置 + +您可以根据下面步骤添加服务配置: + +1. 在左边导航栏选择「服务建模」-「服务配置」,点击「添加」 + +2. 填写服务名称、服务描述(选填)、选择业务组,服务类型,当选择服务类型为云资源蓝图服务时,增选蓝图设计,选择关联一个、多个、或全部蓝图,当选择手工工单服务是,增选流程选择,点击「提交」 + + 接下来为您介绍云资源蓝图服务配置的具体步骤,手工工单服务配置具体步骤请参考:[手工工单服务配置](https://cloudchef.github.io/doc/AdminDoc/08工单服务管理#配置工单) + +>「Note」服务配置的服务描述支持Markdown语法书写规则,从而在服务申请时候展示不同服务描述的展示格式 + +## 概况 + +在「概况」标签页填入下列信息:服务项名称、服务项描述、 服务项logo选择,发布后将在服务目录处显示、业务组名称 +(服务配置可设置在某个业务组,或共享给所有业务组;当共享给所有业务组时,有些设置无法在服务配置时指定,将在用户申请服务时,指定某个业务组后,根据选中业务组上的资源而决定),状态(只读)服务项状态(已发布:将服务项发布到服务目录;未发布:服务项未发布状态;已过期:服务项已过期) ++ 服务部署租用时间(日) 服务部署租用时间到后,部署里的所有云主机会停机。可配置的租用时间在业务组配置的区间范围内设置,勾选「允许修改」和「仅审批时可修改」。 + ++ 服务部署保留时间(日) 保留时间,保留时间到后,部署会被卸除。可配置的保留时间在业务组配置的区间范围内设置,勾选「允许修改」和「仅审批时可修改」。 + ++ 启用关联规则 支持将vSphere虚拟机强制分散到不同的物理机或聚合到同一台物理机上。允许申请时添加软件 勾选后,服务发布成功后,服务申请时将允许该服务在申请时候添加软件 + +点击「输入与输出」:可添加输入输出参数,服务部署成功后,可在详情页面进行查看相关输出数据。输入:点击添加,填写名称(必填)、描述、默认值等输入信息。 输出:点击添加,填写名称(必填)、描述、表达式(必填)等输出信息。表达式可选择已有,也可根据需求自行输入。 + +点击「审批配置」标签页,选择审批流程(内置的默认审批流程或自定义的审批流程,例如:平行审批流程)、查看审批流程图、审批流程步骤 + +点击「流程配置」标签页,选择服务流程(内置的标准云服务部署流程或自定义的服务流程),查看服务流程图、服务流程步骤 + +点击「表单配置」标签页,选择表单、进行表单预览 + +点击「部署操作许可」视图:在此可启用服务部署管理中的各项操作,以及配置所需的审批流程。对于每个操作,可针对不同的角色,配置不同的规则和审批流程。默认继承业务组配置,可增删,可对操作列表进行角色筛选 + +## 组件配置 + +点击「组件配置」标签页,可看到配置服务中的蓝图拓扑和所有组件: + +组件配置列表中有三种类型的组件,分别为:计算组件、软件组件、网络组件。计算组件:一般指服务器或计算节点,如Server、WindowsServer、InstanceD等, 软件组件:一般是放在服务器或者计算节点上的应用,例如:Apache、MySQL、Tomcat等, 网络组件:一般指服务器的网络配置,如network + +组件配置: + + - 计算组件配置:可以通过选择有启用监控的虚拟机模板来给当前节点或服务器添加监控 + + - 软件组件:可以添加相应的监控点来启用监控,软件组件所在的节点必须启用监控,软件组件的监控才会生效。当带监控的服务器或节点和软件组件部署成功后,可以在部署详情页面的监控标签页查看当前部署的监控数据信息。对应的节点云主机详情页面也会有节点的监控标签页以供用户监控当前节点的数据。同时,如果当前节点中安装了带监控点的软件组件,则可以通过添加监控点来查看软件组件的监控数据 + + - 软件组件节点详细设置,与制品库相关联的设置,选择组、软件组件名称、版本。 + + +云资源配置:服务配置中,配置云主机节点的云资源配置,需要注意资源池选择策略,平台主要提供以下几种策略: ++ 手工指定:手工指定资源池,若资源池选择策略选择“手工指定”,支持使用资源标签,缩小选择范围,将出现“资源池”选择项,在下拉框中选择资源池,指定资源池,可选择勾选「允许修改」和「仅审批时可修改」。 ++ 自动选择剩余容量最大的:平台自动按照策略选择当前可选择的资源池,资源使用量最小,剩余容量最大的。 ++ 自动选择费用最低的:平台支持设置资源计费规则,按照策略选择当前可选择的资源池,费用最低 花费最少的。 ++ 平均分配:服务部署的时, 资源是平均分配到不同的资源池, (平均分配的前提是选择的资源池有足够的资源。) + +>「Note」资源标签来源于管理员在「系统管理」-「资源标签」中配置完成,具体配置参考,请参考:[资源标签](https://cloudchef.github.io/doc/AdminDoc/09系统管理/index.html#资源标签) 根据标签选择匹配该标签的资源池,实现将应用部署到特定的资源池。 + +## 部署操作许可{#部署操作许可} + +部署操作许可规定了对该服务部署成功后可启用服务部署管理中的各项操作,以及配置所需的审批流程。对于每个操作,可针对不同的角色,配置不同的启用规则和审批流程。 + +1. 点击左侧导航栏「服务建模」-「服务配置」,点击服务部署名称,进入服务部署页面。 + +2. 点击「服务部署操作许可」标签页,在此可配置服务部署中的各项操作,以及配置所需的审批流程。对于每个操作,可针对不同的角色,配置不同的启用规则和审批流程。 + +>「Note」服务部署操作许可列表由业务组服务部署操作许可继承而来,不勾选「继承业务组配置」可在此范围内删减许可。 + +1. 若勾选「继承业务组配置」,则与在业务组中的服务部署操作配置相同 + +2. 若不勾选「继承业务组配置」,在每项操作后进行编辑,选择启用状况,最后点击「保存」 + + + +# 配置云资源蓝图服务 +## 配置vSphere单节点服务 {#配置vSphere单节点服务} + +1. 在左侧导航点击「服务建模」-「服务配置」,点击左上角的「添加」进入新建服务配置界面,依次填写服务名称,服务描述(选填),蓝图设计(选择[创建的vSphere单节点蓝图](https://cloudchef.github.io/doc/AdminDoc/05服务建模/蓝图设计.html#创建vSphere单节点蓝图),业务组,点击「提交」 + +2. 「概况」「输入与输出」和「服务部署操作许可」视图配置请参照[概述] + +3. 「组件配置」视图:可以看到vSphere服务拓扑图以及服所有组件:Server、Network + + + Server:点击Server名称,进入节点详细设置,共有「概况」「服务器配置」「网络」「用户」「磁盘」「关系」「操作许可」等标签页 + +「概况」页面: + + ++ 基本信息 展示server的类型、类别和名称等基本信息 ++ 云主机数量 选择部署的云主机数量 + + >「Note」勾选「允许修改」和「仅审批时可修改」。这里存在两种情况:如果勾选一项「允许修改」,则用户在请求服务时,可以进行修改参数云主机数量,在服务审批阶段也可以进行修改参数云主机数量;如果勾选两项项「允许修改」和「仅审批时可修改」,则用户在请求服务时,不可以进行修改参数云主机数量,只在服务审批阶段允许进行修改参数云主机数量; + + + 「服务器配置」页面: +计算资源 ++ OS主机名(Hostname) 没有定义时默认继承业务组命名规则,勾选「允许修改」和「仅审批时可修改」。这里存在两种情况: +1. 如果勾选一项「允许修改」,则用户在请求服务时,可修改参数,在服务审批阶段也可修改参数; +2. 如果勾选两项「允许修改」和「仅审批时可修改」,用户在服务请求中,不可修改参数,只在服务审批阶段允许修改参数; ++ 云主机名称 没有定义时默认继承业务组命名规则,勾选「允许修改」和「仅审批时可修改」。 ++ 注释 选填,勾选「允许修改」和「仅审批时可修改」。 ++ AD域(Windows服务):AD域 勾选后,填写AD域名和用户姓名、密码。该服务部署后的虚机将加进AD域里 + +模板设置 ++ 操作系统名称 选择Linux/Windows操作系统 ++ 虚拟机模板 选择该操作系统下的vSphere虚拟机模板 ++ 计算规格配置 ++ 计算规格模式 计算规格模式定义了云主机CPU和内存的配置方式。“自定义”允许直接输入数字,“固定规格”将按照管理员配置的计算规格进行选择 ++ vCPU数量 若计算规格模式选择自定义,输入vCPU数量,勾选「允许修改」和「仅审批时可修改」。 ++ 内存(GB) 若计算规格模式选择自定义,输入内存,勾选「允许修改」和「仅审批时可修改」。 ++ 计算规格 若计算规格模式选择固定规格,选择规格,勾选「允许修改」和「仅审批时可修改」。 ++ 在「系统管理」-「计算规格」中配置相关的计算规格 + +系统盘配置 + ++ 置备模式 (选择完全克隆的虚拟机模板才会出现该选项,即选择虚拟机虚拟磁盘的磁盘格式)支持三种置备模式:精简置备、厚置备延迟置零、厚置备置零。 + +>「Note」 厚置备延迟置零格式,以默认的厚格式创建虚拟磁盘。创建虚拟磁盘时分配虚拟磁盘所需的空间。创建时不会擦除物理设备上保留的数据,但是从虚拟机首次执行写入操作时会按需要将其置零。 + +>「Note」 厚置备置零,是一种厚虚拟磁盘类型,支持诸如 Fault Tolerance 等群集功能。在创建时为虚拟磁盘分配所需的空间。与常规格式相反,创建虚拟磁盘后,会将物理设备上保留的数据置零。创建这种格式的磁盘所需的时间可能会比创建其他类型的磁盘所需的时间更长。 + +>「Note」 精简置备格式,可节省存储空间。最初,精简置备的磁盘只使用该磁盘最初所需要的数据存储空间。如果以后精简磁盘需要更多空间,则它可以增长到为其分配的最大容量。 + + ++ 文件夹 虚机会部署在选中的vCenter文件夹里,支持申请时改变需要在「资源池」—「云平台资源信息」中选择文件夹 ++ 数据存储策略 (选择完全克隆的虚拟机模板才会出现该选项)默认选择数据存储默认值,下拉可选择VMware vCenter中配置好的存储策略,支持勾选「允许修改」和「仅审批时可修改」。 ++ 存储 虚机会部署在选中的存储里,存储会根据选择的存储策略判定兼容性,以及显示该存储的空余空间、总空间以及占比。若不选,则部署在资源池定义的存储里允许用户添加新磁盘时选择置备模式和存储 选择是否允许,若不允许,新磁盘的置备模式和存储的选择将与系统盘保持一致 + + + + + 「网络」页面配置访问域(选填)和DNS服务器(选填);IP分配方式根据资源池中的配置指定,可在Network节点中选择不同的网络标签 + + + 「用户」视图(Linux服务):可以添加Linux用户和用户组,一个用户可以有多个用户组,一个用户组可以有多个用户,虚拟机部署成功后,将会有对应的用户和组被创建,用户可以选择是否设置为sudoer。注意:只有安装了代理(部署时安装),才出现用户标签页面 + + + 「磁盘」视图:可以配置Linux虚拟机逻辑卷。除了直接创建硬盘分区外,还可以选择创建逻辑卷 + + + + + 要创建逻辑卷(LV),需要先创建卷组(VG),然后往卷组中添加物理卷(PV)作为卷组底层资源,然后才能创建逻辑卷,一个卷组上创建的逻辑卷的总大小需不大于该卷组的资源总大小。物理卷可以勾选swap选项以创建swap分区 + + + 添加/更改磁盘(物理卷PV):存储为空的时候,图标变为绿色,表示部署时允许添加磁盘。添加的磁盘需要填写大小和置备模式(目前为必选项),挂载点、卷组、数据存储名选填 + + + + + 「关系」视图:可选择可以关联的虚拟机 + + + 「操作许可」视图:为某服务项添加云资源操作许可] + + + + + 「Network」组件:点击network名称,进入节点详细设置,共有「概况」「属性」两个标签页 + + + + + 「概况」页面:可查看Network组件类型、类别、名称 + + + 「属性」页面:可选择网络标签以及管理网络,网络标签支持勾选「允许修改」和「仅审批时可修改」。 + +4. 「服务部署操作许可」视图:在此可启用服务部署管理中的各项操作,以及配置所需的审批流程。对于每个操作,可针对不同的角色,配置不同的规则和审批流程。默认继承业务组配置,可增删,可对操作列表进行角色筛选 + +5. 点击「保存」,返回组件列表界面。点击「验证」,验证成功后,「保存并发布」该服务,vSphere虚拟机服务配置并发布成功 + +## 配置VMware NSX服务 {#配置VMwareNSX服务} + + 配置带NSX云平台的vSphere服务,配置服务前操作: + +1. 确保该业务组已添加vSphere云平台和VMware + NSX云平台,并在vSphere云平台处添加与VMware NSX云平台的关联关系 + +2. 在vSphere资源池中,关联VMware + NSX的传输区域(将影响「NSX逻辑交换机」的显示) + +3. 关联成功后,在「资源池」- vSphere资源池 + -「网络资源」中看到「NSX逻辑交换机」「NSX逻辑路由器」「安全策略组」三个额外标签页 + + + 配置「NSX逻辑交换机」,选择交换机并分配资源池(网络资源与NSX逻辑交换机至少配置一种) + + + 配置「NSX逻辑路由器」,选择DLR加入该资源池 + + + 配置「安全策略组」,勾选已有的安全策略组 + +4. 点击「保存」,VMware NSX资源池配置成功 + +开始配置VMware NSX虚拟机服务: + +1. 「服务建模」-「服务配置」-「添加」,填写服务名称,选择在[VMware + NSX蓝图](https://cloudchef.github.io/doc/AdminDoc/05服务建模/蓝图设计.html#创建VMwareNSX蓝图),选择业务组,点击「提交」 + +2. 「基本信息」「输入与输出」和「服务部署操作许可」视图配置请参照[概述] +3. 点击「组件配置」,可看到VMware + NSX蓝图拓扑图和所有组件:Lswitch、Server、SecurityGroup、DLR,「Server」组件:配置同6.3.3.1 vSphere服务一样,「Lswitch」组件,点击Lswitch名称,进入「节点详细设置」页面:共有「基本信息」「属性」两个标签页 + +基本信息」页面:查看Lswitch的基本信息,如类型、类别和名称 + +属性」页面: 属性(不勾选使用已有网络) ++ IP分配方式 支持IP池和手工指定,若选择IP池,需指定IP池 ++ 复制模式 选择单播。支持单播、多播和混合三种方式 ++ 管理网络 勾选是否管理网络 ++ 属性(勾选使用已有网络) ++ 网络标签 从已有的网络中选择,勾选「允许修改」和「仅审批时可修改」。(需要在vSphere with NSX资源池中,选择NSX逻辑交换机) ++ IP分配方式 支持IP池、DHCP、手工指定三种方式 ++ 管理网络 勾选是否管理网络 + +「DLR」组件,点击DLR名称,进入「节点详细设置」页面:共有「基本信息」「属性」两个标签页 + +「基本信息」页面:查看DLR的基本信息,如类型、类别和名称 + +「属性」页面:选择一个已有的逻辑路由器(DLR)(在资源池中选择NSX逻辑路由器);可增加接口配置 + + + +「SecurityGroup」组件,点击SecurityGroup名称,进入「节点详细设置」页面:共有「基本信息」「属性」两个标签页 + + + +「基本信息」页面:查看SecurityGroup的基本信息,如类型、类别和名称 + +「属性」页面: 属性(不勾选使用已有安全组) + ++ 名称 新建安全组,填写安全组的名称,勾选「允许修改」和「仅审批时可修改」。 ++ 描述 填写安全组相关描述信息(选填) ++ 属性(勾选使用已有安全组) 安全组 从已有的安全组中选择一个,需要在资源池「安全策略组」中选择一个或多个安全策略用于该资源池 + +4. 点击「保存」,返回组件列表界面。点击「验证」,验证成功后,「保存并发布」该服务,VMware + NSX服务配置并发布成功 + +## 配置vSphere MySQL带监控服务 {#配置vSphereMySQL带监控服务} + +1. 在左侧导航点击「服务建模」-「服务配置」,点击左上角的「添加」进入新建服务配置界面,依次填写服务名称,服务描述(选填),蓝图设计(选择[创建的vSphereMySQL带监控蓝图](https://cloudchef.github.io/doc/AdminDoc/05服务建模/蓝图设计.html#创建vSphereMySQL带监控蓝图),业务组,点击「提交」 + +2. 「基本信息」「输入与输出」和「服务部署操作许可」视图配置请参照[概述] + +3. 「组件配置」视图:可以看到vSphere服务拓扑图以及服所有组件:Server、Network + + + 「Server」: 配置同vSphere服务一样(需选择带自动化代理的虚拟机模板) + + + 「Network」:配置同vSphere服务一样 + + + 「MySQL」: + 点击MySQL名称,进入节点详细设置,共有「基本信息」「属性」「关系」等标签页 + + + + + 「基本信息」页面:展示MySQL的类型、类别和名称等基本信息 + + + 「属性」页面:展示MySQL主键相关信息,来源于「服务建模」-「软件组件」中的配置 + + + 「关系」页面:展示Server与MySQLExporter之间的关系 + + + + + 「MySQLExporter」: + 点击MySQLExporter名称,进入节点详细设置,共有「基本信息」「属性」「关系」等标签页 + + + + + 「基本信息」页面:展示MySQLExporter的类型、类别和名称等基本信息 + + + 「属性」页面:展示MySQLExporter主键相关信息,来源于「服务建模」-「软件组件」中的配置,若未填写package_url,需填写地址 + + + 「关系」页面:展示Server与MySQLExporter之间的关系 + +4. 点击「保存」,返回组件列表界面。点击「验证」,验证成功后,「保存并发布」该服务,vSphere + MySQL带监控服务配置并发布成功 + +## 配置OpenStack单节点服务 {#配置OpenStack单节点服务} + +1. 在左侧导航点击「服务建模」-「服务配置」,点击左上角的「添加」进入新建服务配置界面,依次填写服务名称,服务描述(选填),蓝图设计(选择[创建的OpenStack单节点蓝图](https://cloudchef.github.io/doc/AdminDoc/05服务建模/蓝图设计.html#创建OpenStack单节点蓝图),业务组,点击「提交」 + +2. 「概况」「输入与输出」和「服务部署操作许可」视图配置请参照[概述] + +3. 「组件配置」视图:可以看到OpenStack + 单节点服务拓扑图以及服所有组件:Server、Network + + + Server:点击Server名称,进入节点详细设置,共有「概况」「属性」「网络资源」「用户」「磁盘」「安全策略组」「关系」「操作许可」等标签页 + + + + + 「概况」页面: + + +- 基本信息 展示server的类型、类别和名称等基本信息 +- 资源池选择策略 +1. 自动选择:平台自动按照策略选择资源池 +2. 基于资源标签选择:若该服务所使用的蓝图中已有资源便签,默认继承该资源标签,根据标签去选择业务组中匹配该标签的资源池(前提是资源池已设置资源标签),实现将资源部署到特定的资源池中。也可在服务配置选择其他资源标签;勾选「允许修改」和「仅审批时可修改」。 +3. 手工指定:可选择为该服务手工指定资源池,若 资源池选择策略选择“手工指定”后,将出现资源池选择项,指定资源池,允许资源池申请时改变 +>「Note」若该服务共享给全部业务组,则资源池无法指定,默认强制勾选「允许修改」和「仅审批时可修改」。;若该服务指定给某一业务组,则选择该业务组下的资源池 +- 云主机数量 选择部署的云主机数量,勾选「允许修改」和「仅审批时可修改」。 + + 「属性」页面: + + + + OS主机名 没有定义时默认继承业务组命名规则,勾选「允许修改」和「仅审批时可修改」。 + + 云主机名称 没有定义时默认继承业务组命名规则,勾选「允许修改」和「仅审批时可修改」。 + + 操作系统名称 选择Linux操作系统 + + 虚拟机模板 选择Linux操作系统下的OpenStack虚拟机模板 + + 卷类型 若选择从云硬盘启动或从云硬盘快照启动的虚拟机模板,则会出现该选项,选择OpenStack云平台上已存在的卷类型,也可选择"未设置卷类型" + + 卷大小 若选择从云硬盘启动或从云硬盘快照启动的虚拟机模板,则会出现该选项,卷大小需大于等于镜像要求的磁盘大小,选填 + + 主机集合 虚机会部署到选择的主机中 + + 虚拟机规格 选择部署的虚拟机CPU和内存规格,支持勾选「允许修改」和「仅审批时可修改」。 + + + 「网络资源」页面可配置DNS:DNS名称、DNS域、DNS类型(仅支持A类型)、DNS服务器(勾选「允许修改」和「仅审批时可修改」。 + + 「用户」视图(Linux服务):可以添加Linux用户和用户组,一个用户可以有多个用户组,一个用户组可以有多个用户,虚拟机部署成功后,将会有对应的用户和组被创建,用户可以选择是否设置为sudoer。注意:只有安装了代理(部署时安装),才出现用户标签页面 + + + 「磁盘」页面:可以配置Linux虚拟机逻辑卷。除了直接创建硬盘分区外,还可以选择创建逻辑卷(如果需要配置逻辑卷管理(LVM),请确保在虚拟机模板中安装自动化代理) + + + + + 要创建逻辑卷(LV),需要先创建卷组(VG),然后往卷组中添加物理卷(PV)作为卷组底层资源,然后才能创建逻辑卷,一个卷组上创建的逻辑卷的总大小需不大于该卷组的资源总大小。物理卷可以勾选swap选项以创建swap分区 + + + 添加/更改磁盘(物理卷PV):存储为空的时候,点击,表示部署时允许添加磁盘。添加的磁盘需要填写大小和置备模式(目前为必选项),挂载点、卷组、数据存储名选填 + + + + + 「安全策略组」页面:可选择虚拟机的安全策略组 + + + 「关系」页面:可选择可以关联的虚拟机 + + + 「操作许可」页面: + 为某服务项添加云资源操作许可 + + + + + 「Network」组件:点击network名称,进入节点详细设置,共有「基本信息」「属性」两个标签页 + + + + + 「基本信息」页面:可查看Network组件类型、类别、名称 + + + 「属性」页面:可选择网络、子网、IP分配方式(根据网络和子网的选择,读取资源池中的配置)以及管理网络,网络和子网勾选「允许修改」和「仅审批时可修改」。 + +4. 点击「保存」,返回组件列表界面。点击「验证」,验证成功后,「保存并发布」该服务,OpenStack + 单节点服务配置并发布成功 + +## 配置OpenStack Firewall服务{#配置OpenStackFirewall服务} + +1. 在左侧导航选择「服务建模」-「服务配置」,点击左上角的「添加」进入新建服务配置界面,依次填写服务名称,服务描述(选填),蓝图设计(选择[ OpenStack Firewall蓝图](https://cloudchef.github.io/doc/AdminDoc/05服务建模/蓝图设计.html#创建OpenStackFirewall蓝图),业务组,点击「提交」 +2. 「基本信息」「输入与输出」和「服务部署操作许可」视图配置请参照[概述] + +3. 「组件配置」视图:可以看到OpenStack + Firewall服务拓扑图以及Firewall组件 + + 「基本信息」页面:可查看Firewall组件类型、类别、名称; 「属性」页面: + ++ 名称 防火墙名称(勾选「允许修改」和「仅审批时可修改」。这里存在两种情况:如果勾选一项「允许修改」,则用户在请求服务时,可修改参数,在服务审批阶段也可修改参数;如果勾选两项「允许修改」和「仅审批时可修改」,用户在服务请求中,不可修改参数,只在服务审批阶段允许修改参数;) ++ 描述 选填 ++ 管理员状态 启用、禁用,默认启用 ++ 路由 只允许用户在申请时候选择,需要在配置OpenStack资源池时添加路由勾选“使用已有策略” 选择已有策略,勾选「允许修改」和「仅审批时可修改」。这里存在两种情况:如果勾选一项「允许修改」,则用户在请求服务时,可修改参数,在服务审批阶段也可修改参数;如果勾选两项「允许修改」和「仅审批时可修改」,用户在服务请求中,不可修改参数,只在服务审批阶段允许修改参数;不勾选“使用已有策略” 新建策略,填写策略名称(必填),策略描述(选填),选择是否“共享的”和“已审计”。 若勾选“共享的”,在对Firewall做运维操作「更新防火墙策略」时,只能选择已共享的策略及其策略下的规则; 若未勾选“共享的”,在对Firewall做运维操作「更新防火墙策略」时,可选择“共享的”和“未共享的“策略及其策略下的规则 ++ 资源池选择策略 支持资源池选择策略 ++ 资源池 当一个业务组关联多个OpenStack资源池时,支持选择具体使用哪个资源池的资源 ++ 属性(勾选使用已有防火墙) ++ 防火墙 从已有防火墙中选择一个,勾选「允许修改」和「仅审批时可修改」。这里存在两种情况:如果勾选一项「允许修改」,则用户在请求服务时,可修改参数,在服务审批阶段也可修改参数;如果勾选两项「允许修改」和「仅审批时可修改」,用户在服务请求中,不可修改参数,只在服务审批阶段允许修改参数; ++ 资源池选择策略 支持资源池选择策略 ++ 资源池 当一个业务组关联多个OpenStack资源池时,支持选择具体使用哪个资源池的资源 + + + +4. 点击「保存」,返回组件列表界面。点击「验证」,验证成功后,「保存并发布」该服务,OpenStack + Firewall虚拟机服务配置并发布成功 + +## 配置OpenStack LoadBalancer with SecuriryGruop服务{#配置OpenStackLoadBalancerWithSecuriryGruop服务} +1. 在左侧导航选择「服务建模」-「服务配置」,点击左上角的「添加」进入新建服务配置界面,依次填写服务名称,服务描述(选填),蓝图设计(选择[OpenStack LoadBalancer with SecurityGroup蓝图](https://cloudchef.github.io/doc/AdminDoc/05服务建模/蓝图设计.html#创建OpenStackLoadBalancerSecurityGroup蓝图),业务组,点击「提交」 + +2. 「基本信息」「输入与输出」和「服务部署操作许可」视图配置请参照[概述] + +3. 「组件配置」视图:可以看到OpenStack LoadBalancer with + SecuriryGruop服务拓扑图以及所有组件:Server、Network + 、LoadBalancer、Listener、SecurityGroup + + + Server:Server节点的配置参照[ + 配置OpenStack单节点服务](https://cloudchef.github.io/doc/AdminDoc/05服务建模/蓝图设计.html#创建OpenStack单节点蓝图) + + + Network:Network节点的配置参照[配置OpenStack单节点服务]() + + + LoadBalancer:点击LoadBalancer名称,进入节点详细设置,共有「基本信息」和「属性」两个标签页 + + + + + 「基本信息」:显示类型、类别、名称等基本信息 + + + 「属性」页面 + ++ 属性(不勾选使用已有资源) ++ 服务提供商 选择LoadBalancer的服务提供商(Provider),支持F5和HA ++ 名称 填写名称(必填),勾选「允许修改」和「仅审批时可修改」。 ++ 描述 选填 ++ DNS名称 仅支持请求服务时填写,如需指定DNS请勾选允许申请时更改,若勾选允许申请时修改,DNS服务器将必填,DNS类型为A ++ DNS域 选填,勾选「允许修改」和「仅审批时可修改」。 ++ DNS服务器 选填,勾选「允许修改」和「仅审批时可修改」。 ++ DNS类型 选填,勾选「允许修改」和「仅审批时可修改」。 + ++ 属性(勾选使用已有资源) ++ 服务提供商 选择LoadBalancer的服务提供商(Provider),支持F5和HA ++ 名称 填写名称(必填),勾选「允许修改」和「仅审批时可修改」。 ++ DNS名称 仅支持请求服务时填写,如需指定DNS请勾选允许申请时更改若勾选允许申请时修改,DNS服务器将必填,DNS类型为A ++ DNS域 选填,勾选「允许修改」和「仅审批时可修改」。 ++ DNS服务器 选填,勾选「允许修改」和「仅审批时可修改」。 ++ DNS类型 选填,勾选「允许修改」和「仅审批时可修改」。 + + + + Listener:点击Listener名称,进入节点详细设置,共有「基本信息」「属性」「成员」「策略和规则」四个标签页 + + + + + 「基本信息」:显示类型、类别、名称等基本信息 + + + 「属性」页面 + + 属性(不勾选使用已有资源) ++ 名称 填写名称(必填),勾选「允许修改」和「仅审批时可修改」。 ++ 描述 选填 ++ 协议 选择协议(选填),支持HTTP、TCP、UDP,勾选「允许修改」和「仅审批时可修改」。 ++ 端口 填写端口号(必填),如80,勾选「允许修改」和「仅审批时可修改」。 ++ 流量分发算法 选择一个算法(选填),勾选「允许修改」和「仅审批时可修改」。 ++ 属性(勾选使用已有资源) ++ 名称 填写名称(必填),勾选「允许修改」和「仅审批时可修改」。 + + + 「成员」页面:内部成员和外部成员,内部成员列出当前蓝图中所有和该Listener节点相关联的server/windowsServer;外部成员,可添加外部成员,填写IP地址(必填)、子网(必填)、端口(必填)、权重等 + + + 「健康监控」页面: + + + + + 监控类型:支持多种监控类型,如HTTP、HTTPS、TCP等,勾选「允许修改」和「仅审批时可修改」。 + + + 时间间隔(秒):必须大于等于1,勾选「允许修改」和「仅审批时可修改」。 + + + 最大重试次数:1\~10,勾选「允许修改」和「仅审批时可修改」。 + + + 超时(秒):超时(秒)必须小于等于时间间隔(秒),勾选「允许修改」和「仅审批时可修改」。 + + + HTTP方法:若监控类型选择HTTP,将选择HTTP方法。如GET、POST等,勾选「允许修改」和「仅审批时可修改」。 + + + 期望的状态码:若监控类型选择HTTP,将填写期望的状态码 + + + URL路径: + 若监控类型选择HTTP,将填写URL路径,勾选「允许修改」和「仅审批时可修改」。 + + + + + 「策略和规则」页面:可新建应用于该Listener的策略和规则,勾选「允许修改」和「仅审批时可修改」。;添加策略,填写名称,选择操作,描述(选填),权重,重定向URL + + + + + SecurityGroup:点击SecurityGroup名称,进入节点详细设置,共有「基本信息」和「属性」两个标签页 + + + + + 「基本信息」:显示类型、类别、名称等基本信息 + + + 「属性」页面:默认"使用已有安全组",选择一个安全组 + +>「Note」OpenStack资源池中,在「网络资源」-「安全策略组」中需要选择一个安全策略组后,才能在SecurityGroup「属性」页面选择一个已有的安全组 + +4. 点击「保存」,返回组件列表界面。点击「验证」,验证成功后,「保存并发布」该服务,OpenStack + LoadBalancer with SecuriryGruop虚拟机服务配置并发布成功 + +## 配置OpenStack FloatingIP服务 {#配置OpenStackFloatingIP服务} + +1. 在左侧导航选择「服务建模」-「服务配置」,点击左上角的「添加」进入新建服务配置界面,依次填写服务名称,服务描述(选填),蓝图设计(选择[OpenStack FloatingIP蓝图](),业务组,点击「提交」 + +2. 「基本信息」「输入与输出」和「服务部署操作许可」视图配置请参照[概述] + +3. 「组件配置」视图:可以看到OpenStack + FloatingIP服务拓扑图及组件FloatingIP + + + FloatingIP:点击LoadBalancer名称,进入节点详细设置,共有「基本信息」和「属性」两个标签页 + + + + + 「基本信息」:显示类型、类别、名称等基本信息 + + + 「属性」页面 + + 属性(不勾选使用已有资源) + ++ 网络 选择FloatingIP的网络,勾选「允许修改」和「仅审批时可修改」。 ++ 子网 选择FloatingIP网络对应的子网,勾选「允许修改」和「仅审批时可修改」。 ++ IP分配方式 选择IP分配方式,支持IP池、DHCP、手工指定,若选择手工指定,则需在服务申请时指定IP地址 ++ IP池 若选择IP池的分配方式,选择IP池 ++ DNS名称 仅支持请求服务时填写,如需指定DNS请勾选允许申请时更改 ++ DNS域 选填,勾选「允许修改」和「仅审批时可修改」。 ++ DNS服务器 选填,勾选「允许修改」和「仅审批时可修改」。 ++ DNS类型 选填,勾选「允许修改」和「仅审批时可修改」。 ++ 属性(勾选使用已有资源) ++ 浮动IP 选择FloatingIP的网络,勾选「允许修改」和「仅审批时可修改」。 + +4. 点击「保存」,返回组件列表界面。点击「验证」,验证成功后,「保存并发布」该服务,OpenStack + FloatingIP虚拟机服务配置并发布成功 + +## 配置OpenStack DNS服务 {#配置OpenStackDNS服务} + +1. 在左侧导航选择「服务建模」-「服务配置」,点击左上角的「添加」进入新建服务配置界面,依次填写服务名称,服务描述(选填),蓝图设计(选择[OpenStack DNS蓝图](https://cloudchef.github.io/doc/AdminDoc/05服务建模/蓝图设计.html#创建OpenStackDNS蓝图),业务组,点击「提交」 + +2. 「基本信息」「输入与输出」和「服务部署操作许可」视图配置请参照[概述] + +3. 「组件配置」视图:可以看到OpenStack DNS服务拓扑图及组件DNS + + + DNS:点击DNS名称,进入节点详细设置,共有「基本信息」和「属性」两个标签页 + + + + + 「基本信息」:显示类型、类别、名称等基本信息 + + + 「属性」页面 + + ++ DNS类型 支持A、CNAME、MX、TXT 4种类型 +• A记录:WEB服务器的IP指向,用来指定主机名(或域名)对应的IP地址记录 +• CNAME记录:别名解析 +• MX记录:邮件交换记录 +• TXT记录:某个主机名或域名的说明 ++ MX优先级 如果DNS类型选择MX,将出现「MX优先级」这个菜单 ++ DNS名称 输入DNS的名称,默认强制允许申请时更改 ++ DNS域 选择DNS域,在系统配置中添加的DNS域 ++ DNS服务器 根据所在业务组的OpenStack云平台服务器中配置的DNS服务器选择 ++ DNS参数 若DNS类型选择的A:填写IP地址,支持多条,用逗号分隔; ++ 若DNS类型选择的CNAME:输入域名,例test.example.com ++ 若DNS类型选择的MX:输入域名,例test.example.com ++ 若DNS类型选择的TXT:输入一段描述 + + +4. 点击「保存」,返回组件列表界面。点击「验证」,验证成功后,「保存并发布」该服务,OpenStack + DNS虚拟机服务配置并发布成功 + +## 配置Kubernetes服务 {#配置Kubernetes服务} + +1. 在左侧导航选择「服务建模」-「服务配置」,点击左上角的「添加」进入新建服务配置界面,依次填写服务名称,服务描述(选填),蓝图设计(,业务组,点击「提交」 + +2. 「基本信息」「输入与输出」和「服务部署操作许可」视图配置请参照[概述] + +3. 「组件配置」视图:可以看到Kubernetes服务拓扑图以及服务配置中的所有组件,根据kubernetes蓝图,一共有4个组件,分别是Deployment、Service、Container、PersistentVolumeClaim + + + Deployment:点击Deployment名称,进入「基本信息」页面,点击「属性」,可选择副本数量,默认为1,点击「保存」 + + + Container:点击Container名称,进入基本信息页面,点击「属性」标签页: + + Container + ++ 镜像源 选择已添加的镜像源,可在kubernetes云平台中添加的Habor、Docker Trusted Registry镜像源,勾选「允许修改」和「仅审批时可修改」。 ++ 镜像名称 若已选镜像源,则自动过滤该镜像源下的镜像;若未选择镜像源,可输入名称自动创建,勾选「允许修改」和「仅审批时可修改」。 ++ 镜像标签 选择需要的镜像标签,勾选「允许修改」和「仅审批时可修改」。 ++ 资源规格 - CPU 输入请求的CPU大小和最大限制的CPU大小,请求的CPU不能大于最大限制,支持申请时改变 ++ 资源规格 - 内存 输入请求的内存大小和最大限制的内存大小,请求的内存不能大于最大限制,支持申请时改变 ++ 容器开放端口 例如8080 ++ 环境变量 例如参数/JRE\_Home的值为/usr + + + Service:点击Service名称,进入基本信息页面,点击「属性」,可配置端口映射,填写下列的信息: + ++ 服务端口 服务对外开放的端口,例如8080 ++ 所依赖的Deployment节点 选择该Service依赖的一个Deployment节点 ++ 所依赖的Container节点 选择Deployment中的容器节点 ++ 容器开放端口 选择容器中配置的开放端口 ++ 主机端口 选择Node的开放端口,默认范围30000-32767 ++ 协议 TCP或者UDP + +PersistentVolumeClaim:点击PersistentVolumeClaim名称,进入基本信息页面,点击「属性」: ++ 挂载点 例如/opt/share ++ 访问模式 支持ReadWriteOnce,ReadOnlyMany,ReadWriteMany ++ 存储类 Standard ++ 空间限额(Gi) 输入空间大小 + +4. 点击「保存」,返回组件列表界面。点击「验证」,验证成功后,「保存并发布」该服务,Kubernetes虚拟机服务配置并发布成功 + +## 配置阿里云服务 {#配置阿里云服务} + +1. 在左侧导航选择「服务建模」-「服务配置」,点击左上角的「添加」进入新建服务配置界面,依次填写服务名称,服务描述(选填),蓝图设计(选择[创建的阿里云蓝图](https://cloudchef.github.io/doc/AdminDoc/05服务建模/蓝图设计.html#创建阿里云蓝图),业务组,点击「提交」 + +2. 「基本信息」「输入与输出」和「服务部署操作许可」视图配置请参照[概述] + +3. 「组件配置」视图:可以看到阿里云服务拓扑图以及服务配置中的所有组件:Instance、SecurityGroup + + + Instance:点击Instance名称,进入节点详细设置,共有「基本信息」「网络」「属性」「存储」「安全策略组」「负载均衡」「操作许可」等标签页 +4. 「基本信息」页面: 基本信息 展示Instance的类型、类别和名称等基本信息. + 资源池选择策略:1. 自动选择:平台自动按照策略选择资源池 2. 基于资源标签选择:若该服务所使用的蓝图中已有资源便签,默认继承该资源标签,根据标签去选择业务组中匹配该标签的资源池(前提是资源池已设置资源标签),实现将资源部署到特定的资源池中。也可在服务配置选择其他资源标签;勾选「允许修改」和「仅审批时可修改」。,勾选后可在申请时选择 3. 手工指定:可选择为该服务手工指定资源池,若 资源池选择策略选择“手工指定”后,将出现资源池选择项,指定资源池,允许资源池申请时改变 +>「Note」若该服务共享给全部业务组,则资源池无法指定,默认强制勾选「允许修改」和「仅审批时可修改」。;若该服务指定给某一业务组,则选择该业务组下的资源池 +云主机数量 选择部署的云主机数量,勾选「允许修改」和「仅审批时可修改」。 + + +5. 「网络」页面: + ++ 可用区 选择网络的可用区。更改可用区可能会导致虚拟交换机、虚拟机规格、磁盘种类等值的相应改变 ++ 网络类型 根据资源池中配置的网络类型显示 ++ 专有网络 若选择专有网络,需选择专有网络 ++ 虚拟交换机 若选择专有网络,需选择虚拟交换机 ++ 分配公网IP地址 选中此项,用于安装软件组件或运行脚本 + +6. 「属性」页面 + + ++ 付费方式 选择预付费或后付费 ++ 虚拟机镜像 选择阿里云上的虚拟机镜像 ++ 虚拟机规格 选择虚拟机规格 ++ 监控方式 选择监控方式,无监控或SSH安装监控代理 ++ 安装自动化代理 不安装或SSH安装 ++ 应用蓝图自动化部署,服务配置初始化并挂载磁盘,以及某些虚拟机操作(如重置密码、添加新逻辑卷等)将使用此代理;如果未安装,这些功能将受影响。安装自动化代理前提条件:网络类型必须是专有网络(VPC) ++ 用户名 root用户 ++ 密码 请输入模板的密码以便在此云主机上安装软件 ++ 购买资源时长单位(预付费) 月或周 ++ 购买单位时长(预付费) 若购买资源时长单位选择“月”,则可选择1~9,12、24、36、48、60等时长,若购买资源时长单位选择“周”,则可选择1~4周 ++ 是否自动续费(预付费) 若勾选自动续费,则根据购买资源时长单位延长相应的周或月 + +「存储」页面:支持添加或编辑磁盘信息,添加磁盘需填写描述(选填)、选择磁盘种类、填写大小(GB),选择快照 + +「安全策略组」页面:默认安全策略组且不可编辑 + +「负载均衡」页面:无 + +「操作许可」页面:默认继承业务组 +「SecurityGroup 」组件:点击SecurityGroup + 名称,进入节点详细设置,共有「基本信息」「属性」两个标签页 +「基本信息」页面:可查看SecurityGroup 组件类型、类别、名称 + +「属性」页面: 使用已有安全组,选择一个已有安全组(资源池中配置的安全组), 若需要新建安全组,需在「服务建模」-「蓝图设计」- 阿里云蓝图 SecurityGroup 参数选项,取消勾选"使用已有资源",即可在此新建安全组,安全组名称 填写新建的安全组的名称。管理安全组规则 点击“添加规则”,新建安全组规则 + + 网卡类型:选择私网或公网 + + 规则方向:选择入口或出口 + + 授权策略:选择允许或拒绝 + + 协议类型:选择全部或http、udp、icmp、gre + + 端口范围:取值范围为1~65535;例如“1/200”、“80/80” + + 授权类型:地址段访问 + + 授权对象:请谨慎设置授权对象,根据授权策略的不同,0.0.0.0/0代表允许或拒绝所有IP的访问(可点击“教我设置”) + + 优先级:设置规则优先级 + + 点击「保存」,返回组件列表界面。点击「验证」,验证成功后,「保存并发布」该服务,阿里云服务配置并发布成功 + +## 配置Azure服务 {#配置Azure服务} + +1. 在左侧导航选择「服务建模」-「服务配置」,点击左上角的「添加」进入新建服务配置界面,依次填写服务名称,服务描述(选填),蓝图设计(选择创建的Azure蓝图),业务组,点击「提交」 + +2. 「基本信息」「输入与输出」和「服务部署操作许可」视图配置请参照[概述] + +3. 「组件配置」视图:可以看到Azure服务拓扑图以及服务配置中的所有组件:Instance、VirtualNetwork、AvailabilitySet、SecurityGroup、LoadBalancer、LoadBalancerRule、BlobContainer + + + Instance:点击Instance名称,进入节点详细设置,共有「基本信息」「云资源配置」「网络」「操作许可」等标签页 + + + 「基本信息」页面:显示类型、类别、名称等基本信息。可设置部署的云主机数量,勾选「允许修改」和「仅审批时可修改」 + + + 「云资源配置」:包括「云主机配置」、「资源池配置」、「虚拟机模板配置」、「资源规格配置」四部分 + +1. 云主机配置 云主机名称,默认继承业务组命名规则,勾选「允许修改」和「仅审批时可修改」 +2. 资源池配置 + 资源池选择策略:目前支持 “手工指定”一个资源池,勾选「允许修改」和「仅审批时可修改」 + + 诊断存储账户:选择一个存储账户 + + 磁盘类型:选择一种磁盘类型,如HDD、SSD +3. 虚拟机模板配置 + + 操作系统名称:选择Windows或Linux操作系统 + + 虚拟机模板:选择windows或Linux操作系统下的Azure虚拟机模板 +4. 资源规格配置 + 资源规格:选择一种系统创建的资源规格 + + 云平台规格:从该资源规格下的Azure云平台资源规格中选择一种 + + + + 「网络」页面:显示虚拟网络名称、子网、IP分配方式等信息。可勾选「使用公共IP」 + + + 「操作许可」页面默认继承业务组配置 + + + + + VirtualNetwork:点击VirtualNetwork名称,进入节点详细设置,共有「基本信息」「属性」等标签页 + + + + + 「基本信息」页面:显示类型、类别、名称等信息。 + + + 「属性」页面:可选择子网,勾选「允许修改」和「仅审批时可修改」 + + + + + AvailabilitySet:点击Availability名称,进入节点详细设置,共有「基本信息」「属性」等标签页 + + + + + 「基本信息」页面:显示类型、类别、名称等信息。 + + + 「属性」页面:默认勾选「使用已有资源」。可选择可用性集,勾选「允许修改」和「仅审批时可修改」 + + + + + SecurityGroup:点击SecurityGroup名称,进入节点详细设置,共有「基本信息」「属性」等标签页 + + + + + 「基本信息」页面:显示类型、类别、名称等信息。 + + + 「属性」页面:默认勾选「使用已有安全组」。可选择安全组,勾选「允许修改」和「仅审批时可修改」选择安全组后,列出详细的入站、出站安全规则。 + + + + + LoadBalancer:点击LoadBalancer名称,进入节点详细设置,共有「基本信息」「属性」等标签页 + + + + + 「基本信息」页面:显示类型、类别、名称等信息。 + + + 「属性」页面:默认勾选「使用已有资源」。可选择负载均衡器,勾选「允许修改」和「仅审批时可修改」 + + + + + LoadBalancerRule:点击LoadBalancerRule名称,进入节点详细设置,共有「基本信息」「属性」等标签页 + + + + + 「基本信息」页面:显示类型、类别、名称等信息。 + + + 「属性」页面:输入负载均衡规则名称、选择前端IP地址和通信协议(TCP/UDP)、输入端口和后端端口。上述项目均勾选「允许修改」和「仅审批时可修改」。。 + + + + + BlobContainer:点击BlobContainer名称,进入节点详细设置,共有「基本信息」「属性」等标签页 + + + + + 「基本信息」页面:显示类型、类别、名称等信息 + + + 「属性」页面:基于"资源池选择策略(手工指定/自动选择/基于资源标签选择)"选择资源池,勾选「允许修改」和「仅审批时可修改」。。输入BlobContainer名称,勾选「允许修改」和「仅审批时可修改」。。选择一个存储账户,并选择公共访问级别(仅匿名读取访问Blob/匿名读取访问容器和Blob) + +4. 点击「保存」,返回组件列表界面。点击「验证」,验证成功后,「保存并发布」该服务,Azure服务配置并发布成功 + +## 配置AWS服务 {#配置AWS服务} + +1. 在左侧导航选择「服务建模」-「服务配置」,点击左上角的「添加」进入新建服务配置界面,依次填写服务名称,服务描述(选填),蓝图设计(选择[AWS蓝图](https://cloudchef.github.io/doc/AdminDoc/05服务建模/蓝图设计.html#创建AWS蓝图),业务组,点击「提交」 + +2. 「基本信息」「输入与输出」和「服务部署操作许可」视图配置请参照[概述] + +3. 「组件配置」视图:可以看到AWS服务拓扑图以及服务配置中的所有组件:Instance、SecurityGroup + + + Instance:点击Instance名称,进入节点详细设置,共有「基本信息」「云资源配置」「操作许可」等标签页 + + + + + 「基本信息」页面: + ++ 基本信息 展示Instance的类型、名称等基本信息 ++ 云主机数量 默认云主机数量为1,可更改或选择"勾选「允许修改」和「仅审批时可修改」。" + + + 「云资源配置」页面: + + +1. 云主机配置 +云主机名称 没有定义时默认继承业务组命名规则,支持勾选「允许修改」和「仅审批时可修改」。 +2. 资源池配置 +资源池选择策略 + 手工指定:手工指定资源池 +「Note」若该服务共享给全部业务组,则资源池无法指定,默认强制勾选「允许修改」和「仅审批时可修改」。;若该服务指定给某一业务组,则选择该业务组下的资源池 +资源池 选择资源池,将根据蓝图类型进行过滤 +可用区 选择可用区,将根据所选资源池中可用区进行过滤 +子网 选择子网,将根据所选资源池中配置的子网进行过滤 +3. 虚拟机模板配置 +操作系统 选择Linux操作系统 +虚拟机模板 选择该操作系统下的青云虚拟机模板 +4. 计算规格配置 +资源规格 选择在「基础设施」-「计算规格」中自定义的规格 +云平台规格 选择在「基础设施」-「计算规格」中自定义的云平台规格,将根据所选的资源规格进行过滤 +公网配置 +分配公网IP地址 可选是否分配公网IP地址 + + + + 「操作许可」页面:在此可启用虚拟机的各项操作,以及配置所需的审批流程。对于每个操作,可针对不同的角色,配置不同的规则和审批流程。默认选填继承业务组配置,可增删,可对操作列表进行角色筛选 + + + + + SecurityGroup:点击SecurityGroup名称,进入节点详细设置,共有「基本信息」「属性」等标签页 + + + + + 「基本信息」页面:显示类型和名称 + + + 「属性」页面: + +默认勾选「使用已有安全组」,选择已有安全组,选择后将列出该安全组的规则,勾选「允许修改」和「仅审批时可修改」。 + 若不勾选「使用已有安全组」即新建安全组,填写安全组名称、描述,名称勾选「允许修改」和「仅审批时可修改」。,点击添加规则,配置相关的安全组规则 + +4. 点击「保存」,返回组件列表界面。点击「验证」,验证成功后,「保存并发布」该服务,AWS服务配置并发布成功 + +## 配置青云服务 {#配置青云服务} + +1. 在左侧导航选择「服务建模」-「服务配置」,点击左上角的「添加」进入新建服务配置界面,依次填写服务名称,服务描述(选填),蓝图设计(选择[青云蓝图](https://cloudchef.github.io/doc/AdminDoc/05服务建模/蓝图设计.html#创建青云蓝图),业务组,点击「提交」 + +2. 「基本信息」「输入与输出」和「服务部署操作许可」视图配置请参照[概述] + +3. 「组件配置」视图:可以看到青云服务拓扑图以及服务配置中的所有组件:WindowsInstance、SecurityGroup + WindowsInstance:点击WindowsInstance名称,进入节点详细设置,共有「基本信息」「云资源配置」「操作许可」等标签页。 + + 「基本信息」页面: 基本信息 展示WindowsInstance的类型、名称等基本信息。 云主机数量 默认云主机数量为1,可更改或选择"勾选「允许修改」和「仅审批时可修改」。" + + + 「云资源配置」页面: 云主机配置云主机名称, 没有定义时默认继承业务组命名规则,支持勾选「允许修改」和「仅审批时可修改」。 资源池配置,资源池选择策略; 手工指定:手工指定资源池。选择资源池,将根据蓝图类型进行过滤。 选择子网,将根据所选资源池中配置的子网进行过滤。 + +>「Note」若该服务共享给全部业务组,则资源池无法指定,默认强制勾选「允许修改」和「仅审批时可修改」。;若该服务指定给某一业务组,则选择该业务组下的资源池 + ++ 虚拟机模板配置:操作系统 选择Linux操作系统;虚拟机模板 选择该操作系统下的青云虚拟机模板 ++ 计算规格配置:资源规格 选择在「基础设施」-「计算规格」中自定义的规格;云平台规格 选择在「基础设施」-「计算规格」中自定义的云平台规格,将根据所选的资源规格进行过滤;公网配置分配公网IP地址 可选是否分配公网IP地址。 没有定义时默认继承业务组命名规则,支持勾选「允许修改」和「仅审批时可修改」。 手工指定:手工指定资源池 +>「Note」若该服务共享给全部业务组,则资源池无法指定,默认强制勾选「允许修改」和「仅审批时可修改」。;若该服务指定给某一业务组,则选择该业务组下的资源池 + ++ 「操作许可」页面:在此可启用虚拟机的各项操作,以及配置所需的审批流程。对于每个操作,可针对不同的角色,配置不同的规则和审批流程。默认选填继承业务组配置,可增删,可对操作列表进行角色筛选 + + + + + SecurityGroup:点击SecurityGroup名称,进入节点详细设置,共有「基本信息」「属性」等标签页 + + + + + 「基本信息」页面:显示类型和名称 + + + 「属性」页面: + + 默认勾选「使用已有安全组」,选择已有安全组,选择后将列出该安全组的规则,勾选「允许修改」和「仅审批时可修改」。 若不勾选「使用已有安全组」即新建安全组,填写安全组名称,点击添加规则,配置相关的防火墙规则 + +6. 点击「保存」,返回组件列表界面。点击「验证」,验证成功后,「保存并发布」该服务,青云服务配置并发布成功 + +## 配置Hyper-V服务 {#配置Hyper-V服务} + +1. 在左侧导航点击「服务建模」-「服务配置」,点击左上角的「添加」进入新建服务配置界面,依次填写服务名称,服务描述(选填),蓝图设计(选择Hyper-V单节点蓝图),业务组,点击「提交」 + +2. 「基本信息」页面: + ++ 业务组 部署所属业务组 ++ 服务部署名称 部署名称(若业务组已设定服务部署命名规则,服务部署名称将按照规则自动生成,无需填写) ++ Logo图像 上传图像,在服务目录展示时更美观 ++ 描述 部署描述 ++ 服务分组 内置三者类型:工单服务、数据库、基础设施,支持自定义(关于服务分组的详细介绍请参考:[服务分组](https://cloudchef.github.io/doc/AdminDoc/05服务建模/服务分组.html) ++ 顺序 指定服务目录中的排列顺序,数值小的排列靠前 ++ 服务状态 实时展示服务状态,如:未发布 ++ 服务部署租用时间(日) 租用时间,租用时间到后,部署里的所有云主机会停机并归档 ++ 服务部署保留时间(日) 保留时间,保留时间到后,部署会被卸除 ++ 允许申请时添加软件 勾选上则允许服务申请时添加软件 ++ 审批流程 可选择无审批流程、默认审批流程和自定义的审批流程 + +3. 「流程配置」视图:可以选择流程类型,查看流程信息、流程图、流程步骤 + +4. 「组件配置」视图:可以看到Hyper-V服务拓扑图以及服所有组件:WindowsInstance和NetworkAdapter,可进行组件节点详细设计。其中下面为您详细介绍WindowsInstance云资源配置: + + 资源池配置 资源池选择策略:选择手工指定;资源池:选择Hyper-V资源池,勾选申请时可见则服务申请时显示,勾选申请时可修改则在服务申请时可以修改资源池。 + + 计算规格 计算规格:选择微型(1C1G); 勾选申请时可见则服务申请时显示,勾选申请时可修改则在服务申请时可以修改计算规格。 + +5. 「输入与输出配置请参照[概述] + +6. 「服务部署操作许可」视图:在此可启用服务部署管理中的各项操作,以及配置所需的审批流程。对于每个操作,可针对不同的角色,配置不同的规则和审批流程。默认继承业务组配置,可增删,可对操作列表进行角色筛选 + +7. 点击「保存」,返回组件列表界面。点击「验证」,验证成功后,「保存并发布」该服务,Hyper-V虚拟机服务配置并发布成功 + +## 配置F5与OpenStack组合服务 {#配置F5与OpenStack组合服务} + +1. 在左侧导航点击「服务建模」-「服务配置」,点击左上角的「添加」进入新建服务配置界面,依次填写服务名称,服务描述(选填),蓝图设计(选择F5与OpenStack组合蓝图),点击「提交」。 + +2. 「基本信息」页面: + 除了服务名称自定义填写,其余与配置vSphere单节点服务基本信息页面一致。 + +3. 「流程配置」视图:可以选择流程类型,查看流程信息、流程图、流程步骤 + +4. 「组件配置」视图:可以看到OpenStack + 服务拓扑图以及所有组件:Server、Network,F5服务所有组件:Virtual + Server、Pool以及SNAT Pool + +OpenStack的Server和Network组件,配置参考:[配置OpenStack单节点服务](https://cloudchef.github.io/doc/AdminDoc/05服务建模/蓝图设计.html#创建OpenStack单节点蓝图) + + F5服务的组件配置: + + 1. Pool: 进入「属性」视图,选择资源池选择策略(手工指定),选择资源池(F5BIG-IP资源池),勾选允许修改 则在服务申请时允许修改,选择负载均衡方式;SNAT Pool: + 2. 进入「属性」视图,选择资源池选择策略(手工指定),选择资源池(F5BIG-IP资源池),勾选允许修改 则在服务申请时允许修改,定义基础属性 :勾选使用已有资源 选择已有的SNATPool,例如:F5-SNATPool;不勾选使用已有资源 定义IP名称和IP地址,例如: + + + Virtual Server: + 进入「属性」视图,选择资源池选择策略(手工指定),选择资源池(F5 BIG-IP资源池),勾选允许修改 + 则在服务申请时允许修改,IP分配方式选择(IP池) + +5. 点击「保存」,返回组件列表界面。点击「验证」,验证成功后,「保存并发布」该服务,F5服务配置并发布成功 + +# 配置标准任务 +在左侧导航点击「服务建模」-「服务配置」,点击左上角的「添加」进入新建服务配置界面,依次填写服务名称,服务描述(选填),选择业务组,服务类型选择执行任务服务,流程选择标准任务服务流程,点击「提交」。 +「概况」页面:服务名称、描述自定义填写,选择服务可供申请的角色、服务分组、服务卡片排序、状态。 + +「任务配置」页面:点击添加按钮,与流水线添加任务的界面一致。详情请参考:[配置任务](https://cloudchef.github.io/doc/AdminDoc/11集成与发布管理/#配置阶段和任务)。 + +「审批配置」页面:选择审批流程,例如:业务组管理员审批、租户管理审批、并行审批等其他自定义审批流程。 + +「表单配置」页面:根据需求自定义绑定表单,例如:上传附件、创建IP池、创建项目、添加AD用户等其他自定义表单。 + +「流程配置」页面:可以选择流程类型,查看流程信息、流程图、流程步骤 + + +# 编辑服务配置 + +在左侧导航选择「服务建模」-「服务配置」,在服务配置列表界面,点击服务配置名称,进入「基本信息」页面,可编辑相应的参数,点击」保存」。 + +# 取消发布服务配置 + +在左侧导航选择「服务建模」-「服务配置」,在服务配置列表界面,选中某服务配置,若该服务配置状态为"已发布",则「取消发布」操作可用,点击后确定,取消发布成功。在服务配置列表界面该服务配置状态更改为"未发布",未发布服务配置将不能在服务目录界面显示且不能被申请。 + +# 卸除服务配置 + +在左侧导航选择「服务建模」-「服务配置」,在服务配置列表界面,选中某服务配置,点击「卸除服务部署」,确定后卸除服务配置成功。 diff --git "a/AdminDoc/05\346\234\215\345\212\241\345\273\272\346\250\241/\346\265\201\347\250\213\351\205\215\347\275\256.html" "b/AdminDoc/05\346\234\215\345\212\241\345\273\272\346\250\241/\346\265\201\347\250\213\351\205\215\347\275\256.html" new file mode 100644 index 0000000..1ef8447 --- /dev/null +++ "b/AdminDoc/05\346\234\215\345\212\241\345\273\272\346\250\241/\346\265\201\347\250\213\351\205\215\347\275\256.html" @@ -0,0 +1,1187 @@ + + + + + + + 流程配置 · 发行说明 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
                                            +
                                            + + + + + + + + +
                                            + +
                                            + +
                                            + + + + + + + + +
                                            +
                                            + +
                                            +
                                            + +
                                            + +

                                            流程应用场景

                                            +

                                            在云资源的自助化申请、审批、自动化部署、运维操作和手工工单处理过程中,流程定义了这些任务处理过程或服务配置过程的方法和策略。系统默认提供标准流程,同时支持管理员通过流程设计器定义灵活的各项服务所需的流程,对云主机的申请、运维操作、回收进行控制,对手工工单服务的处理、关闭进行管控,主要流程包括:审批、手工工单服务和云资源蓝图服务流程等等。

                                            +

                                            1. 审批流程

                                            +

                                            支持租户管理员通过流程设计器自定义审批流程模板,自定义的具体配置包括审批的层级结构,审批员的指定,审批规则,以及可以执行的操作。

                                            +

                                            主要功能点

                                            +
                                              +
                                            • 支持定义任意多级审批。

                                              +
                                            • +
                                            • 支持在流程设计器中图形化的设计审批的全过程。

                                              +
                                            • +
                                            • 支持定义按用户或角色进行审批。

                                              +
                                            • +
                                            • 支持定义审批时是否可以更改申请的配置。

                                              +
                                            • +
                                            • 支持在业务组和服务目录层面定义需要审批和通知的环节。

                                              +
                                            • +
                                            • 支持审批员批量操作审批

                                              +
                                            • +
                                            • 支持设置每一级审批员可以修改的字段

                                              +
                                            • +
                                            +

                                            SmartCMP配置审批流程有两种方法:

                                            +
                                              +
                                            1. 一是业务组管理员或租户管理员在业务组配置中添加审批流程A

                                              +
                                            2. +
                                            3. 二是业务组管理员或租户管理员在服务配置中添加审批流程B

                                              +
                                            4. +
                                            5. 当同时使用两种配置方法,审批流程发生冲突,服务配置中审批流程B优先于业务组配置中的审批流程A

                                              +
                                            6. +
                                            +

                                            在业务组中添加审批流程

                                            +

                                            可为业务组添加审批流程,配置成功后,业务组成员申请服务部署时,将需要通过审批模板中的流程进行控制。

                                            +
                                              +
                                            1. 「组织架构」-「业务组」,点击业务组名称进入业务组详情页面

                                              +
                                            2. +
                                            3. 在「审批流程」标签页,选择 审批模板,点击「保存」

                                              +
                                            4. +
                                            5. 保存后,业务组成员申请服务时会进入审批流程

                                              +
                                            6. +
                                            +

                                            在服务配置中添加审批流程

                                            +

                                            在「服务目录」申请服务成功后,如果服务提前配置了审批流程,则服务将进入审批队列,获得审批模板中相关成员的审批意见。审批通过才能执行部署操作。

                                            +

                                            示例:选择一个服务如"vSphere单节点服务",在服务配置中为该服务添加审批流程 +「服务建模」-「服务配置」,选择服务配置列表中的 "vSphere单节点服务"

                                            +

                                            点击服务名称,进入编辑服务页面,在「审批配置」页面中,选择审批流程(服务配置过程,审批流程的内容只能查看和选择任意一个流程,不能编辑和删除。)点击「保存」。保存后,申请该服务需要按照该模板的审批流程通过后才能部署。

                                            +

                                            服务申请者点击左侧导航栏「服务目录」,选择"vSphere单节点服务",点击进入服务申请页面

                                            +

                                            填写申请单:包括业务组(卡片共享给全部业务组时需要填写)、服务部署名称(若业务组未设置服务部署命名规则时需填写),部署数量,项目,所有者,部署原因、虚拟机模板等,填写完成后点击「申请」

                                            +

                                            查看申请状态:进入「服务请求」-「待审批」,申请状态为「待审批」状态

                                            +

                                            审批:审批模板中指定的审批人登入系统后进入「服务请求」-「待审批」,选择待审批的项目「Note」可选中多个待处理的审批,批量进行操作。

                                            +

                                            输入审批意见,点击「批准」,弹出确认提示框,点击「是」

                                            +

                                            查看已审批通过的项目:进入「服务请求」-「已审批」,项目的状态是「审批通过」

                                            +

                                            申请者登入系统后进入「我的申请」里查看申请的蓝图部署状态变更为「审批通过」

                                            +

                                            「服务部署」里,项目已经开始部署。部署成功后,在「服务部署」中,选择该服务,可对服务进行被允许的运维操作。

                                            +

                                            1.1. 自定义并行审批流程

                                            +

                                            在左侧导航栏点击「服务建模」-「流程配置」,点击添加名称(并行审批流程)、描述、类别(审批流程)等信息之后,使用流程设计器设计和定义您需要启用的审批流程。 +选中并行审批流程,进入「流程设计器」以图形化的方式自定义具体策略: +为您介绍流程设计器的使用方法:左边圆圈代表开始的节点,右边圆圈代表结束节点,并行审批流程设定两个平行审批环节(审批A环节、审批B环节),某申请通过A环节并且通过B环节则审批通过申请成功,两个环节任意一个环节不通过则申请失败。如图所示:

                                            +

                                            流程

                                            +

                                            配置审批人

                                            +
                                              +
                                            • 审批人可以选择角色或用户。例如租户管理员、业务组管理员等,也可以指定某个用户作为审批人。 + 审批流程中内置角色使用:如果希望审批能够从申请者所在的最底层组织架构开始审批,然后再是资源所在的业务组,为满足这样的审批流程,我们需要在审批流程中添加额外的审批角色。管理员编辑审批流程时,审批人选择「角色」,列出内置审批用角色分别是:

                                              +

                                              「一级业务组管理员」:定义为用户所在的最底层业务组的管理员

                                              +

                                              「二级业务组管理员」:定义为用户所在的上一层业务组的管理员

                                              +

                                              例如:审批流程中添加两级审批流程,第一级角色选择"一级业务组管理员",第二级角色选择"二级业务组管理员"。审批时可以从申请者资源所在业务组的最底层组织架构开始审批。

                                              +
                                            • +
                                            • 审批人选择动态用户,指定“动态用户”${FORM.approver},为服务自定义表单,在表单配置处绑定approver字段,实现您可以指定任意一个用户作为审批人的需求。

                                              +
                                            • +
                                            • 审批人选择基于访问权限,则当这个流程用于部署或云资源操作审批时,只有对该资源有读取权限的用户才能收到审批请求。

                                              +
                                            • +
                                            +

                                            审批更改(允许或不允许审批员进行修改)高级配置(可配置审批员可以修改的具体字段,例如CPU、内存等)

                                            +

                                            审批规则分为两种:第一种是固定值即满足设定数目的审批者则可通过该层级审批,如若有一人拒绝通过则审批失败。第二种为百分比即满足设定的百分比的成员通过此项审批则为通过,若有一人拒绝则审批失败。

                                            +

                                            对于具体的操作分为审批操作和执行操作:

                                            +

                                            审批操作是赋予该层级审批人审批的权限,即可以批准、拒绝或退回该申请。执行操作则没有审批权限,不能拒绝或退回,只是作为该层审批的审阅者查看申请内容并确认审批完成。此外,还可以对该层审批者定义是否具备修改申请的权限,如需,请勾选允许修改申请。

                                            +

                                            1.2. 内置的审批流程

                                            +

                                            系统内置租户管理员审批流程、业务组管理员审批流程、审批模板流程,方便用户直接选择所需要的审批流程。

                                            +

                                            内置的审批流程不可修改和删除,只支持查看和使用,用户自定义添加的审批流程支持修改和删除

                                            +
                                              +
                                            • 「租户管理员审批」:定义为用户所在的租户系统内的管理员

                                              +
                                            • +
                                            • 「业务组管理员审批」:定义为用户所在的业务组的管理员

                                              +
                                            • +
                                            • 「审批模板流程」:内置的云服务部署审批流程

                                              +
                                            • +
                                            +

                                            2. 手工工单服务流程

                                            +

                                            手工工单服务流程定义工单任务具体的处理步骤、服务团队、服务人员和流转方式。

                                            +

                                            内置的手工工单服务流程 :平台内置的手工工单服务流程包括标准手工工单,标准事件管理流程、自动化服务流程,同时支持租户管理员自定义服务流程。

                                            +

                                            内置的手工工单流程不可修改和删除,只支持查看和使用,用户自定义添加的手工工单服务流程支持修改和删除

                                            +

                                            标准事件流程 Incident +Report,用来解决出现的IT资源相关的问题,例如服务器down了,网络IP地址冲突等等。流程类型属于手工工单服务。

                                            +

                                            具体流程如图:

                                            +

                                            流程

                                            +

                                            标准事件流程主要环节包括:一线处理支持、二线处理支持、关闭服务。

                                            +

                                            一线和二线的任务处理环节可以指定不同团队。一线处理支持收到事件之后,可以进行的操作如下:

                                            +
                                              +
                                            • 直接处理,问题解决完成之后,填写问题或故障的原因或解决办法的说明

                                              +
                                            • +
                                            • 转派给其它服务团队

                                              +
                                            • +
                                            • 升级:升级到二线进行处理,并且填写升级说明

                                              +
                                            • +
                                            +

                                            二线支持处理收到事件之后,可以进行的操作如下:

                                            +
                                              +
                                            • 直接处理,问题解决完成之后,可以填写问题的原因和解决方法的说明

                                              +
                                            • +
                                            • 转派给其它团队

                                              +
                                            • +
                                            • 邮件通知用户问题已经解决,当发起手工工单服务申请的用户收到问题解决的邮件之后,如果用户满意此次手工工单服务选择进行服务关闭则工单状态改变为「已处理」;如果用户选择将工单重新处理,则返回给上一级的处理人。(在邮件通知用户的上一步中谁处理的就返回给谁,二线处理的返回给二线,一线的返回给一线),工单状态改变为「处理中」

                                              +
                                            • +
                                            +

                                            3. 云资源蓝图服务流程

                                            +

                                            内置的标准云服务部署流程 :定义云资源自动化部署的流程,属于系统内置的云资源蓝图服务流程。 +配置云资源蓝图服务流程,为满足不同服务项的服务流程要求,平台内置多种服务流程和自定义添加服务流程。系统管理员和租户管理员可以进入「配置管理」-「服务流程配置」页面,进行添加、查看、流程设计、启用、禁用、编辑和删除流程模板的操作,下文为您介绍具体操作步骤。

                                            +
                                            +

                                            「Note」内置的服务流程不支持编辑、流程设计、启用、禁用、删除操作,具体的内置流程详细信息请参考:流程应用场景

                                            +
                                            +
                                              +
                                            1. 在左侧导航栏点击「服务建模」-「流程配置」,点击「添加」按钮

                                              +
                                            2. +
                                            3. 进入新增流程页面,输入自定义流程的基本信息:流程名称、描述、类别(云资源蓝图服务、手工工单服务和审批流程三种类型),保存名称、类别等信息之后可使用流程设计器设计和定义您需要启用的流程。点击保存按钮,自定义服务流程创建成功。

                                              +
                                            4. +
                                            +

                                            为您介绍创建基础流程图的方法:左边圆圈代表开始的节点,右边圆圈代表结束节点,工单任务处理流程之后可以自定义任务一、自定义任务二、或其余的自定义任务。如图所示:

                                            +

                                            流程

                                            +

                                            4. 标准任务执行流程

                                            +

                                            内置的标准任务执行流程:定义任务自动化执行的流程,具体的任务类型包括:蓝图部署任务、云资源任务、Jenkins任务、脚本任务、等待任务等等。通过服务配置,配置服务具体的类型,以及绑定标准任务执行流程,配置完成后发布到服务目录,通过申请服务卡片来直接执行一个任务。

                                            +

                                            标准任务执行流程

                                            +

                                            5. 编辑、删除服务流程

                                            +

                                            在左侧导航栏点击「服务建模」-「流程配置」选中一个流程,点击「编辑」-「流程设计」直接进入服务流程设计器的UI,显示process的流程,以可视化的方式更改设计流程图。

                                            +
                                            +

                                            「Note」选中的流程必须是自定义添加的流程,系统内置的流程不支持流程设计

                                            +
                                            +

                                            在左侧导航栏点击「服务建模」-「服务流程管理」,选择一个服务流程,点击「删除」按钮,弹出删除提示框点击「是」,提示删除服务流程成功。

                                            +
                                            +

                                            「Note」当流程定义正在某一个服务配置中使用时,删除服务流程失败

                                            +
                                            +

                                            6. 启用、禁用服务流程

                                            +

                                            在左侧导航栏点击「服务建模」-「服务流程管理」,选择一个服务流程,点击「启用」按钮,即可启用该服务流程。

                                            +

                                            在左侧导航栏点击「服务建模」-「服务流程管理」,选择一个服务流程,点击「禁用」按钮,即可禁止使用该服务流程。

                                            +
                                            +

                                            「Note」系统默认的流程主要有两种:标准云服务部署和标准手工工单。这两种内置流程默认启用,不可以禁用、修改或者删除。

                                            +
                                            + + +
                                            + +
                                            +
                                            +
                                            + +

                                            results matching ""

                                            +
                                              + +
                                              +
                                              + +

                                              No results matching ""

                                              + +
                                              +
                                              +
                                              + +
                                              +
                                              + +
                                              + + + + + + + + + + + + + + +
                                              + + +
                                              + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git "a/AdminDoc/05\346\234\215\345\212\241\345\273\272\346\250\241/\346\265\201\347\250\213\351\205\215\347\275\256.md" "b/AdminDoc/05\346\234\215\345\212\241\345\273\272\346\250\241/\346\265\201\347\250\213\351\205\215\347\275\256.md" new file mode 100644 index 0000000..66867dc --- /dev/null +++ "b/AdminDoc/05\346\234\215\345\212\241\345\273\272\346\250\241/\346\265\201\347\250\213\351\205\215\347\275\256.md" @@ -0,0 +1,195 @@ + + **流程应用场景** + +在云资源的自助化申请、审批、自动化部署、运维操作和手工工单处理过程中,流程定义了这些任务处理过程或服务配置过程的方法和策略。系统默认提供标准流程,同时支持管理员通过流程设计器定义灵活的各项服务所需的流程,对云主机的申请、运维操作、回收进行控制,对手工工单服务的处理、关闭进行管控,主要流程包括:审批、手工工单服务和云资源蓝图服务流程等等。 + +# 审批流程 + +支持租户管理员通过流程设计器自定义审批流程模板,自定义的具体配置包括审批的层级结构,审批员的指定,审批规则,以及可以执行的操作。 + +主要功能点 + +- 支持定义任意多级审批。 + +- 支持在流程设计器中图形化的设计审批的全过程。 + +- 支持定义按用户或角色进行审批。 + +- 支持定义审批时是否可以更改申请的配置。 + +- 支持在业务组和服务目录层面定义需要审批和通知的环节。 + +- 支持审批员批量操作审批 + +- 支持设置每一级审批员可以修改的字段 + +SmartCMP配置审批流程有两种方法: + +1. 一是业务组管理员或租户管理员在业务组配置中添加审批流程A + +2. 二是业务组管理员或租户管理员在服务配置中添加审批流程B + +3. 当同时使用两种配置方法,审批流程发生冲突,服务配置中审批流程B优先于业务组配置中的审批流程A + +在业务组中添加审批流程 + +可为业务组添加审批流程,配置成功后,业务组成员申请服务部署时,将需要通过审批模板中的流程进行控制。 + +1. 「组织架构」-「业务组」,点击业务组名称进入业务组详情页面 + +2. 在「审批流程」标签页,选择 审批模板,点击「保存」 + +3. 保存后,业务组成员申请服务时会进入审批流程 + +在服务配置中添加审批流程 + +在「服务目录」申请服务成功后,如果服务提前配置了审批流程,则服务将进入审批队列,获得审批模板中相关成员的审批意见。审批通过才能执行部署操作。 + +示例:选择一个服务如"vSphere单节点服务",在服务配置中为该服务添加审批流程 +「服务建模」-「服务配置」,选择服务配置列表中的 "vSphere单节点服务" + + 点击服务名称,进入编辑服务页面,在「审批配置」页面中,选择审批流程(服务配置过程,审批流程的内容只能查看和选择任意一个流程,不能编辑和删除。)点击「保存」。保存后,申请该服务需要按照该模板的审批流程通过后才能部署。 + + 服务申请者点击左侧导航栏「服务目录」,选择"vSphere单节点服务",点击进入服务申请页面 + + 填写申请单:包括业务组(卡片共享给全部业务组时需要填写)、服务部署名称(若业务组未设置服务部署命名规则时需填写),部署数量,项目,所有者,部署原因、虚拟机模板等,填写完成后点击「申请」 + + 查看申请状态:进入「服务请求」-「待审批」,申请状态为「待审批」状态 + + 审批:审批模板中指定的审批人登入系统后进入「服务请求」-「待审批」,选择待审批的项目「Note」可选中多个待处理的审批,批量进行操作。 + + 输入审批意见,点击「批准」,弹出确认提示框,点击「是」 + + 查看已审批通过的项目:进入「服务请求」-「已审批」,项目的状态是「审批通过」 + + 申请者登入系统后进入「我的申请」里查看申请的蓝图部署状态变更为「审批通过」 + + 「服务部署」里,项目已经开始部署。部署成功后,在「服务部署」中,选择该服务,可对服务进行被允许的运维操作。 + +## 自定义并行审批流程 {#自定义并行审批流程} + +在左侧导航栏点击「服务建模」-「流程配置」,点击添加名称(并行审批流程)、描述、类别(审批流程)等信息之后,使用流程设计器设计和定义您需要启用的审批流程。 +选中并行审批流程,进入「流程设计器」以图形化的方式自定义具体策略: +为您介绍流程设计器的使用方法:左边圆圈代表开始的节点,右边圆圈代表结束节点,并行审批流程设定两个平行审批环节(审批A环节、审批B环节),某申请通过A环节并且通过B环节则审批通过申请成功,两个环节任意一个环节不通过则申请失败。如图所示: + +![流程](../../picture/Admin/flowable01.png) + + + +配置审批人 + ++ 审批人可以选择角色或用户。例如租户管理员、业务组管理员等,也可以指定某个用户作为审批人。 + 审批流程中内置角色使用:如果希望审批能够从申请者所在的最底层组织架构开始审批,然后再是资源所在的业务组,为满足这样的审批流程,我们需要在审批流程中添加额外的审批角色。管理员编辑审批流程时,审批人选择「角色」,列出内置审批用角色分别是: + + 「一级业务组管理员」:定义为用户所在的最底层业务组的管理员 + + 「二级业务组管理员」:定义为用户所在的上一层业务组的管理员 + + 例如:审批流程中添加两级审批流程,第一级角色选择"一级业务组管理员",第二级角色选择"二级业务组管理员"。审批时可以从申请者资源所在业务组的最底层组织架构开始审批。 + +2. 审批人选择动态用户,指定“动态用户”${FORM.approver},为服务自定义表单,在表单配置处绑定approver字段,实现您可以指定任意一个用户作为审批人的需求。 + +3. 审批人选择基于访问权限,则当这个流程用于部署或云资源操作审批时,只有对该资源有读取权限的用户才能收到审批请求。 + + +审批更改(允许或不允许审批员进行修改)高级配置(可配置审批员可以修改的具体字段,例如CPU、内存等) + +审批规则分为两种:第一种是固定值即满足设定数目的审批者则可通过该层级审批,如若有一人拒绝通过则审批失败。第二种为百分比即满足设定的百分比的成员通过此项审批则为通过,若有一人拒绝则审批失败。 + + +对于具体的操作分为审批操作和执行操作: + +审批操作是赋予该层级审批人审批的权限,即可以批准、拒绝或退回该申请。执行操作则没有审批权限,不能拒绝或退回,只是作为该层审批的审阅者查看申请内容并确认审批完成。此外,还可以对该层审批者定义是否具备修改申请的权限,如需,请勾选允许修改申请。 + + +## 内置的审批流程 {#内置的审批流程} + +系统内置租户管理员审批流程、业务组管理员审批流程、审批模板流程,方便用户直接选择所需要的审批流程。 + +内置的审批流程不可修改和删除,只支持查看和使用,用户自定义添加的审批流程支持修改和删除 + +- 「租户管理员审批」:定义为用户所在的租户系统内的管理员 + +- 「业务组管理员审批」:定义为用户所在的业务组的管理员 + +- 「审批模板流程」:内置的云服务部署审批流程 + + +# 手工工单服务流程{#内置的手工工单服务流程} + +手工工单服务流程定义工单任务具体的处理步骤、服务团队、服务人员和流转方式。 + +内置的手工工单服务流程 :平台内置的手工工单服务流程包括标准手工工单,标准事件管理流程、自动化服务流程,同时支持租户管理员自定义服务流程。 + +内置的手工工单流程不可修改和删除,只支持查看和使用,用户自定义添加的手工工单服务流程支持修改和删除 + +标准事件流程 Incident +Report,用来解决出现的IT资源相关的问题,例如服务器down了,网络IP地址冲突等等。流程类型属于手工工单服务。 + +具体流程如图: + +![流程](../../picture/Admin/flowable02.png) + +标准事件流程主要环节包括:一线处理支持、二线处理支持、关闭服务。 + +一线和二线的任务处理环节可以指定不同团队。一线处理支持收到事件之后,可以进行的操作如下: + +- 直接处理,问题解决完成之后,填写问题或故障的原因或解决办法的说明 + +- 转派给其它服务团队 + +- 升级:升级到二线进行处理,并且填写升级说明 + +二线支持处理收到事件之后,可以进行的操作如下: + +- 直接处理,问题解决完成之后,可以填写问题的原因和解决方法的说明 + +- 转派给其它团队 + +2. 邮件通知用户问题已经解决,当发起手工工单服务申请的用户收到问题解决的邮件之后,如果用户满意此次手工工单服务选择进行服务关闭则工单状态改变为「已处理」;如果用户选择将工单重新处理,则返回给上一级的处理人。(在邮件通知用户的上一步中谁处理的就返回给谁,二线处理的返回给二线,一线的返回给一线),工单状态改变为「处理中」 + +# 云资源蓝图服务流程{#内置的标准云服务部署流程} + +内置的标准云服务部署流程 :定义云资源自动化部署的流程,属于系统内置的云资源蓝图服务流程。 +配置云资源蓝图服务流程,为满足不同服务项的服务流程要求,平台内置多种服务流程和自定义添加服务流程。系统管理员和租户管理员可以进入「配置管理」-「服务流程配置」页面,进行添加、查看、流程设计、启用、禁用、编辑和删除流程模板的操作,下文为您介绍具体操作步骤。 + +>「Note」内置的服务流程不支持编辑、流程设计、启用、禁用、删除操作,具体的内置流程详细信息请参考:[流程应用场景](https://cloudchef.github.io/doc/AdminDoc/05服务建模/流程配置.html) + + +1. 在左侧导航栏点击「服务建模」-「流程配置」,点击「添加」按钮 + +2. 进入新增流程页面,输入自定义流程的基本信息:流程名称、描述、类别(云资源蓝图服务、手工工单服务和审批流程三种类型),保存名称、类别等信息之后可使用流程设计器设计和定义您需要启用的流程。点击保存按钮,自定义服务流程创建成功。 + +为您介绍创建基础流程图的方法:左边圆圈代表开始的节点,右边圆圈代表结束节点,工单任务处理流程之后可以自定义任务一、自定义任务二、或其余的自定义任务。如图所示: + + +![流程](../../picture/Admin/flowable03.png) + + +# 标准任务执行流程 +内置的标准任务执行流程:定义任务自动化执行的流程,具体的任务类型包括:蓝图部署任务、云资源任务、Jenkins任务、脚本任务、等待任务等等。通过服务配置,配置服务具体的类型,以及绑定标准任务执行流程,配置完成后发布到服务目录,通过申请服务卡片来直接执行一个任务。 + + +![标准任务执行流程](../../picture/Admin/flowable04.png) + + + + + +# 编辑、删除服务流程 + +在左侧导航栏点击「服务建模」-「流程配置」选中一个流程,点击「编辑」-「流程设计」直接进入服务流程设计器的UI,显示process的流程,以可视化的方式更改设计流程图。 + +>「Note」选中的流程必须是自定义添加的流程,系统内置的流程不支持流程设计 + +在左侧导航栏点击「服务建模」-「服务流程管理」,选择一个服务流程,点击「删除」按钮,弹出删除提示框点击「是」,提示删除服务流程成功。 + +>「Note」当流程定义正在某一个服务配置中使用时,删除服务流程失败 + +# 启用、禁用服务流程 + +在左侧导航栏点击「服务建模」-「服务流程管理」,选择一个服务流程,点击「启用」按钮,即可启用该服务流程。 + +在左侧导航栏点击「服务建模」-「服务流程管理」,选择一个服务流程,点击「禁用」按钮,即可禁止使用该服务流程。 + +>「Note」系统默认的流程主要有两种:标准云服务部署和标准手工工单。这两种内置流程默认启用,不可以禁用、修改或者删除。 diff --git "a/AdminDoc/05\346\234\215\345\212\241\345\273\272\346\250\241/\347\273\204\344\273\266\345\272\223.html" "b/AdminDoc/05\346\234\215\345\212\241\345\273\272\346\250\241/\347\273\204\344\273\266\345\272\223.html" new file mode 100644 index 0000000..afcb6a7 --- /dev/null +++ "b/AdminDoc/05\346\234\215\345\212\241\345\273\272\346\250\241/\347\273\204\344\273\266\345\272\223.html" @@ -0,0 +1,1265 @@ + + + + + + + 组件库 · 发行说明 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
                                              +
                                              + + + + + + + + +
                                              + +
                                              + +
                                              + + + + + + + + +
                                              +
                                              + +
                                              +
                                              + +
                                              + +

                                              组件库 +SmartCMP云管平台的云组件拥有“将任意资源”提供服务化的核心能力,不仅内置丰富的组件资源和常用的操作,同时还拥有高度可扩展的能力,根据用户需求灵活自定义添加组件资源和配置运维操作。 +组件的定义采用面向对象的设计方法,使用统一的数据结构进行建模,并将配置属性标准化。软件架构师也可以根据需要创建可重用的软件组件,并使用操作脚本准确指定在部署操作过程,支持随时重新编写这些操作脚本并实时发布,同步更新已安装的软件组件。 +通过定义属性并将属性作为参数传递给操作脚本,以便在不同的环境中部署软件组件,而无需修改脚本。支持使用Ansible, Terraform, Shell, Python, Json, Ruby等语言来自定义软件组件,并且自定义软件组件的生命周期操作(包含创建,配置,启动,停止,删除、备份、巡检等等),系统内置创建,配置和启动操作,在移除的时候调用停止和删除操作,并且支持灵活自定义操作,实现软件和应用的全生命周期管理。

                                              +

                                              SmartCMP中的组件由属性和接口构成,软件组件由脚本、属性、元数据、生命周期管理四项共同组成,灵活的软件组件,可以关联主流制品库。具体概念如下:

                                              +
                                                +
                                              • 脚本:生命周期的每个阶段都通过脚本来进行控制,得益于强大的底层类库,SmartCMP支持包括Ansible, Terraform, Shell, Powershell, Json, Yaml, Python, Text等方式,可以快速将应用的部署整合在云管平台内;

                                                +
                                              • +
                                              • 属性:不同应用系统对资源的需求和容量的控制都会有自定义要求,属性项可以按照不同系统的部署要求传递自定义参数。软件架构师可以通过设置自定义属性,将应用组件需要您填写的配置参数暴露在申请界面上,SmartCMP云管理平台会自动化调用相关参数执行应用的安装配置;

                                                +
                                              • +
                                              • 操作:SmartCMP云管理平台可以对应用系统的创建、配置、启动、停止、删除等过程进行完整的生命周期管理。通过脚本对应,完成从安装部署到到期卸载的所有软件配置工作。

                                                +
                                              • +
                                              • 软件组件与主流制品库关联,支持对接Jfrog Artifactory, Nexus制品库,实现软件版本的更新。

                                                +
                                              • +
                                              • 组件也是构成蓝图的基本单元,SmartCMP自定义的软件组件,可以可视化的放置到SmartCMP的蓝图 软件架构师可以通过组件管理界面管理组件。在左边导航选择「服务建模」-「软件组件」,右侧浏览区域出现所有组件列表。通过拖拽的方式组合组件,形成蓝图部署服务的编排。

                                                +
                                              • +
                                              +

                                              1. 丰富的组件库

                                              +

                                              开箱即用的组件资源。SmartCMP云管平台内置大量常用的组件资源,包括IaaS(不同云平台的云主机、网络、存储等等)、PaaS(服务器、数据库、RDS等等)、容器(Kubernetes、Docker)、软件(MySQL、Oracle、Nginx等等)、代理(监控代理、自动化代理),不同类型资源在统一的界面进行创建和管理,采用树形结构的分组目录,支持自定义组件分组,支持二次编辑、快速复制、导入、导出组件。

                                              +

                                              树形展示,支持组件的分组目录,支持树形结构,可以在创建组件和组件列表搜索树形展示。在组件列表页的树形图可以增删改,已存在组件目录不能删除。 +树形结构是一个逻辑的文件夹的概念,与组件的资源类型没有绑定的关系。 +树形结构允许用户调整,比如有的用户一级是云平台,二级是该云平台下的计算、存储、网络组件;而有的用户一级是计算、网络、存储等,二级是各个云平台。具体内容:

                                              +
                                                +
                                              • Iaas 用于描述所有的Iaas的组件, 每个组件有自己的云平台类型,Iaas下的二级节点主要包括: 计算, 网络, 存储, 对象存储, 负载均衡, 安全组, 文件系统等 +默认增加如下子类 +云主机 +存储 +OSS: 对象存储 +Disk: 块存储 +NAS +Network: 网络 +Subnet:子网 +Router:路由 +SecurityGroup:安全组 +防火墙 +负载均衡 (F5 的Pool 和SNATPool放这) +负载均衡监听器 +浮动IP +域名 +网关
                                              • +
                                              +
                                                +
                                              • Paas 用于描述所有的Pass的组件, 每个组件有自己的云平台类型,Paas下的二级节点主要包括云平台提供的服务能力, +默认增加如下子目录 +Web +APP +MQ +Cache:缓存 +RDS +NoSQL +BigData:大数据服务

                                                +
                                              • +
                                              • 容器 Container,用于描述所有的容器平台的组件 +Docker +Kubernetes

                                                +
                                              • +
                                              • 软件组件 用于描述所有的Software的组件, 每个组件有自己的云平台类型, 软件分为两种类型, 一种是二进制安装的软件, 运行在机器里面, 一种是容器镜像软软件, 运行在容器里面 容器镜像组件可以通过类型进行区分, +增加一个属性resource.software,来标记这个软件运行在机器里面还是容器里面。 +默认增加如下子目录 +Web +APP +MQ +Cache:缓存 +RDS +NoSQL +BigData:大数据服务

                                                +
                                              • +
                                              • 代理,表示所有的代理组件, 包括自动化组件, 监控组件等, 用于后续的代理管理 +包括监控代理和自动化代理

                                                +
                                                +

                                                「Note」 监控组件:若需要使用云平台监控查看云服务器指标数据并且产生告警,需在云服务器上正确安装监控组件,云服务器指标数据采集依赖于监控组件。

                                                +
                                                +
                                              • +
                                              +

                                              编辑组件,选中组件列表中某组件可以进入编辑组件视图。编辑组件和创建组件类似,为了保证已使用该组件创建的蓝图不会因为组件的更新而无法使用,在编辑时,组件每个子视图中都有一些项目不允许改动。编辑组件的过程中随时点击「返回」按钮放弃编辑组件。

                                              +

                                              导入组件,您可以根据以下步骤进行导入组件操作:

                                              +
                                                +
                                              1. 在左边导航选择「服务建模」-「软件组件」

                                                +
                                              2. +
                                              3. 点击「导入」按钮

                                                +
                                              4. +
                                              5. 点击「浏览」,选择本地组件(ZIP格式),点击「提交」

                                                +
                                              6. +
                                              7. 组件导入成功

                                                +
                                              8. +
                                              +

                                              导出组件,您可以根据以下步骤进行导出组件操作:

                                              +
                                                +
                                              1. 在左边导航选择「服务建模」-「软件组件」

                                                +
                                              2. +
                                              3. 选择组件列表中的某一组件,菜单栏上的「导出」按钮将变得可用,点击「导出」

                                                +
                                              4. +
                                              5. 组件导出成功

                                                +
                                              6. +
                                              +

                                              复制组件,您可以根据以下步骤进行复制组件操作:

                                              +
                                                +
                                              1. 在左边导航选择「服务建模」-「软件组件」

                                                +
                                              2. +
                                              3. 选择组件列表中的某一组件,菜单栏上的「复制」按钮将变得可用,点击「复制」

                                                +
                                              4. +
                                              5. 进入复制组件的编辑页面,可更改基本信息、属性、脚本列表以及节点接口信息。组件名字需要修改,组件不允许重名

                                                +
                                              6. +
                                              +

                                              删除组件,您可以根据下面的步骤来删除组件:

                                              +
                                                +
                                              1. 在组件列表视图中,选中待删除组件

                                                +
                                              2. +
                                              3. 在列表工具栏中点击「删除」按钮后,在确认对话框中确认后,组件会被删除

                                                +
                                              4. +
                                              +

                                              2. 创建组件

                                              +

                                              SmartCMP云管平台支持用户根据需求创建可重用的组件,将任意资源组件化以及将配置组件的过程标准化,包括定义资源类型,定义版本,定义属性,定义组件的操作等等,并且所有的配置界面都开放给用户自定义。 +例如:DBA在创建数据库集群时,需要部署Oracle数据库,DBA可根据需求在组件库添加Oracle组件,配置组件,包括配置组件基本信息、属性、脚本、操作(指定数据库的创建、启动、停止、重启、删除等等操作),具体描述如下,软件架构师可以根据下面的步骤来创建组件:

                                              +
                                                +
                                              1. 在组件列表的工具栏点击「添加」按钮进入创建组件视图

                                                +
                                              2. +
                                              3. 创建组件视图包含「概况」「使用说明」「制品」「属性」「脚本列表」「操作」「依赖关系」「历史版本」

                                                +
                                              4. +
                                              +

                                              2.1. 组件概况

                                              +

                                              在「概况」视图,可以提供组件名称、描述、组件版本、组件类型(定义组件的资源类型,决定组件的属性和操作,例如,添加Oracle组件时选择组件类型为Software,则新建的Oracle组件将继承父类软件组件的属性和操作,也可以通过自定义属性,使其获得与父类不同的功能。)云平台信息和上传图标,还可添加该组件的说明信息。

                                              +
                                                +
                                              • 勾选制品之后,可以通过「制品」标签页选择二进制软件制品仓库,进行软件版本的配置。具体步骤,参考关联主流制品库
                                              • +
                                              • 勾选实例化,勾选后该组件可通过“蓝图设计”进行编排。软件架构师可以通过组件管理界面管理组件。在左边导航选择「服务建模」-「软件组件」,右侧浏览区域出现所有组件列表。添加的软件组件,勾选实例化之后会出现在「组件列表」-「其他」标签页里以供选择组合组件,形成蓝图部署服务的编排。
                                              • +
                                              +

                                              2.2. 组件属性

                                              +

                                              属性:用来满足不同系统对资源部署需求和参数控制的特定需求,由主键、类型、默认值、备选项和描述组成。可在备选项中添加可选值,使得您在申请服务的时候,只能从默认值和备选项中定义的值中进行选择。可以创建要求使用字符、浮点数、密码、布尔或整数值的软件属性,支持设置校验规则,输入正则表达式则输入的属性参数必须接受表达式的校验。( 例如:整数类型 : 对零以及正整数或负整数使用整数属性类型。布尔类型: 使用布尔属性类型在“值”下拉菜单中提供 True 和 False 这两个选项。) +在「属性」视图,您可以添加组件的属性,添加完成后可将其作为参数传递给操作脚本。 +例如:

                                              +
                                                +
                                              • 当创建组件Oracle时,不同应用系统对Oracle的部署需求和参数控制都会有特定的需求和自定义要求。“属性”可以按照不同系统的部署要求,通过设置自定义属性,将应用组件需要填写的配置参数暴露在界面配置上,传递自定义参数。
                                              • +
                                              • 当自动化部署Oracle时,SmartCMP云管理平台会自动化调用相关参数执行应用的安装配置,达到不同数据集群对Oracle部署的不同要求。需要注意的是自定义添加的属性键值和父组件中的属性键值不能相同,否则将覆盖父组件中的属性定义。
                                              • +
                                              +

                                              2.3. 脚本列表

                                              +

                                              脚本:组件生命周期的每个阶段都通过脚本来进行控制,得益于强大的底层类库,支持包括Ansible, Terraform, Shell, Powershell, Json, Yaml, Python, Text等方式来自定义脚本。 +在「脚本列表」视图,您可以通过创建新文件添加脚本文件。这些脚本文件应该和组件接口中的某个操作关联,或者被其它的脚本文件引用。同时,您可以添加文本文件,这些文本文件一般用来提供组件的配置信息。多次点击创建新文件可以添加多个文件,输入文件名、文件类型后点击操作-编辑内容,可以在右面编写文件内容。

                                              +

                                              2.4. 操作

                                              +

                                              操作:可以对应用系统的创建、配置、启动、停止、删除等过程进行完整的生命周期管理。通过脚本对应,完成从安装部署到到期卸载的所有软件配置工作。 +在「操作」视图,您可以将「脚本列表」视图中添加的脚本文件关联到组件的对应操作上,每个操作动作下实现-请选择下拉列表中选择这个操作对应的脚本文件。内置的操作有配置、创建、删除、启动、停止等等。 +以刷新操作为例,系统提前配置完成,组件刷新操作所使用的实现方式、脚本、任务和刷新必须的参数。内置的操作可应用于平台上的任意资源。因此,在创建组件Oracle时,将自动继承内置的“启动、停止、重启、删除、刷新”操作。封装指隐藏复杂操作的实现细节,仅对外提供公共的访问方式。平台将复杂的操作内置,开箱即用,降低差异性和理解难度。

                                              +

                                              例如:“调整虚机配置”操作(调整虚拟机的计算规格和云平台规格),同一个“调整虚机配置”操作当云平台类型不同时,SmartCMP云管平台隐藏资源操作的流转细节,只暴露公共的访问接口。“调整虚机配置”操作应用在Hyper -V平台的虚拟机和OpenStack平台的虚拟机上,具体的技术实现方式不同,但是用户配置界面,显示相同内容,配置简单,易用性强。

                                              +

                                              同时,您也可以在这里添加更多的组件操作,并且进行相应的脚本文件关联。添加组件操作点击操作右侧的添加按钮。所有必填项都添加好了之后,点击保存按钮生成新的组件,在组件列表上可以看到新添加的组件。添加组件的过程中随时点击「返回」按钮放弃添加组件。

                                              + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
                                              生命周期操作描述示例
                                              创建创建软件创建 Tomcat 服务,为“创建”生命周期操作编写的脚本将在首次安装软件时运行。
                                              配置配置软件配置Tomcat,设置 JAVA_OPTS 和 CATALINA_OPTS。配置脚本会在安装操作完成后运行。
                                              启动启动软件使用 Tomcat 服务器中的启动命令启动 Tomcat 服务。启动脚本会在配置操作完成后运行。
                                              停止停止软件使用 Tomcat 服务器中的停止命令停止 Tomcat 服务。停止脚本会在启动操作完成后运行。
                                              删除删除软件在应用程序中执行特定操作,然后再销毁部署。删除脚本会在销毁软件组件后运行。
                                              +

                                              2.4.1. 配置操作

                                              +

                                              内置大量常用操作的同时,支持自定义组件的操作,配置界面开放给用户,包括自定义操作的实现方式(支持脚本/任务);脚本(脚本来自于自定义的脚本文件); +过滤条件,组件操作支持EL表达式的过滤条件,当自定义填写了表达式,只有满足过滤条件时,操作才能在操作列表显示,显示生效后可供选择来执行。否则,操作将不在操作列表中显示。

                                              +
                                              +

                                              表达式的格式,例如:${param} , ${param > 1}, ${param == 'abc'}, ${param != null},${param == null},当填写表达式 ${componentType !='resource.iaas.instance.vSphere'} 表示组件类型需要是vSphere云平台的虚拟机,自定义的操作对“满足以上条件”的组件资源才能生效,即会显示在满足条件的 “vSphere云平台虚拟机的操作列表” 中,并支持相应的运维操作。

                                              +
                                              +

                                              操作分组(操作进行分组,例如:常用操作下的启动、停止、挂起、重启等等;更改配置操作下的设置标签、调整虚机配置、更新云主机名称等等);

                                              +

                                              以及执行的具体参数配置(超时时间和最大重试次数)。 +例如:为IaaS云主机资源(vSphere云平台的linux虚拟机)添加备份操作。如下图,自定义操作基本信息,在脚本列表自定义“备份脚本backup.sh”,在配置操作时,选择脚本backup.sh,将脚本与操作绑定,并选择操作方式为“Shell”。

                                              +
                                              +

                                              「Note」vSphere云平台的linux虚拟机,添加的运维操作,支持在「我的部署」 - 「云主机」 页面执行。详情请参考:云主机运维操作添加的运维操作支持权限控制,管理员在业务组的「云资源操作许可」标签页配置,详情请参考:云资源操作许可

                                              +
                                              +

                                              操作-脚本列表 +操作-基本信息

                                              +

                                              软件组件的表单配置:在软件组件中能够给"创建"操作和其他自定义操作配置参数和表单,其中,表单是根据属性动态生成的。配置完成表单的内容(支持JSON格式), 也能够直接显示表单的预览,以满足多样的需求。

                                              +

                                              表单配置-参数 +表单配置-表单

                                              +

                                              支持二次更新操作 +系统已经提供该操作的实现,如果需要覆盖,可以启用该选项 "覆盖系统操作" 。 +在「操作」视图,点击任意操作,进入「操作」基本信息标签页,当选择的主键名匹配到已有的系统内置操作会出现覆盖操作系统的选项和提示,勾选后 "覆盖系统操作"才会出现后面的实现配置、执行配置、表单配置等信息。 +不勾选则为内置操作。

                                              +

                                              2.5. 依赖关系

                                              +

                                              某些组件资源不能单独部署,例如,软件组件需要协同其他组件资源进行部署,支持创建和管理当前组件和其他组件的依赖关系。依赖关系用于定义多个组件在同时进行编排部署的场景中不同先后顺序,并且可以在相互有依赖关系的组件之间传递运行时参数。

                                              +

                                              在「依赖关系」视图:选择类型(包含于/依赖于),然后选择目标组件,例如:在vSphere云平台中,MySQL组件与Serve组件是包含关系,Serve组件与Network组件是依赖关系。 +依赖关系

                                              +

                                              2.6. 版本管理

                                              +

                                              当您更新组件时,每次更新的版本将会被记录下来,支持回退到历史版本,具体操作步骤如下:

                                              +
                                                +
                                              1. 组件列表的工具栏点击「任意组件」按钮进入软件组件视图

                                                +
                                              2. +
                                              3. 在「历史版本」视图,您可以看到所有的历史版本,当您做出修改时,平台会默认记录您的历史版本信息包括:版本号、版本描述、创建人和创建时间

                                                +
                                              4. +
                                              5. 您可以勾选相应的版本v1,点击「恢复版本」一键从版本v2回退到历史版本v1,点击「保存并同步」则同步组件信息。

                                                +
                                              6. +
                                              7. 同时也支持一键删除任意历史版本,勾选要删除的版本,点击「删除」确认删除即删除成功。

                                                +
                                              8. +
                                              +

                                              2.7. 关联主流制品库

                                              +

                                              支持软件组件与主流制品库关联,支持对接Jfrog Artifactory, Nexus制品库匹配包管理平台,实现软件版本的更新 +包管理工具的版本支持latest标记, 表示使用最新版本。

                                              +
                                                +
                                              1. 在「制品」视图,您可以选择 入口、仓库(Jfrog Artifactory、Nexus)、组、名称、版本(默认选择latest代表最新版本)
                                              2. +
                                              3. 点击保存按钮,即可将组件与包管理平台进行关联。
                                              4. +
                                              + + +
                                              + +
                                              +
                                              +
                                              + +

                                              results matching ""

                                              +
                                                + +
                                                +
                                                + +

                                                No results matching ""

                                                + +
                                                +
                                                +
                                                + +
                                                +
                                                + +
                                                + + + + + + + + + + + + + + +
                                                + + +
                                                + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git "a/AdminDoc/05\346\234\215\345\212\241\345\273\272\346\250\241/\347\273\204\344\273\266\345\272\223.md" "b/AdminDoc/05\346\234\215\345\212\241\345\273\272\346\250\241/\347\273\204\344\273\266\345\272\223.md" new file mode 100644 index 0000000..18212df --- /dev/null +++ "b/AdminDoc/05\346\234\215\345\212\241\345\273\272\346\250\241/\347\273\204\344\273\266\345\272\223.md" @@ -0,0 +1,221 @@ +**组件库** +SmartCMP云管平台的云组件拥有“将任意资源”提供服务化的核心能力,不仅内置丰富的组件资源和常用的操作,同时还拥有高度可扩展的能力,根据用户需求灵活自定义添加组件资源和配置运维操作。 +组件的定义采用面向对象的设计方法,使用统一的数据结构进行建模,并将配置属性标准化。软件架构师也可以根据需要创建可重用的软件组件,并使用操作脚本准确指定在部署操作过程,支持随时重新编写这些操作脚本并实时发布,同步更新已安装的软件组件。 +通过定义属性并将属性作为参数传递给操作脚本,以便在不同的环境中部署软件组件,而无需修改脚本。支持使用Ansible, Terraform, Shell, Python, Json, Ruby等语言来自定义软件组件,并且自定义软件组件的生命周期操作(包含创建,配置,启动,停止,删除、备份、巡检等等),系统内置创建,配置和启动操作,在移除的时候调用停止和删除操作,并且支持灵活自定义操作,实现软件和应用的全生命周期管理。 + +SmartCMP中的组件由属性和接口构成,软件组件由脚本、属性、元数据、生命周期管理四项共同组成,灵活的软件组件,可以关联主流制品库。具体概念如下: + + - 脚本:生命周期的每个阶段都通过脚本来进行控制,得益于强大的底层类库,SmartCMP支持包括Ansible, Terraform, Shell, Powershell, Json, Yaml, Python, Text等方式,可以快速将应用的部署整合在云管平台内; + + - 属性:不同应用系统对资源的需求和容量的控制都会有自定义要求,属性项可以按照不同系统的部署要求传递自定义参数。软件架构师可以通过设置自定义属性,将应用组件需要您填写的配置参数暴露在申请界面上,SmartCMP云管理平台会自动化调用相关参数执行应用的安装配置; + + - 操作:SmartCMP云管理平台可以对应用系统的创建、配置、启动、停止、删除等过程进行完整的生命周期管理。通过脚本对应,完成从安装部署到到期卸载的所有软件配置工作。 + + - 软件组件与主流制品库关联,支持对接Jfrog Artifactory, Nexus制品库,实现软件版本的更新。 + + - 组件也是构成蓝图的基本单元,SmartCMP自定义的软件组件,可以可视化的放置到SmartCMP的蓝图 软件架构师可以通过组件管理界面管理组件。在左边导航选择「服务建模」-「软件组件」,右侧浏览区域出现所有组件列表。通过拖拽的方式组合组件,形成蓝图部署服务的编排。 + + + +# 丰富的组件库{#组件库} + +开箱即用的组件资源。SmartCMP云管平台内置大量常用的组件资源,包括IaaS(不同云平台的云主机、网络、存储等等)、PaaS(服务器、数据库、RDS等等)、容器(Kubernetes、Docker)、软件(MySQL、Oracle、Nginx等等)、代理(监控代理、自动化代理),不同类型资源在统一的界面进行创建和管理,采用树形结构的分组目录,支持自定义组件分组,支持二次编辑、快速复制、导入、导出组件。 + +树形展示,支持组件的分组目录,支持树形结构,可以在创建组件和组件列表搜索树形展示。在组件列表页的树形图可以增删改,已存在组件目录不能删除。 +树形结构是一个逻辑的文件夹的概念,与组件的资源类型没有绑定的关系。 +树形结构允许用户调整,比如有的用户一级是云平台,二级是该云平台下的计算、存储、网络组件;而有的用户一级是计算、网络、存储等,二级是各个云平台。具体内容: + ++ Iaas 用于描述所有的Iaas的组件, 每个组件有自己的云平台类型,Iaas下的二级节点主要包括: 计算, 网络, 存储, 对象存储, 负载均衡, 安全组, 文件系统等 +默认增加如下子类 +云主机 +存储 +OSS: 对象存储 +Disk: 块存储 +NAS +Network: 网络 +Subnet:子网 +Router:路由 +SecurityGroup:安全组 +防火墙 +负载均衡 (F5 的Pool 和SNATPool放这) +负载均衡监听器 +浮动IP +域名 +网关 + + ++ Paas 用于描述所有的Pass的组件, 每个组件有自己的云平台类型,Paas下的二级节点主要包括云平台提供的服务能力, +默认增加如下子目录 +Web +APP +MQ +Cache:缓存 +RDS +NoSQL +BigData:大数据服务 + ++ 容器 Container,用于描述所有的容器平台的组件 +Docker +Kubernetes + ++ 软件组件 用于描述所有的Software的组件, 每个组件有自己的云平台类型, 软件分为两种类型, 一种是二进制安装的软件, 运行在机器里面, 一种是容器镜像软软件, 运行在容器里面 容器镜像组件可以通过类型进行区分, + 增加一个属性resource.software,来标记这个软件运行在机器里面还是容器里面。 +默认增加如下子目录 +Web +APP +MQ +Cache:缓存 +RDS +NoSQL +BigData:大数据服务 + ++ 代理,表示所有的代理组件, 包括自动化组件, 监控组件等, 用于后续的代理管理 +包括监控代理和自动化代理 +>「Note」 监控组件:若需要使用云平台监控查看云服务器指标数据并且产生告警,需在云服务器上正确安装监控组件,云服务器指标数据采集依赖于监控组件。 + + +编辑组件,选中组件列表中某组件可以进入编辑组件视图。编辑组件和创建组件类似,为了保证已使用该组件创建的蓝图不会因为组件的更新而无法使用,在编辑时,组件每个子视图中都有一些项目不允许改动。编辑组件的过程中随时点击「返回」按钮放弃编辑组件。 + + + +导入组件,您可以根据以下步骤进行导入组件操作: + +1. 在左边导航选择「服务建模」-「软件组件」 + +2. 点击「导入」按钮 + +3. 点击「浏览」,选择本地组件(ZIP格式),点击「提交」 + +4. 组件导入成功 + +导出组件,您可以根据以下步骤进行导出组件操作: + +1. 在左边导航选择「服务建模」-「软件组件」 + +2. 选择组件列表中的某一组件,菜单栏上的「导出」按钮将变得可用,点击「导出」 + +3. 组件导出成功 + +复制组件,您可以根据以下步骤进行复制组件操作: + +1. 在左边导航选择「服务建模」-「软件组件」 + +2. 选择组件列表中的某一组件,菜单栏上的「复制」按钮将变得可用,点击「复制」 + +3. 进入复制组件的编辑页面,可更改基本信息、属性、脚本列表以及节点接口信息。组件名字需要修改,组件不允许重名 + +删除组件,您可以根据下面的步骤来删除组件: + +1. 在组件列表视图中,选中待删除组件 + +2. 在列表工具栏中点击「删除」按钮后,在确认对话框中确认后,组件会被删除 + + + + +# 创建组件{#创建组件} + +SmartCMP云管平台支持用户根据需求创建可重用的组件,将任意资源组件化以及将配置组件的过程标准化,包括定义资源类型,定义版本,定义属性,定义组件的操作等等,并且所有的配置界面都开放给用户自定义。 +例如:DBA在创建数据库集群时,需要部署Oracle数据库,DBA可根据需求在组件库添加Oracle组件,配置组件,包括配置组件基本信息、属性、脚本、操作(指定数据库的创建、启动、停止、重启、删除等等操作),具体描述如下,软件架构师可以根据下面的步骤来创建组件: + +1. 在组件列表的工具栏点击「添加」按钮进入创建组件视图 + +2. 创建组件视图包含「概况」「使用说明」「制品」「属性」「脚本列表」「操作」「依赖关系」「历史版本」 + +## 组件概况 +在「概况」视图,可以提供组件名称、描述、组件版本、组件类型(定义组件的资源类型,决定组件的属性和操作,例如,添加Oracle组件时选择组件类型为Software,则新建的Oracle组件将继承父类软件组件的属性和操作,也可以通过自定义属性,使其获得与父类不同的功能。)云平台信息和上传图标,还可添加该组件的说明信息。 ++ 勾选制品之后,可以通过「制品」标签页选择二进制软件制品仓库,进行软件版本的配置。具体步骤,参考关联主流制品库 ++ 勾选实例化,勾选后该组件可通过“蓝图设计”进行编排。软件架构师可以通过组件管理界面管理组件。在左边导航选择「服务建模」-「软件组件」,右侧浏览区域出现所有组件列表。添加的软件组件,勾选实例化之后会出现在「组件列表」-「其他」标签页里以供选择组合组件,形成蓝图部署服务的编排。 + + + +## 组件属性 +属性:用来满足不同系统对资源部署需求和参数控制的特定需求,由主键、类型、默认值、备选项和描述组成。可在备选项中添加可选值,使得您在申请服务的时候,只能从默认值和备选项中定义的值中进行选择。可以创建要求使用字符、浮点数、密码、布尔或整数值的软件属性,支持设置校验规则,输入正则表达式则输入的属性参数必须接受表达式的校验。( 例如:整数类型 : 对零以及正整数或负整数使用整数属性类型。布尔类型: 使用布尔属性类型在“值”下拉菜单中提供 True 和 False 这两个选项。) +在「属性」视图,您可以添加组件的属性,添加完成后可将其作为参数传递给操作脚本。 +例如: ++ 当创建组件Oracle时,不同应用系统对Oracle的部署需求和参数控制都会有特定的需求和自定义要求。“属性”可以按照不同系统的部署要求,通过设置自定义属性,将应用组件需要填写的配置参数暴露在界面配置上,传递自定义参数。 ++ 当自动化部署Oracle时,SmartCMP云管理平台会自动化调用相关参数执行应用的安装配置,达到不同数据集群对Oracle部署的不同要求。需要注意的是自定义添加的属性键值和父组件中的属性键值不能相同,否则将覆盖父组件中的属性定义。 + + + +## 脚本列表 +脚本:组件生命周期的每个阶段都通过脚本来进行控制,得益于强大的底层类库,支持包括Ansible, Terraform, Shell, Powershell, Json, Yaml, Python, Text等方式来自定义脚本。 +在「脚本列表」视图,您可以通过创建新文件添加脚本文件。这些脚本文件应该和组件接口中的某个操作关联,或者被其它的脚本文件引用。同时,您可以添加文本文件,这些文本文件一般用来提供组件的配置信息。多次点击创建新文件可以添加多个文件,输入文件名、文件类型后点击操作-编辑内容,可以在右面编写文件内容。 + +## 操作 +操作:可以对应用系统的创建、配置、启动、停止、删除等过程进行完整的生命周期管理。通过脚本对应,完成从安装部署到到期卸载的所有软件配置工作。 +在「操作」视图,您可以将「脚本列表」视图中添加的脚本文件关联到组件的对应操作上,每个操作动作下实现-请选择下拉列表中选择这个操作对应的脚本文件。内置的操作有配置、创建、删除、启动、停止等等。 +以刷新操作为例,系统提前配置完成,组件刷新操作所使用的实现方式、脚本、任务和刷新必须的参数。内置的操作可应用于平台上的任意资源。因此,在创建组件Oracle时,将自动继承内置的“启动、停止、重启、删除、刷新”操作。封装指隐藏复杂操作的实现细节,仅对外提供公共的访问方式。平台将复杂的操作内置,开箱即用,降低差异性和理解难度。 + +例如:“调整虚机配置”操作(调整虚拟机的计算规格和云平台规格),同一个“调整虚机配置”操作当云平台类型不同时,SmartCMP云管平台隐藏资源操作的流转细节,只暴露公共的访问接口。“调整虚机配置”操作应用在Hyper -V平台的虚拟机和OpenStack平台的虚拟机上,具体的技术实现方式不同,但是用户配置界面,显示相同内容,配置简单,易用性强。 + +同时,您也可以在这里添加更多的组件操作,并且进行相应的脚本文件关联。添加组件操作点击操作右侧的添加按钮。所有必填项都添加好了之后,点击保存按钮生成新的组件,在组件列表上可以看到新添加的组件。添加组件的过程中随时点击「返回」按钮放弃添加组件。 + +生命周期操作 | 描述 | 示例 +:------:|:------:|:------: +创建 | 创建软件| 创建 Tomcat 服务,为“创建”生命周期操作编写的脚本将在首次安装软件时运行。 +配置 | 配置软件| 配置Tomcat,设置 JAVA_OPTS 和 CATALINA_OPTS。配置脚本会在安装操作完成后运行。 +启动 | 启动软件| 使用 Tomcat 服务器中的启动命令启动 Tomcat 服务。启动脚本会在配置操作完成后运行。 +停止 | 停止软件| 使用 Tomcat 服务器中的停止命令停止 Tomcat 服务。停止脚本会在启动操作完成后运行。 +删除 | 删除软件| 在应用程序中执行特定操作,然后再销毁部署。删除脚本会在销毁软件组件后运行。 + +### 配置操作{#配置操作} + +内置大量常用操作的同时,支持自定义组件的操作,配置界面开放给用户,包括自定义操作的实现方式(支持脚本/任务);脚本(脚本来自于自定义的脚本文件); +过滤条件,组件操作支持EL表达式的过滤条件,当自定义填写了表达式,只有满足过滤条件时,操作才能在操作列表显示,显示生效后可供选择来执行。否则,操作将不在操作列表中显示。 + +> 表达式的格式,例如:${param} , ${param > 1}, ${param == 'abc'}, ${param != null},${param == null},当填写表达式 ${componentType !='resource.iaas.instance.vSphere'} 表示组件类型需要是vSphere云平台的虚拟机,自定义的操作对“满足以上条件”的组件资源才能生效,即会显示在满足条件的 “vSphere云平台虚拟机的操作列表” 中,并支持相应的运维操作。 + +操作分组(操作进行分组,例如:常用操作下的启动、停止、挂起、重启等等;更改配置操作下的设置标签、调整虚机配置、更新云主机名称等等); + +以及执行的具体参数配置(超时时间和最大重试次数)。 +例如:为IaaS云主机资源(vSphere云平台的linux虚拟机)添加备份操作。如下图,自定义操作基本信息,在脚本列表自定义“备份脚本backup.sh”,在配置操作时,选择脚本backup.sh,将脚本与操作绑定,并选择操作方式为“Shell”。 + +>「Note」vSphere云平台的linux虚拟机,添加的运维操作,支持在「我的部署」 - 「云主机」 页面执行。详情请参考:[云主机运维操作](https://cloudchef.github.io/doc/AdminDoc/06我的部署/我的部署.html#云主机运维操作)添加的运维操作支持权限控制,管理员在业务组的「云资源操作许可」标签页配置,详情请参考:[云资源操作许可](https://cloudchef.github.io/doc/AdminDoc/04组织架构管理/业务组.html#云资源操作许可) + + +![操作-脚本列表](../../picture/Admin/操作-脚本列表.png) +![操作-基本信息](../../picture/Admin/操作-基本信息.png) + +软件组件的表单配置:在软件组件中能够给"创建"操作和其他自定义操作配置参数和表单,其中,表单是根据属性动态生成的。配置完成表单的内容(支持JSON格式), 也能够直接显示表单的预览,以满足多样的需求。 + +![表单配置-参数](../../picture/Admin/表单配置-参数.png) +![表单配置-表单](../../picture/Admin/表单配置-表单.png) + +支持二次更新操作 +系统已经提供该操作的实现,如果需要覆盖,可以启用该选项 "覆盖系统操作" 。 +在「操作」视图,点击任意操作,进入「操作」基本信息标签页,当选择的主键名匹配到已有的系统内置操作会出现覆盖操作系统的选项和提示,勾选后 "覆盖系统操作"才会出现后面的实现配置、执行配置、表单配置等信息。 +不勾选则为内置操作。 + + +## 依赖关系 + +某些组件资源不能单独部署,例如,软件组件需要协同其他组件资源进行部署,支持创建和管理当前组件和其他组件的依赖关系。依赖关系用于定义多个组件在同时进行编排部署的场景中不同先后顺序,并且可以在相互有依赖关系的组件之间传递运行时参数。 + +在「依赖关系」视图:选择类型(包含于/依赖于),然后选择目标组件,例如:在vSphere云平台中,MySQL组件与Serve组件是包含关系,Serve组件与Network组件是依赖关系。 +![依赖关系](../../picture/Admin/依赖关系.png) + +## 版本管理 + +当您更新组件时,每次更新的版本将会被记录下来,支持回退到历史版本,具体操作步骤如下: + +1. 组件列表的工具栏点击「任意组件」按钮进入软件组件视图 + +2. 在「历史版本」视图,您可以看到所有的历史版本,当您做出修改时,平台会默认记录您的历史版本信息包括:版本号、版本描述、创建人和创建时间 + +3. 您可以勾选相应的版本v1,点击「恢复版本」一键从版本v2回退到历史版本v1,点击「保存并同步」则同步组件信息。 + +4. 同时也支持一键删除任意历史版本,勾选要删除的版本,点击「删除」确认删除即删除成功。 + +## 关联主流制品库{#关联主流制品库} + +支持软件组件与主流制品库关联,支持对接Jfrog Artifactory, Nexus制品库匹配包管理平台,实现软件版本的更新 +包管理工具的版本支持latest标记, 表示使用最新版本。 + +1. 在「制品」视图,您可以选择 入口、仓库(Jfrog Artifactory、Nexus)、组、名称、版本(默认选择latest代表最新版本) +2. 点击保存按钮,即可将组件与包管理平台进行关联。 + + + + + diff --git "a/AdminDoc/05\346\234\215\345\212\241\345\273\272\346\250\241/\350\204\232\346\234\254\345\272\223.html" "b/AdminDoc/05\346\234\215\345\212\241\345\273\272\346\250\241/\350\204\232\346\234\254\345\272\223.html" new file mode 100644 index 0000000..bc97212 --- /dev/null +++ "b/AdminDoc/05\346\234\215\345\212\241\345\273\272\346\250\241/\350\204\232\346\234\254\345\272\223.html" @@ -0,0 +1,1060 @@ + + + + + + + 脚本库 · 发行说明 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
                                                +
                                                + + + + + + + + +
                                                + +
                                                + +
                                                + + + + + + + + +
                                                +
                                                + +
                                                +
                                                + +
                                                + +

                                                脚本库

                                                +

                                                SmartCMP支持执行多种类型的脚本,包括shell、powershell、ansible、python、perl等。 +点击「服务建模」-「脚本库」,进入脚本库列表界面,可以管理云主机执行脚本时所需脚本,以便云主机批量运维操作中使用,可以设置脚本类型、系统类型、脚本内容和脚本参数。

                                                +

                                                1. 添加脚本

                                                +

                                                在左边导航选择「服务建模」-「脚本库」,点击「添加」按钮,出现创建脚本页面

                                                +
                                                  +
                                                1. 输入脚本名称,脚本内容,选择脚本类型、系统类型、换行符、业务组。例如,下图创建更新插件的脚本,在创建脚本时需要注意,选择合适的业务组,脚本将只会应用在属于该业务组的云主机。 +创建脚本
                                                2. +
                                                3. 在页面下方脚本参数列表中点击按钮,编辑脚本参数并「保存」。例如,下图中定义脚本参数,指定需要更新的插件存放地址,指定插件的云平台属性,all代表升级更新所有,openstack,vsphere作为备选项。 +脚本参数
                                                4. +
                                                5. 点击「保存」,脚本创建成功
                                                6. +
                                                7. 执行创建成功的脚本具体步骤:在左边导航选择「我的部署」-「云主机」,选择业务组下的云主机,点击执行脚本,在执行脚本配置页面,选择all,更新所有的插件 + 执行脚本
                                                8. +
                                                +

                                                2. 查看脚本库

                                                +

                                                在左边导航选择「服务建模」-「脚本库」,进入脚本库界面,显示当前所有的脚本。

                                                +

                                                3. 编辑、删除脚本

                                                +

                                                在脚本库列表界面,选中一个脚本,点击「编辑」,可对脚本进行编辑。也可直接点击脚本名称进入编辑页面。点击「删除」,确认删除提示点击「是」,可删除该脚本。

                                                + + +
                                                + +
                                                +
                                                +
                                                + +

                                                results matching ""

                                                +
                                                  + +
                                                  +
                                                  + +

                                                  No results matching ""

                                                  + +
                                                  +
                                                  +
                                                  + +
                                                  +
                                                  + +
                                                  + + + + + + + + + + + + + + +
                                                  + + +
                                                  + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git "a/AdminDoc/05\346\234\215\345\212\241\345\273\272\346\250\241/\350\204\232\346\234\254\345\272\223.md" "b/AdminDoc/05\346\234\215\345\212\241\345\273\272\346\250\241/\350\204\232\346\234\254\345\272\223.md" new file mode 100644 index 0000000..7777e30 --- /dev/null +++ "b/AdminDoc/05\346\234\215\345\212\241\345\273\272\346\250\241/\350\204\232\346\234\254\345\272\223.md" @@ -0,0 +1,28 @@ + +**脚本库** + + +SmartCMP支持执行多种类型的脚本,包括shell、powershell、ansible、python、perl等。 +点击「服务建模」-「脚本库」,进入脚本库列表界面,可以管理云主机执行脚本时所需脚本,以便云主机批量运维操作中使用,可以设置脚本类型、系统类型、脚本内容和脚本参数。 + +# 添加脚本 + +在左边导航选择「服务建模」-「脚本库」,点击「添加」按钮,出现创建脚本页面 + +1. 输入脚本名称,脚本内容,选择脚本类型、系统类型、换行符、业务组。例如,下图创建更新插件的脚本,在创建脚本时需要注意,选择合适的业务组,脚本将只会应用在属于该业务组的云主机。 + ![创建脚本](../../picture/Admin/创建脚本.png) +2. 在页面下方脚本参数列表中点击按钮,编辑脚本参数并「保存」。例如,下图中定义脚本参数,指定需要更新的插件存放地址,指定插件的云平台属性,all代表升级更新所有,openstack,vsphere作为备选项。 + ![脚本参数](../../picture/Admin/脚本参数.png) +3. 点击「保存」,脚本创建成功 +4. 执行创建成功的脚本具体步骤:在左边导航选择「我的部署」-「云主机」,选择业务组下的云主机,点击执行脚本,在执行脚本配置页面,选择all,更新所有的插件 + ![执行脚本](../../picture/Admin/执行脚本.png) + + + +# 查看脚本库 + +在左边导航选择「服务建模」-「脚本库」,进入脚本库界面,显示当前所有的脚本。 + +# 编辑、删除脚本 + +在脚本库列表界面,选中一个脚本,点击「编辑」,可对脚本进行编辑。也可直接点击脚本名称进入编辑页面。点击「删除」,确认删除提示点击「是」,可删除该脚本。 \ No newline at end of file diff --git "a/AdminDoc/05\346\234\215\345\212\241\345\273\272\346\250\241/\350\223\235\345\233\276\350\256\276\350\256\241.html" "b/AdminDoc/05\346\234\215\345\212\241\345\273\272\346\250\241/\350\223\235\345\233\276\350\256\276\350\256\241.html" new file mode 100644 index 0000000..5404932 --- /dev/null +++ "b/AdminDoc/05\346\234\215\345\212\241\345\273\272\346\250\241/\350\223\235\345\233\276\350\256\276\350\256\241.html" @@ -0,0 +1,1862 @@ + + + + + + + 蓝图设计 · 发行说明 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
                                                  +
                                                  + + + + + + + + +
                                                  + +
                                                  + +
                                                  + + + + + + + + +
                                                  +
                                                  + +
                                                  +
                                                  + +
                                                  + +

                                                  蓝图设计

                                                  +

                                                  软件架构师可以通过蓝图管理界面以可视化的方式设计出基于TOSCA标准的应用蓝图。蓝图是对应用的抽象。蓝图包含应用的拓扑、工作流以及策略三部分。蓝图是系统核心的概念,整个系统都是围绕着蓝图管理。

                                                  +

                                                  1. 蓝图

                                                  +

                                                  您可以根据下面的步骤来查看当前租户的蓝图:

                                                  +
                                                    +
                                                  1. 在左边导航栏选择「服务建模」-「蓝图设计」,出现蓝图列表。有添加、复制、发布、取消发布、导入、导出和删除操作,发布和取消发布操作根据蓝图状态动态可用,若蓝图处于已发布状态,在取消发布操作可用。发布操作同理

                                                    +
                                                  2. +
                                                  3. 蓝图列表可以按照名称、状态、创建时间排序。可以按照蓝图名称进行搜索

                                                    +
                                                  4. +
                                                  +

                                                  1.1. 内建蓝图

                                                  +

                                                  目前SmartCMP内建了典型的vSphere、OpenStack、Kubernetes蓝图以方便您使用,您可以在创建服务配置时直接使用这些内建的蓝图。在左边导航栏选择「服务建模」-「蓝图设计」,出现蓝图列表,创建者为系统的蓝图为系统内建蓝图。

                                                  +

                                                  1.1.1. 可视化编辑器概览

                                                  +

                                                  点击蓝图名称或添加新蓝图将进入可视化编辑器。

                                                  +

                                                  可视化编辑器包括以下几个部分:

                                                  +
                                                    +
                                                  1. 组件列表面板: +组件列表包含SmartCMP支持的云基础架构的各个组件,以及您自定的组件。在SmartCMP组件视图中出现的所有组件都在「自定义组件」面板中。您可以选中任意一个组件,然后将它拖放到画布中

                                                    +
                                                  2. +
                                                  3. 画布:可视化蓝图的核心部分,您可以将组件拖放到画布上,不同的组件之间可以在画布上建立连接以定义组件之间的关系

                                                    +
                                                  4. +
                                                  5. 基本信息面板:包括蓝图的名称,描述和图标信息。您可以对其进行更改

                                                    +
                                                  6. +
                                                  7. 输入面板:管理蓝图里的所有输入项

                                                    +
                                                  8. +
                                                  9. 输出面板:管理蓝图里的所有输出

                                                    +
                                                  10. +
                                                  11. 选中组件的组件信息面板:包含选定组件的基本信息、参数等

                                                    +
                                                  12. +
                                                  +

                                                  1.1.2. 组件的添加与设置

                                                  +

                                                  组件被拖放到画布上后,组件就被添加到蓝图中,在组件选中后,在组件信息面板里就可以编辑组件。编辑可以在以下子视图中进行:

                                                  +
                                                    +
                                                  • 基本信息:可以在基本信息里看到组件的类型,同时可以对组件的名称进行编辑

                                                    +
                                                  • +
                                                  • 参数:组件的参数列表,包括组件自身的参数和从父节点继承的参数,可以在这里对参数进行设置

                                                    +
                                                  • +
                                                  • 功能:组件的功能列表,表示组件可以提供的功能,一旦有其它的组件需要功能列表里的功能作为前提条件,那么就可以建立其它组件到该组件的连接以提供该功能给其它组件

                                                    +
                                                  • +
                                                  • 前提条件:组件需要的潜在功能列表,一旦列表里的功能被完全或者部分满足,该组件就可以运行工作,您在这里建立和其它组件的连接关系,以满足自身的需求

                                                    +
                                                  • +
                                                  • 连接:组件的所有连接列表,一旦前提条件里的某个组件需要的功能被满足,对应的连接就会出现在这里,您可以在这里对这一连接进行编辑和删除操作

                                                    +
                                                  • +
                                                  +

                                                  1.1.3. 组件的删除

                                                  +

                                                  组件被拖放到画布上后,若要删除组件,在组件上单击鼠标右键,在弹出的上下文菜单中可以删除组件。

                                                  +

                                                  1.1.4. 云平台组件及连接说明

                                                  + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
                                                  vSphere云平台组件连接说明
                                                  Network与Server连接时将Server的Network节点与Network组件的link节点相连
                                                  Disk挂盘时需将Disk组件拖拽到Server内
                                                  LswitchNSX逻辑交换机可在完全脱离底层硬件的虚拟环境中再现交换功能(单播、多播和广播)。 将Lswitch与Server/WindowsServer节点相连
                                                  DLRNSX逻辑(分布式)路由器,使用时将DLR与Lswitch相连
                                                  SecurityGroupNSX安全组,使用时将SecurityGroup与Server/WindowsServer节点相连
                                                  LoadBalancer将VirtualServer内置于LoadBalancer内,使用时将LoadBalancer的edge节点与Edge相连
                                                  VirtualServer将VirtualServer内置于LoadBalancer内,使用时将VirtualServer的Server节点与Sever相连
                                                  + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
                                                  OpenStack云平台组件连接说明
                                                  Network与Server连接时将Server的Network节点与Network组件的link节点相连
                                                  Router路由,使用时将Router的Network节点与Network组件的route节点相连
                                                  FloatingIP浮动IP:使用时与Server组件的floatingIP节点相连接
                                                  Volume使用时将Volume组件拖拽到Server内
                                                  SecurityGroup安全组,使用时将Server组件的Security_Group节点与SecurityGroup相连
                                                  LoadBalancer负载均衡,使用时将Listener内置于LoadBalancer,通过Listener与Server相连
                                                  Firewall防火墙,单独部署
                                                  Listener负载均衡监听器,使用时将Listener内置于LoadBalancer,将Listener的Server节点与Server相连。LoadBalancer中可内置多个Listener, Listener可与多个Server相连
                                                  DNS域名系统,单独部署
                                                  + + + + + + + + + + + + + + + + + + + + + +
                                                  PowerVC云平台组件连接说明
                                                  Network与Server连接时将Server的Network节点与Network组件的link节点相连
                                                  Volume使用时将Volume组件拖拽到Server内
                                                  物理服务器Server Network
                                                  + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
                                                  Kubernetes云平台组件连接说明
                                                  Deployment为POD和ReplicaSet 提供了一个声明式定义方法,方便管理应用Container 容器,使用时将Containier组件拖拽到Deployment内
                                                  Nginx- Container容器,使用时将Nginx-Containier组件拖拽到Deployment内,使用时其config_Map连接到ConfigMap
                                                  ServiceService 定义了这样一种抽象:一个 Pod 的逻辑分组,一种可以访问它们的策略 — 通常称为微服务。使用时将该组件的Deployment节点连接至Deployment组件
                                                  Ingress给 service 提供集群外部访问的 URL、负载均衡、SSL 终止、HTTP 路由等。使用时将该组件的Service节点连接至Service组件
                                                  PersistentVolumeClaim请求存储资源。使用时将Container的pvc节点连接至该组件
                                                  ConfigMap用于保存配置数据的键值对,可用于保存单个属性或保存配置文件。使用时将Nginx-Container的ConfigMap节点连接至该组件
                                                  Secret解决密码、token、密钥等敏感数据的配置问题。使用时将Container的Secret节点连接至该组件
                                                  ServiceEndpoint使用时将Container的service_endpoint节点和ServiceEndpoint的container节点相连,然后将ServiceEndpoint 的software_component节点与软件组件相连
                                                  DaemonSet保证在每个Node上都运行一个容器副本,常用来部署一些集群的日志、监控或者其他系统管理应用。使用时将Container内置于DaemonSet中
                                                  StatefulSet为了解决状态服务的问题,使用时将Container内置于StatefulSet中
                                                  +

                                                  Docker Container Docker容器,可在组件参数中填入镜像名称,与其他组件相连时将组件的Dependency节点与容器的feature相连

                                                  + + + + + + + + + + + + + + + + + + + + + +
                                                  阿里云云平台组件连接说明
                                                  SecurityGroup使用时将Instance组件的dependency节点与SecurityGroup相连
                                                  Disk需将Disk组件拖拽到Instance内
                                                  LoadBalancer使用时将Instance组件的dependency节点与LoadBalancer相连
                                                  +

                                                  阿里专有云

                                                  +
                                                    +
                                                  • SecurityGroup 使用时将Instance组件的dependency节点与SecurityGroup相连
                                                  • +
                                                  • Disk 需将Disk组件拖拽到Instance内
                                                  • +
                                                  • LoadBalancer 使用时将Instance组件的dependency节点与LoadBalancer相连
                                                  • +
                                                  +

                                                  腾讯云

                                                  +
                                                    +
                                                  • SecurityGroup 使用时将Instance组件的Security_group节点与SecurityGroup组件的Security节点连接
                                                  • +
                                                  +

                                                  青云

                                                  +
                                                    +
                                                  • SecurityGroup 使用时将Instance组件的Security_group节点与SecurityGroup组件的Security节点连接
                                                  • +
                                                  • Volume 请求存储资源。
                                                  • +
                                                  • 物理服务器 Server Network
                                                  • +
                                                  • Disk 磁盘
                                                  • +
                                                  • Network 网络
                                                  • +
                                                  + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
                                                  AWS云平台组件连接说明
                                                  Instance使用时将Instance组件的Security_Group节点与SecurityGroup相连
                                                  WindowsInstance使用时将WindowsInstance组件的Security_Group节点与SecurityGroup相连
                                                  Volume请求存储资源。无节点
                                                  RDS数据库实例是在云中运行的独立数据库环境。无节点。
                                                  S3Bucket存储组件
                                                  SecurityGroup使用时将Instance组件的Security_Group节点与SecurityGroup相连
                                                  + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
                                                  Azure云平台组件连接说明
                                                  Instance将Instance的virtualNetwork节点和VirtualNetwork的Link节点相连
                                                  WindowsInstance将WindowsInstance的virtualNetwork节点和VirtualNetwork的Link节点相连
                                                  LoadBalancer使用时,将LoadBalancerRule内置于LoadBalancer中,通过LoadBalancerRule与Instance相连
                                                  LoadBalancerRule使用时将LoadBalancerRule内置于LoadBalancer中,将LoadBalancerRule的instance节点与Instance的loadBalancer_rule相连
                                                  AvailabilitySet可用性集,将Instance的availability_set节点和AvailabilitySet的instance节点相连
                                                  BlobContainer块存储
                                                  Disk磁盘
                                                  SecurityGroup使用时将Instance组件的Security_group节点与SecurityGroup组件的Security节点连接
                                                  + + + + + + + + + + + + + + + + + + + + + + + + + +
                                                  F5 云平台组件连接说明
                                                  BIG-IP LoadBalancer负载均衡,使用时将该组件的Application节点连接至Server
                                                  SNATPool负载均衡,使用时将该组件的dependency节点连接至Server
                                                  Pool负载均衡,使用时将该组件的pool节点连接至Server
                                                  VirtualServer负载均衡,使用时将该组件的virtualserver节点连接至Server
                                                  +

                                                  ACI

                                                  +
                                                    +
                                                  • EPG
                                                  • +
                                                  +

                                                  软件组件

                                                  +
                                                    +
                                                  • 「软件组件」中自定义的软件
                                                  • +
                                                  +

                                                  Exporter

                                                  +
                                                    +
                                                  • 「软件组件」中自定义的Exporter
                                                  • +
                                                  +

                                                  抽象云组件

                                                  +

                                                  抽象云组件是SmartCMP设计的一个通用的方案, 能通过通用或者扩展的方式接入任何一个云平台的计算, 存储和网络. +为了提升这个方案的通用性, 提取每个云平台通用的属性, 这些属性包括Linux/Windows Server, Network/Subnet, Disk,这些属性对应下面这些云组件

                                                  +
                                                    +
                                                  • SecurityGroup
                                                  • +
                                                  • ObectStorage
                                                  • +
                                                  • LoadBalancer
                                                  • +
                                                  • Volume
                                                  • +
                                                  • Network
                                                  • +
                                                  • WindowCompute
                                                  • +
                                                  • Compute
                                                  • +
                                                  +

                                                  1.1.5. 连接的建立

                                                  +
                                                    +
                                                  1. 在组件信息面板-前提条件,添加连接。

                                                    +
                                                  2. +
                                                  3. 在蓝图中添加。画布上的所有组件和连接构成了蓝图。当一个组件被拖放到蓝图中后,组件的左边框和右边框上就会创建组件的「连接点」。在左边框上的连接点对应于组件的功能列表,在右边框上的连接点对应于组件的前提条件列表。因此,您可以用鼠标选择右边框上的「前提条件」连接点,这个时候,系统就会给出蓝图中所有潜在的可连接的「功能」连接点,您可以选择其中的某一个进行连接。

                                                    +
                                                  4. +
                                                  +

                                                  1.1.6. 连接的编辑

                                                  +

                                                  参见 组件的添加和设置

                                                  +

                                                  1.1.7. 连接的删除

                                                  +

                                                  在组件信息面板中删除:任何类型的组件连接均可以在这里删除。在「组件信息面板」「连接」中选定连接,点击删除。

                                                  +

                                                  在蓝图中删除:选中某一个连接,单击鼠标右键,在弹出的上下文菜单里可以删除选中的连接。绝大部分的连接都可以这样删除。

                                                  +
                                                  +

                                                  「Note」:虚机和网络组件,虚机和存储组件的连接是例外,不可以通过这种方式删除。

                                                  +
                                                  +

                                                  1.2. 创建蓝图

                                                  +

                                                  1.2.1. 创建vSphere单节点蓝图

                                                  +
                                                    +
                                                  1. 选择「服务建模」-「蓝图设计」,点击「添加」

                                                    +
                                                  2. +
                                                  3. 输入蓝图名称及描述,点击「确定」,进入可视化蓝图编辑页面

                                                    +
                                                  4. +
                                                  5. 从左边的组件列表中选择vSphere栏目下的Server和Network组件,分别将他们拖拽到右边的画布区域中

                                                    +
                                                  6. +
                                                  7. 定义网络:点击Server右边的network节点拖拽到Network的link节点上,建立server和network的网络连接 +蓝图

                                                    +
                                                  8. +
                                                  9. 点击左上角「验证」,验证蓝图,提示这是一个合法的蓝图

                                                    +
                                                  10. +
                                                  11. 验证成功后点击左上角「保存」,保存成功后点击「返回」,将回到蓝图列表界面

                                                    +
                                                  12. +
                                                  13. 发布蓝图:在蓝图列表里选择刚编辑的vSphere蓝图,点击「发布」,然后点击「是」

                                                    +
                                                  14. +
                                                  15. 蓝图发布成功,状态变为已发布,vSphere虚拟机蓝图创建成功

                                                    +
                                                  16. +
                                                  17. 也可在验证成功后,直接点击「保存并发布」,发布蓝图

                                                    +
                                                  18. +
                                                  +

                                                  1.2.2. 创建VMware NSX 蓝图

                                                  +
                                                    +
                                                  1. 选择「服务建模」-「蓝图设计」,点击「添加」

                                                    +
                                                  2. +
                                                  3. 输入蓝图名称及描述,点击「确定」,进入可视化蓝图编辑页面

                                                    +
                                                  4. +
                                                  5. 从左边的组件列表中选择vSphere栏目下的Server、Lswitch、DLR、SecurityGroup组件,分别将他们拖拽到右边的画布区域中

                                                    +
                                                  6. +
                                                  7. 点击Server右边的lswitch节点拖拽到Lswitch的节点上(显示绿色),建立server与Lswitch的连接

                                                    +
                                                  8. +
                                                  9. 点击DLR右边的lswitch节点拖拽到Lswitch的节点上,建立DLR与Lswitch的连接

                                                    +
                                                  10. +
                                                  11. 点击SecurityGroup右边的Server_WindowsServer节点拖拽到Server的节点上,建立SecurityGroup与Server的连接

                                                    +
                                                  12. +
                                                  +

                                                  蓝图

                                                  +
                                                    +
                                                  1. 点击左上角「验证」,验证蓝图,提示这是一个合法的蓝图

                                                    +
                                                  2. +
                                                  3. 点击「保存并发布」,发布蓝图,提示蓝图发布成功

                                                    +
                                                  4. +
                                                  +

                                                  1.2.3. 创建vSphere MySQL带监控蓝图

                                                  +

                                                  创建应用软件部署和带应用监控的蓝图,以部署一台vSphere上的虚拟机、并安装MySQL以及MySQL监控为例:

                                                  +
                                                    +
                                                  1. 选择「服务建模」-「蓝图设计」,点击「添加」

                                                    +
                                                  2. +
                                                  3. 输入蓝图名称及描述,点击「确定」,进入可视化蓝图编辑页面

                                                    +
                                                  4. +
                                                  5. 从左边的组件列表中选择vSphere栏目下的Server和Network组件,分别将他们拖拽到右边的画布区域中

                                                    +
                                                  6. +
                                                  7. 定义网络:点击Server右边的network节点拖拽到Network的link节点上

                                                    +
                                                  8. +
                                                  9. 添加组件:从左边的组件列表中选择软件组件栏目下的MySQL和MySQLExporter组件,拖动至server节点框内,选择连接的名称,点击「完成」

                                                    +
                                                  10. +
                                                  11. 添加依赖关系:点击MySQLExporter右侧的节点拖拽到MySQL左侧的feature节点上,添加MySQLExporter与MySQL的依赖关系

                                                    +
                                                  12. +
                                                  +

                                                  蓝图

                                                  +
                                                    +
                                                  1. 验证蓝图:点击左上角「验证」,验证蓝图的合法性

                                                    +
                                                  2. +
                                                  3. 保存并发布:点击左上角的「保存并发布」,发布蓝图

                                                    +
                                                  4. +
                                                  5. 根据下章6.4服务配置步骤,选择刚发布的蓝图,发布服务目录

                                                    +
                                                  6. +
                                                  7. 服务目录申请,经业务组流程(审批)后部署,部署成功后可查看MySQL组件的监控信息

                                                    +
                                                  8. +
                                                  +

                                                  1.2.4. 创建OpenStack单节点蓝图

                                                  +
                                                    +
                                                  1. 选择「服务建模」-「蓝图设计」,点击「添加」

                                                    +
                                                  2. +
                                                  3. 输入蓝图名称及描述,点击「确定」,进入可视化蓝图编辑页面

                                                    +
                                                  4. +
                                                  5. 从左边的组件列表中选择OpenStack栏目下的Server和Network组件,分别将他们拖拽到右边的画布区域中

                                                    +
                                                  6. +
                                                  7. 定义网络:点击Server右边的network节点拖拽到Network的link节点上

                                                    +
                                                  8. +
                                                  +

                                                  蓝图

                                                  +
                                                    +
                                                  1. 验证蓝图:点击左上角「验证」,验证蓝图,提示这是一个合法的蓝图

                                                    +
                                                  2. +
                                                  3. 保存蓝图:验证成功后点击左上角「保存」,保存成功后点击「返回」,将回到蓝图列表界面

                                                    +
                                                  4. +
                                                  5. 发布蓝图:在蓝图列表里选择刚编辑的OpenStack蓝图,点击「发布」,然后点击「是」

                                                    +
                                                  6. +
                                                  7. 蓝图发布成功,状态变为已发布,Openstack虚拟机蓝图创建成功

                                                    +
                                                  8. +
                                                  9. 也可在验证成功后,直接点击「保存并发布」,发布蓝图

                                                    +
                                                  10. +
                                                  +

                                                  1.2.5. 创建OpenStack Firewall蓝图

                                                  +
                                                    +
                                                  1. 选择「服务建模」-「蓝图设计」,点击「添加」

                                                    +
                                                  2. +
                                                  3. 输入蓝图名称及描述,点击「确定」,进入可视化蓝图编辑页面

                                                    +
                                                  4. +
                                                  5. 从左边的组件列表中选择Openstack栏目下的Firewall组件,将它拖拽到右边的画布区域中 +蓝图

                                                    +
                                                  6. +
                                                  7. 验证蓝图:点击左上角「验证」,验证蓝图,提示这是一个合法的蓝图

                                                    +
                                                  8. +
                                                  9. 保存蓝图:验证成功后点击左上角「保存」,保存成功后点击「返回」,将回到蓝图列表界面

                                                    +
                                                  10. +
                                                  11. 发布蓝图:在蓝图列表里选择刚编辑的OpenStack +Firewall蓝图,点击「发布」,然后点击「是」

                                                    +
                                                  12. +
                                                  13. 蓝图发布成功,状态变为已发布,Openstack +Firewall虚拟机蓝图创建成功

                                                    +
                                                  14. +
                                                  15. 也可在验证成功后,直接点击「保存并发布」,发布蓝图

                                                    +
                                                  16. +
                                                  +

                                                  1.2.6. 创建OpenStack LoadBalancer with SecurityGroup蓝图

                                                  +
                                                    +
                                                  1. 选择「服务建模」-「蓝图设计」,点击「添加」

                                                    +
                                                  2. +
                                                  3. 输入蓝图名称及描述,点击「确定」,进入可视化蓝图编辑页面

                                                    +
                                                  4. +
                                                  5. 从左边的组件列表中选择Openstack栏目下的Server、Network将它们拖拽到右边的画布区域中,点击Server右边的network节点拖拽到Network的link节点上,建立Server节点和Network的连接

                                                    +
                                                  6. +
                                                  7. 从左边组件列表Openstack栏目下,选择LoadBalancer组件到右边的画布区域,再将Openstack栏目下Listener拖动至LoadBalancer节点框内,点击「完成」,建立负载均衡监听器(Listener)和负载均衡器(LoadBalancer)的内置关系

                                                    +
                                                  8. +
                                                  9. 点击Listener右边的server节点拖拽至Server的server节点上,建立Listener和Server节点的关联关系

                                                    +
                                                  10. +
                                                  11. 从左边组件列表Openstack栏目下,拖动SecurityGroup组件到右边的画布区域,点击Server组件右边的security_group节点到SecurityGroup左边的security节点上,建立Server与SecurityGroup的连接关系

                                                    +
                                                  12. +
                                                  +

                                                  蓝图

                                                  +
                                                    +
                                                  1. 验证蓝图:点击左上角「验证」,验证蓝图,提示这是一个合法的蓝图

                                                    +
                                                  2. +
                                                  3. 保存蓝图:验证成功后点击左上角「保存」,保存成功后点击「返回」,将回到蓝图列表界面

                                                    +
                                                  4. +
                                                  5. 发布蓝图:在蓝图列表里选择刚编辑的OpenStack LoadBalancer with +SecurityGroup蓝图,点击「发布」,然后点击「是」

                                                    +
                                                  6. +
                                                  7. 蓝图发布成功,状态变为已发布,OpenStack LoadBalancer with +SecurityGroup虚拟机蓝图创建成功

                                                    +
                                                  8. +
                                                  9. 也可在验证成功后,直接点击「保存并发布」,发布蓝图

                                                    +
                                                  10. +
                                                  +

                                                  1.2.7. 创建OpenStack FloatingIP蓝图

                                                  +
                                                    +
                                                  1. 选择「服务建模」-「蓝图设计」,点击「添加」

                                                    +
                                                  2. +
                                                  3. 输入蓝图名称及描述,点击「确定」,进入可视化蓝图编辑页面

                                                    +
                                                  4. +
                                                  5. 从左边的组件列表中选择Openstack栏目下的FloatingIP,拖拽到右边的画布区域中

                                                    +
                                                  6. +
                                                  7. 验证蓝图:点击左上角「验证」,验证蓝图,提示这是一个合法的蓝图

                                                    +
                                                  8. +
                                                  9. 保存蓝图:验证成功后点击左上角「保存」,保存成功后点击「返回」,将回到蓝图列表界面

                                                    +
                                                  10. +
                                                  11. 发布蓝图:在蓝图列表里选择刚编辑的OpenStack +FloatingIP蓝图,点击「发布」,然后点击「是」

                                                    +
                                                  12. +
                                                  13. 蓝图发布成功,状态变为已发布,OpenStack +FloatingIP虚拟机蓝图创建成功

                                                    +
                                                  14. +
                                                  15. 也可在验证成功后,直接点击「保存并发布」,发布蓝图

                                                    +
                                                  16. +
                                                  +

                                                  1.2.8. 创建OpenStack DNS蓝图

                                                  +
                                                    +
                                                  1. 选择「服务建模」-「蓝图设计」,点击「添加」

                                                    +
                                                  2. +
                                                  3. 输入蓝图名称及描述,点击「确定」,进入可视化蓝图编辑页面

                                                    +
                                                  4. +
                                                  5. 从左边的组件列表中选择Openstack栏目下的DNS,拖拽到右边的画布区域中

                                                    +
                                                  6. +
                                                  +

                                                  蓝图

                                                  +
                                                    +
                                                  1. 验证蓝图:点击左上角「验证」,验证蓝图,提示这是一个合法的蓝图

                                                    +
                                                  2. +
                                                  3. 保存蓝图:验证成功后点击左上角「保存」,保存成功后点击「返回」,将回到蓝图列表界面

                                                    +
                                                  4. +
                                                  5. 发布蓝图:在蓝图列表里选择刚编辑的OpenStack +DNS蓝图,点击「发布」,然后点击「是」

                                                    +
                                                  6. +
                                                  7. 蓝图发布成功,状态变为已发布,OpenStack DNS虚拟机蓝图创建成功

                                                    +
                                                  8. +
                                                  9. 也可在验证成功后,直接点击「保存并发布」,发布蓝图

                                                    +
                                                  10. +
                                                  +

                                                  1.2.9. 创建Kubernetes蓝图

                                                  +
                                                    +
                                                  1. 选择「服务建模」-「蓝图设计」,点击「添加」

                                                    +
                                                  2. +
                                                  3. 输入蓝图名称及描述,点击「确定」,进入可视化蓝图编辑页面

                                                    +
                                                  4. +
                                                  5. 从左边的组件列表中选择Kubernetes栏目下的Service和Deployment组件拖拽到右边的画布区域中

                                                    +
                                                  6. +
                                                  7. 拖拽Service组件上的Deployment节点至Deployment组件,建立Service与Deployment的依赖关系

                                                    +
                                                  8. +
                                                  9. 添加Container组件:从左边的组件列表中选择Kubernetes栏目下的Container组件,拖动至Deployment节点框内,选择连接的名称,点击「完成」,建立Container与Deployment的依赖关系

                                                    +
                                                  10. +
                                                  11. 添加PersistentVolumeClaim组件:从左边的组件列表中选择Kubernetes栏目下PersistentVolumeClaim组件,拖动至右边的画布区域。拖拽Container组件的pvc节点至PersistentVolumeClaim,建立Container与PersistentVolumeClaim的依赖关系

                                                    +
                                                  12. +
                                                  +

                                                  蓝图

                                                  +
                                                    +
                                                  1. 验证蓝图:点击左上角「验证」,验证蓝图,提示这是一个合法的蓝图验证成功后点击左上角「保存」,保存成功后点击「返回」

                                                    +
                                                  2. +
                                                  3. 保存蓝图:验证成功后点击左上角「保存」,保存成功后点击「返回」,将回到蓝图列表界面

                                                    +
                                                  4. +
                                                  5. 发布蓝图:在蓝图列表里选择刚编辑的Kubernetes蓝图,点击「发布」,然后点击「是」

                                                    +
                                                  6. +
                                                  7. 蓝图发布成功,状态变为已发布,Kubernetes蓝图创建成功

                                                    +
                                                  8. +
                                                  9. 也可在验证成功后,直接点击「保存并发布」,发布蓝图

                                                    +
                                                  10. +
                                                  +

                                                  1.2.10. 创建阿里云蓝图

                                                  +
                                                    +
                                                  1. 选择「服务建模」-「蓝图设计」,点击「添加」

                                                    +
                                                  2. +
                                                  3. 输入蓝图名称及描述,点击「确定」,进入可视化蓝图编辑页面

                                                    +
                                                  4. +
                                                  5. 从左边的组件列表中选择阿里云栏目下的Instance和SecurityGroup组件拖拽到右边的画布区域中

                                                    +
                                                  6. +
                                                  7. 拖拽Instance组件上的Dependency节点至SecurityGroup组件的feature节点,建立Instance与SecurityGroup的依赖关系

                                                    +
                                                  8. +
                                                  +

                                                  蓝图

                                                  +
                                                  +

                                                  「Note」若需在服务配置时新建安全组,则在SecurityGroup的参数下,去掉勾选"使用已有资源"

                                                  +
                                                  +
                                                    +
                                                  1. 验证蓝图:点击左上角「验证」,验证蓝图,提示这是一个合法的蓝图验证成功后点击左上角「保存」,保存成功后点击「返回」

                                                    +
                                                  2. +
                                                  3. 保存蓝图:验证成功后点击左上角「保存」保存成功后点击「返回」,将回到蓝图列表界面

                                                    +
                                                  4. +
                                                  5. 发布蓝图:在蓝图列表里选择刚编辑的阿里云蓝图,点击「发布」,然后点击「是」

                                                    +
                                                  6. +
                                                  7. 蓝图发布成功,状态变为已发布,阿里云蓝图创建成功

                                                    +
                                                  8. +
                                                  9. 也可在验证成功后,直接点击「保存并发布」,发布蓝图

                                                    +
                                                  10. +
                                                  +

                                                  1.2.11. 创建Azure蓝图

                                                  +
                                                    +
                                                  1. 选择「服务建模」-「蓝图设计」,点击「添加」

                                                    +
                                                  2. +
                                                  3. 输入蓝图名称及描述,点击「确定」,进入可视化蓝图编辑页面

                                                    +
                                                  4. +
                                                  5. 从左边的组件列表中选择Azure栏目下的VirtualNetwork和Instance组件拖拽到右边的画布区域中,拖拽Instance组件上的virtualNetwork节点至VirtualNetwork组件的link节点,建立Instance与VirtualNetwork的依赖关系

                                                    +
                                                  6. +
                                                  7. 再选择Azure栏目下的AvailabilitySet、 +SecurityGroup、BlobContainer组件拖拽到右边的画布区域中,拖拽Instance组件上的availability_set节点至AvailabilitySet组件的instance节点,拖拽Instance组件上的security_group节点至SecurityGroup组件的security节点,建立Instance与Availability、SecurityGroup的依赖关系

                                                    +
                                                  8. +
                                                  9. 再选择Azure栏目下的LoadBalancer组件拖拽到右边的画布区域中,再将LoadBalancerRule拖动至LoadBalancer节点框内,点击「完成」,建立负载均衡规则(LoadBalancerRule)和负载均衡器(LoadBalancer)的内置关系

                                                    +
                                                  10. +
                                                  11. 拖拽LoadBalancerRule组件上的instance节点至Instance组件的loadbalancer_rule节点,建立Instance与LoadBalancerRule的依赖关系

                                                    +
                                                  12. +
                                                  +

                                                  蓝图

                                                  +
                                                    +
                                                  1. 验证蓝图:点击左上角「验证」,验证蓝图,提示这是一个合法的蓝图验证成功后点击左上角「保存」,保存成功后点击「返回」

                                                    +
                                                  2. +
                                                  3. 保存蓝图:验证成功后点击左上角「保存」,保存成功后点击「返回」,将回到蓝图列表界面

                                                    +
                                                  4. +
                                                  5. 发布蓝图:在蓝图列表里选择刚编辑的阿里云蓝图,点击「发布」,然后点击「是」

                                                    +
                                                  6. +
                                                  7. 蓝图发布成功,状态变为已发布,阿里云蓝图创建成功

                                                    +
                                                  8. +
                                                  9. 也可在验证成功后,直接点击「保存并发布」,发布蓝图

                                                    +
                                                  10. +
                                                  +

                                                  1.2.12. 创建AWS蓝图

                                                  +
                                                    +
                                                  1. 选择「服务建模」-「蓝图设计」,点击「添加」

                                                    +
                                                  2. +
                                                  3. 输入蓝图名称及描述,点击「确定」,进入可视化蓝图编辑页面

                                                    +
                                                  4. +
                                                  5. 从左边的组件列表中选择AWS栏目下的Instance和SecurityGroup组件拖拽到右边的画布区域中,拖拽Instance组件上的security_group节点至SecurityGroup组件的security_group节点,建立Instance与SecurityGroup的依赖关系

                                                    +
                                                  6. +
                                                  +

                                                  蓝图

                                                  +
                                                    +
                                                  1. 验证蓝图:点击左上角「验证」,验证蓝图,提示这是一个合法的蓝图验证成功后点击左上角「保存」,保存成功后点击「返回」

                                                    +
                                                  2. +
                                                  3. 保存蓝图:验证成功后点击左上角「保存」,保存成功后点击「返回」,将回到蓝图列表界面

                                                    +
                                                  4. +
                                                  5. 发布蓝图:在蓝图列表里选择刚编辑的AWS蓝图,点击「发布」,然后点击「是」

                                                    +
                                                  6. +
                                                  7. 蓝图发布成功,状态变为已发布,AWS蓝图创建成功

                                                    +
                                                  8. +
                                                  9. 也可在验证成功后,直接点击「保存并发布」,发布蓝图

                                                    +
                                                  10. +
                                                  +

                                                  1.2.13. 创建青云蓝图

                                                  +
                                                    +
                                                  1. 选择「服务建模」-「蓝图设计」,点击「添加」

                                                    +
                                                  2. +
                                                  3. 输入蓝图名称及描述,点击「确定」,进入可视化蓝图编辑页面

                                                    +
                                                  4. +
                                                  5. 从左边的组件列表中选择青云栏目下的WindowsInstance和SecurityGroup组件拖拽到右边的画布区域中,拖拽WindowsInstance组件上的security_group节点至SecurityGroup组件的security节点,建立WindowsInstance与SecurityGroup的依赖关系

                                                    +
                                                  6. +
                                                  +

                                                  蓝图

                                                  +
                                                    +
                                                  1. 验证蓝图:点击左上角「验证」,验证蓝图,提示这是一个合法的蓝图验证成功后点击左上角「保存」,保存成功后点击「返回」

                                                    +
                                                  2. +
                                                  3. 保存蓝图:验证成功后点击左上角「保存」,保存成功后点击「返回」,将回到蓝图列表界面

                                                    +
                                                  4. +
                                                  5. 发布蓝图:在蓝图列表里选择刚编辑的青云蓝图,点击「发布」,然后点击「是」

                                                    +
                                                  6. +
                                                  7. 蓝图发布成功,状态变为已发布,青云蓝图创建成功

                                                    +
                                                  8. +
                                                  9. 也可在验证成功后,直接点击「保存并发布」,发布蓝图

                                                    +
                                                  10. +
                                                  +

                                                  1.2.14. 创建Hyper-V蓝图

                                                  +
                                                    +
                                                  1. 选择「服务建模」-「蓝图设计」,点击「添加」

                                                    +
                                                  2. +
                                                  3. 输入Hyper-V蓝图名称及描述,点击「确定」,进入可视化蓝图编辑页面

                                                    +
                                                  4. +
                                                  5. 从左边的组件列表中选择Hyper-V栏目下的WindowsInstance和NetworkAdapter组件,分别将他们拖拽到右边的画布区域中

                                                    +
                                                  6. +
                                                  7. 定义网络:点击WindowsInstance右边的network节点,将其拖拽到NetworkAdapter的link节点上,建立WindowsInstance和NetworkAdapter的网络连接

                                                    +
                                                  8. +
                                                  +

                                                  蓝图

                                                  +
                                                    +
                                                  1. 点击左上角「验证」,验证蓝图,提示这是一个合法的蓝图

                                                    +
                                                  2. +
                                                  3. 验证成功后点击左上角「保存」,保存成功后点击「返回」,将回到蓝图列表界面

                                                    +
                                                  4. +
                                                  5. 发布蓝图:在蓝图列表里选择刚编辑的Hyper-V蓝图,点击「发布」,然后点击「是」

                                                    +
                                                  6. +
                                                  7. 蓝图发布成功,状态变为已发布,vSphere虚拟机蓝图创建成功

                                                    +
                                                  8. +
                                                  9. 也可在验证成功后,直接点击「保存并发布」,发布蓝图

                                                    +
                                                  10. +
                                                  +

                                                  1.2.15. 创建F5与OpenStack组合蓝图

                                                  +

                                                  平台支持部署虚拟机和应用软件时,连同F5的Virtual Server、Pool以及SNAT +Pool等网络配置同时自动化部署下发,以下内容以OpenStack组件与F5组件结合为例向您介绍。

                                                  +

                                                  您可以根据以下步骤创建OpenStack虚拟机、OpenStack应用软件和F5组件结合的蓝图:

                                                  +
                                                    +
                                                  1. 选择「服务建模」-「蓝图设计」,点击「添加」

                                                    +
                                                  2. +
                                                  3. 输入蓝图名称及描述,点击「确定」,进入可视化蓝图编辑页面

                                                    +
                                                  4. +
                                                  5. 从左边的组件列表中选择OpenStack栏目下的Server和Network组件,分别将他们拖拽到右边的画布区域中

                                                    +
                                                  6. +
                                                  7. 定义网络:点击Server右边的network节点拖拽到Network的link节点上,建立Server和Network的网络连接

                                                    +
                                                  8. +
                                                  9. 然后再从左边的组件列表中选择F5栏目下的Pool、VirtualServer和SNATPool组件,分别将他们拖拽到右边的画布区域中

                                                    +
                                                  10. +
                                                  11. 点击Pool右边的application节点与Server左边的server节点相连接,点击VirtualServer右边的pool节点与Pool左边的virtualserver节点相连接,点击VirtualServer右边的snatpool与SNATPool左边的virtualserver节点相连接,如下图展示

                                                    +
                                                  12. +
                                                  13. 点击左上角「验证」,验证蓝图,提示这是一个合法的蓝图

                                                    +
                                                  14. +
                                                  15. 验证成功后点击左上角「保存」,保存成功后点击「返回」,将回到蓝图列表界面

                                                    +
                                                  16. +
                                                  17. 发布蓝图:在蓝图列表里选择刚编辑的蓝图,点击「发布」,然后点击「是」

                                                    +
                                                  18. +
                                                  19. 蓝图发布成功,状态变为已发布,蓝图创建成功,也可在验证成功后,直接点击「保存并发布」,发布蓝图

                                                    +
                                                  20. +
                                                  +

                                                  蓝图

                                                  +

                                                  1.3. 修改蓝图

                                                  +

                                                  您可以根据下面的步骤来修改蓝图:

                                                  +
                                                    +
                                                  1. 在左边导航选择「服务建模」-「蓝图设计」

                                                    +
                                                  2. +
                                                  3. 点击蓝图名称,则进入蓝图编辑界面,根据需要修改蓝图,点击「保存」

                                                    +
                                                  4. +
                                                  +

                                                  1.4. 复制蓝图

                                                  +

                                                  您可以根据下面的步骤来删除蓝图:

                                                  +
                                                    +
                                                  1. 在左边导航选择「服务建模」-「蓝图设计」

                                                    +
                                                  2. +
                                                  3. 选择蓝图列表中的某一蓝图后,菜单栏中的「复制」按钮将变得可用,点击「复制」,更改蓝图名称,点击「提交」,蓝图复制成功

                                                    +
                                                  4. +
                                                  +

                                                  1.5. 导入蓝图

                                                  +

                                                  您可以根据下面的步骤来导入蓝图:

                                                  +
                                                    +
                                                  1. 在左边导航选择「服务建模」-「蓝图设计」

                                                    +
                                                  2. +
                                                  3. 点击「导入」按钮

                                                    +
                                                  4. +
                                                  5. 填写蓝图名称,蓝图描述(选填),点击「浏览」,选择本地蓝图,点击「提交」

                                                    +
                                                  6. +
                                                  7. 蓝图导入成功

                                                    +
                                                  8. +
                                                  9. 蓝图导入成功时,蓝图中的组件被同步更新,如果组件类型已经在CMP中存在,则直接更新组件,组件版本增加1,您可以在「软件组件」-「历史版本」中查看组件版本详情;如果组件类型不存在,则直接新建对应的组件。

                                                    +
                                                  10. +
                                                  +

                                                  1.6. 导出蓝图

                                                  +

                                                  您可以根据下面的步骤来导出蓝图:

                                                  +
                                                    +
                                                  1. 在左边导航选择「服务建模」-「蓝图设计」

                                                    +
                                                  2. +
                                                  3. 选择蓝图列表中的某一蓝图后,菜单栏中的「导出」按钮将变得可用,点击「导出」

                                                    +
                                                  4. +
                                                  +

                                                  Zip格式的蓝图导出成功

                                                  +

                                                  1.7. 删除蓝图

                                                  +

                                                  您可以根据下面的步骤来删除蓝图:

                                                  +
                                                    +
                                                  1. 在左边导航选择「服务建模」-「蓝图设计」

                                                    +
                                                  2. +
                                                  3. 选中蓝图点击「删除」按钮,确认后蓝图删除成功

                                                    +
                                                  4. +
                                                  +

                                                  2. 蓝图发布

                                                  +

                                                  您可以根据下面的步骤来发布服务:

                                                  +
                                                    +
                                                  1. 在左边导航选择「服务建模」-「蓝图设计」

                                                    +
                                                  2. +
                                                  3. 选择列表里状态为"未发布"蓝图,点击操作按钮选「发布」,确认发布后,蓝图发布成功,列表中蓝图状态为"已发布"

                                                    +
                                                  4. +
                                                  +

                                                  2.1. 取消蓝图发布

                                                  +

                                                  您可以根据下面的步骤来取消已经发布的蓝图:

                                                  +
                                                    +
                                                  1. 在左边导航选择「服务建模」-「蓝图设计」

                                                    +
                                                  2. +
                                                  3. 选择列表里状态为"已发布"蓝图,点击操作按钮选「取消发布」,蓝图取消发布成功,列表中蓝图状态为 +"未发布"

                                                    +
                                                  4. +
                                                  + + +
                                                  + +
                                                  +
                                                  +
                                                  + +

                                                  results matching ""

                                                  +
                                                    + +
                                                    +
                                                    + +

                                                    No results matching ""

                                                    + +
                                                    +
                                                    +
                                                    + +
                                                    +
                                                    + +
                                                    + + + + + + + + + + + + + + +
                                                    + + +
                                                    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git "a/AdminDoc/05\346\234\215\345\212\241\345\273\272\346\250\241/\350\223\235\345\233\276\350\256\276\350\256\241.md" "b/AdminDoc/05\346\234\215\345\212\241\345\273\272\346\250\241/\350\223\235\345\233\276\350\256\276\350\256\241.md" new file mode 100644 index 0000000..8b1e52d --- /dev/null +++ "b/AdminDoc/05\346\234\215\345\212\241\345\273\272\346\250\241/\350\223\235\345\233\276\350\256\276\350\256\241.md" @@ -0,0 +1,610 @@ + **蓝图设计** + +软件架构师可以通过蓝图管理界面以可视化的方式设计出基于TOSCA标准的应用蓝图。蓝图是对应用的抽象。蓝图包含应用的拓扑、工作流以及策略三部分。蓝图是系统核心的概念,整个系统都是围绕着蓝图管理。 +# 蓝图 +您可以根据下面的步骤来查看当前租户的蓝图: + +1. 在左边导航栏选择「服务建模」-「蓝图设计」,出现蓝图列表。有添加、复制、发布、取消发布、导入、导出和删除操作,发布和取消发布操作根据蓝图状态动态可用,若蓝图处于已发布状态,在取消发布操作可用。发布操作同理 + +2. 蓝图列表可以按照名称、状态、创建时间排序。可以按照蓝图名称进行搜索 + +## 内建蓝图 + +目前SmartCMP内建了典型的vSphere、OpenStack、Kubernetes蓝图以方便您使用,您可以在创建服务配置时直接使用这些内建的蓝图。在左边导航栏选择「服务建模」-「蓝图设计」,出现蓝图列表,创建者为系统的蓝图为系统内建蓝图。 + +### 可视化编辑器概览 + +点击蓝图名称或添加新蓝图将进入可视化编辑器。 + +可视化编辑器包括以下几个部分: + +1. 组件列表面板: + 组件列表包含SmartCMP支持的云基础架构的各个组件,以及您自定的组件。在SmartCMP组件视图中出现的所有组件都在「自定义组件」面板中。您可以选中任意一个组件,然后将它拖放到画布中 + +2. 画布:可视化蓝图的核心部分,您可以将组件拖放到画布上,不同的组件之间可以在画布上建立连接以定义组件之间的关系 + +3. 基本信息面板:包括蓝图的名称,描述和图标信息。您可以对其进行更改 + +4. 输入面板:管理蓝图里的所有输入项 + +5. 输出面板:管理蓝图里的所有输出 + +6. 选中组件的组件信息面板:包含选定组件的基本信息、参数等 + +### 组件的添加与设置 {#组件的添加与设置} + +组件被拖放到画布上后,组件就被添加到蓝图中,在组件选中后,在组件信息面板里就可以编辑组件。编辑可以在以下子视图中进行: + +- 基本信息:可以在基本信息里看到组件的类型,同时可以对组件的名称进行编辑 + +- 参数:组件的参数列表,包括组件自身的参数和从父节点继承的参数,可以在这里对参数进行设置 + +- 功能:组件的功能列表,表示组件可以提供的功能,一旦有其它的组件需要功能列表里的功能作为前提条件,那么就可以建立其它组件到该组件的连接以提供该功能给其它组件 + +- 前提条件:组件需要的潜在功能列表,一旦列表里的功能被完全或者部分满足,该组件就可以运行工作,您在这里建立和其它组件的连接关系,以满足自身的需求 + +- 连接:组件的所有连接列表,一旦前提条件里的某个组件需要的功能被满足,对应的连接就会出现在这里,您可以在这里对这一连接进行编辑和删除操作 + +### 组件的删除 {#组件的删除} + +组件被拖放到画布上后,若要删除组件,在组件上单击鼠标右键,在弹出的上下文菜单中可以删除组件。 + +### 云平台组件及连接说明 {#云平台组件及连接说明} +|vSphere|云平台组件连接说明| +|:----:|:----:| + |Network| 与Server连接时将Server的Network节点与Network组件的link节点相连| + |Disk| 挂盘时需将Disk组件拖拽到Server内| + |Lswitch| NSX逻辑交换机可在完全脱离底层硬件的虚拟环境中再现交换功能(单播、多播和广播)。 将Lswitch与Server/WindowsServer节点相连| + |DLR |NSX逻辑(分布式)路由器,使用时将DLR与Lswitch相连| + | SecurityGroup| NSX安全组,使用时将SecurityGroup与Server/WindowsServer节点相连 + |LoadBalancer| 将VirtualServer内置于LoadBalancer内,使用时将LoadBalancer的edge节点与Edge相连| + |VirtualServer| 将VirtualServer内置于LoadBalancer内,使用时将VirtualServer的Server节点与Sever相连| + + + +|OpenStack|云平台组件连接说明| +|:----:|:----:| + |Network| 与Server连接时将Server的Network节点与Network组件的link节点相连| + |Router |路由,使用时将Router的Network节点与Network组件的route节点相连| + |FloatingIP |浮动IP:使用时与Server组件的floatingIP节点相连接| + |Volume| 使用时将Volume组件拖拽到Server内| + |SecurityGroup| 安全组,使用时将Server组件的Security_Group节点与SecurityGroup相连| + |LoadBalancer |负载均衡,使用时将Listener内置于LoadBalancer,通过Listener与Server相连| + |Firewall| 防火墙,单独部署| + |Listener| 负载均衡监听器,使用时将Listener内置于LoadBalancer,将Listener的Server节点与Server相连。LoadBalancer中可内置多个Listener, Listener可与多个Server相连| + |DNS| 域名系统,单独部署| + + + + +|PowerVC |云平台组件连接说明| +|:----:|:----:| +| Network| 与Server连接时将Server的Network节点与Network组件的link节点相连| +| Volume| 使用时将Volume组件拖拽到Server内| +|物理服务器 |Server Network | + + +|Kubernetes |云平台组件连接说明| +|:----:|:----:| +| Deployment| 为POD和ReplicaSet 提供了一个声明式定义方法,方便管理应用Container 容器,使用时将Containier组件拖拽到Deployment内| +| Nginx- Container| 容器,使用时将Nginx-Containier组件拖拽到Deployment内,使用时其config_Map连接到ConfigMap| +| Service| Service 定义了这样一种抽象:一个 Pod 的逻辑分组,一种可以访问它们的策略 — 通常称为微服务。使用时将该组件的Deployment节点连接至Deployment组件| +| Ingress| 给 service 提供集群外部访问的 URL、负载均衡、SSL 终止、HTTP 路由等。使用时将该组件的Service节点连接至Service组件| +| PersistentVolumeClaim| 请求存储资源。使用时将Container的pvc节点连接至该组件| +| ConfigMap| 用于保存配置数据的键值对,可用于保存单个属性或保存配置文件。使用时将Nginx-Container的ConfigMap节点连接至该组件| +| Secret| 解决密码、token、密钥等敏感数据的配置问题。使用时将Container的Secret节点连接至该组件| +| ServiceEndpoint |使用时将Container的service_endpoint节点和ServiceEndpoint的container节点相连,然后将ServiceEndpoint 的software_component节点与软件组件相连| +| DaemonSet| 保证在每个Node上都运行一个容器副本,常用来部署一些集群的日志、监控或者其他系统管理应用。使用时将Container内置于DaemonSet中| +| StatefulSet| 为了解决状态服务的问题,使用时将Container内置于StatefulSet中 + +Docker Container Docker容器,可在组件参数中填入镜像名称,与其他组件相连时将组件的Dependency节点与容器的feature相连 + + + +|阿里云| 云平台组件连接说明| +|:----:|:----:| +| SecurityGroup| 使用时将Instance组件的dependency节点与SecurityGroup相连| +| Disk |需将Disk组件拖拽到Instance内| +| LoadBalancer| 使用时将Instance组件的dependency节点与LoadBalancer相连| + +阿里专有云 ++ SecurityGroup 使用时将Instance组件的dependency节点与SecurityGroup相连 ++ Disk 需将Disk组件拖拽到Instance内 ++ LoadBalancer 使用时将Instance组件的dependency节点与LoadBalancer相连 + + +腾讯云 ++ SecurityGroup 使用时将Instance组件的Security_group节点与SecurityGroup组件的Security节点连接 + + +青云 ++ SecurityGroup 使用时将Instance组件的Security_group节点与SecurityGroup组件的Security节点连接 ++ Volume 请求存储资源。 ++ 物理服务器 Server Network ++ Disk 磁盘 ++ Network 网络 + +|AWS |云平台组件连接说明| +|:----:|:----:| +| Instance| 使用时将Instance组件的Security_Group节点与SecurityGroup相连| +| WindowsInstance |使用时将WindowsInstance组件的Security_Group节点与SecurityGroup相连| +| Volume| 请求存储资源。无节点| +| RDS| 数据库实例是在云中运行的独立数据库环境。无节点。| +| S3Bucket| 存储组件| +| SecurityGroup| 使用时将Instance组件的Security_Group节点与SecurityGroup相连| + +|Azure|云平台组件连接说明| +|:----:|:----:| + |Instance| 将Instance的virtualNetwork节点和VirtualNetwork的Link节点相连| + |WindowsInstance| 将WindowsInstance的virtualNetwork节点和VirtualNetwork的Link节点相连 | + |LoadBalancer |使用时,将LoadBalancerRule内置于LoadBalancer中,通过LoadBalancerRule与Instance相连| + |LoadBalancerRule| 使用时将LoadBalancerRule内置于LoadBalancer中,将LoadBalancerRule的instance节点与Instance的loadBalancer_rule相连| + |AvailabilitySet| 可用性集,将Instance的availability_set节点和AvailabilitySet的instance节点相连| + |BlobContainer| 块存储| + |Disk| 磁盘| + |SecurityGroup| 使用时将Instance组件的Security_group节点与SecurityGroup组件的Security节点连接| + + +|F5 云平台组件|连接说明| +|:----:|:----:| +| BIG-IP LoadBalancer| 负载均衡,使用时将该组件的Application节点连接至Server| +| SNATPool| 负载均衡,使用时将该组件的dependency节点连接至Server| +| Pool| 负载均衡,使用时将该组件的pool节点连接至Server| +| VirtualServer| 负载均衡,使用时将该组件的virtualserver节点连接至Server| + + +ACI ++ EPG + +软件组件 ++ 「软件组件」中自定义的软件 + +Exporter ++ 「软件组件」中自定义的Exporter + +抽象云组件 + +抽象云组件是SmartCMP设计的一个通用的方案, 能通过通用或者扩展的方式接入任何一个云平台的计算, 存储和网络. +为了提升这个方案的通用性, 提取每个云平台通用的属性, 这些属性包括Linux/Windows Server, Network/Subnet, Disk,这些属性对应下面这些云组件 ++ SecurityGroup ++ ObectStorage ++ LoadBalancer ++ Volume ++ Network ++ WindowCompute ++ Compute + + +### 连接的建立 {#连接的建立} + +1. 在组件信息面板-前提条件,添加连接。 + +2. 在蓝图中添加。画布上的所有组件和连接构成了蓝图。当一个组件被拖放到蓝图中后,组件的左边框和右边框上就会创建组件的「连接点」。在左边框上的连接点对应于组件的功能列表,在右边框上的连接点对应于组件的前提条件列表。因此,您可以用鼠标选择右边框上的「前提条件」连接点,这个时候,系统就会给出蓝图中所有潜在的可连接的「功能」连接点,您可以选择其中的某一个进行连接。 + +### 连接的编辑 {#连接的编辑} + +参见 [组件的添加和设置](https://cloudchef.github.io/doc/AdminDoc/05服务建模/软件组件.html) + +### 连接的删除 {#连接的删除} + +在组件信息面板中删除:任何类型的组件连接均可以在这里删除。在「组件信息面板」「连接」中选定连接,点击删除。 + +在蓝图中删除:选中某一个连接,单击鼠标右键,在弹出的上下文菜单里可以删除选中的连接。绝大部分的连接都可以这样删除。 + +>「Note」:虚机和网络组件,虚机和存储组件的连接是例外,不可以通过这种方式删除。 + +## 创建蓝图 + +### 创建vSphere单节点蓝图 {#创建vSphere单节点蓝图} + +1. 选择「服务建模」-「蓝图设计」,点击「添加」 + +2. 输入蓝图名称及描述,点击「确定」,进入可视化蓝图编辑页面 + +3. 从左边的组件列表中选择vSphere栏目下的Server和Network组件,分别将他们拖拽到右边的画布区域中 + +4. 定义网络:点击Server右边的network节点拖拽到Network的link节点上,建立server和network的网络连接 +![蓝图](../../picture/Admin/vSphere.png) + +5. 点击左上角「验证」,验证蓝图,提示这是一个合法的蓝图 + +6. 验证成功后点击左上角「保存」,保存成功后点击「返回」,将回到蓝图列表界面 + +7. 发布蓝图:在蓝图列表里选择刚编辑的vSphere蓝图,点击「发布」,然后点击「是」 + +8. 蓝图发布成功,状态变为已发布,vSphere虚拟机蓝图创建成功 + +9. 也可在验证成功后,直接点击「保存并发布」,发布蓝图 + +### 创建VMware NSX 蓝图 {#创建VMwareNSX蓝图} + +1. 选择「服务建模」-「蓝图设计」,点击「添加」 + +2. 输入蓝图名称及描述,点击「确定」,进入可视化蓝图编辑页面 + +3. 从左边的组件列表中选择vSphere栏目下的Server、Lswitch、DLR、SecurityGroup组件,分别将他们拖拽到右边的画布区域中 + +4. 点击Server右边的lswitch节点拖拽到Lswitch的节点上(显示绿色),建立server与Lswitch的连接 + +5. 点击DLR右边的lswitch节点拖拽到Lswitch的节点上,建立DLR与Lswitch的连接 + +6. 点击SecurityGroup右边的Server_WindowsServer节点拖拽到Server的节点上,建立SecurityGroup与Server的连接 + +![蓝图](../../picture/Admin/VMware NSX.png) + +7. 点击左上角「验证」,验证蓝图,提示这是一个合法的蓝图 + +8. 点击「保存并发布」,发布蓝图,提示蓝图发布成功 + +### 创建vSphere MySQL带监控蓝图 {#创建vSphereMySQL带监控蓝图} + +创建应用软件部署和带应用监控的蓝图,以部署一台vSphere上的虚拟机、并安装MySQL以及MySQL监控为例: + +1. 选择「服务建模」-「蓝图设计」,点击「添加」 + +2. 输入蓝图名称及描述,点击「确定」,进入可视化蓝图编辑页面 + +3. 从左边的组件列表中选择vSphere栏目下的Server和Network组件,分别将他们拖拽到右边的画布区域中 + +4. 定义网络:点击Server右边的network节点拖拽到Network的link节点上 + +5. 添加组件:从左边的组件列表中选择软件组件栏目下的MySQL和MySQLExporter组件,拖动至server节点框内,选择连接的名称,点击「完成」 + +6. 添加依赖关系:点击MySQLExporter右侧的节点拖拽到MySQL左侧的feature节点上,添加MySQLExporter与MySQL的依赖关系 + + +![蓝图](../../picture/Admin/vSphere MySQL.png) + +7. 验证蓝图:点击左上角「验证」,验证蓝图的合法性 + +8. 保存并发布:点击左上角的「保存并发布」,发布蓝图 + +9. 根据下章6.4服务配置步骤,选择刚发布的蓝图,发布服务目录 + +10. 服务目录申请,经业务组流程(审批)后部署,部署成功后可查看MySQL组件的监控信息 + +### 创建OpenStack单节点蓝图 {#创建OpenStack单节点蓝图} + +1. 选择「服务建模」-「蓝图设计」,点击「添加」 + +2. 输入蓝图名称及描述,点击「确定」,进入可视化蓝图编辑页面 + +3. 从左边的组件列表中选择OpenStack栏目下的Server和Network组件,分别将他们拖拽到右边的画布区域中 + +4. 定义网络:点击Server右边的network节点拖拽到Network的link节点上 + +![蓝图](../../picture/Admin/OpenStack.png) + +5. 验证蓝图:点击左上角「验证」,验证蓝图,提示这是一个合法的蓝图 + +6. 保存蓝图:验证成功后点击左上角「保存」,保存成功后点击「返回」,将回到蓝图列表界面 + +7. 发布蓝图:在蓝图列表里选择刚编辑的OpenStack蓝图,点击「发布」,然后点击「是」 + +8. 蓝图发布成功,状态变为已发布,Openstack虚拟机蓝图创建成功 + +9. 也可在验证成功后,直接点击「保存并发布」,发布蓝图 + +### 创建OpenStack Firewall蓝图 {#创建OpenStackFirewall蓝图} + +1. 选择「服务建模」-「蓝图设计」,点击「添加」 + +2. 输入蓝图名称及描述,点击「确定」,进入可视化蓝图编辑页面 + +3. 从左边的组件列表中选择Openstack栏目下的Firewall组件,将它拖拽到右边的画布区域中 +![蓝图](../../picture/Admin/Openstack Firewall.png) + +4. 验证蓝图:点击左上角「验证」,验证蓝图,提示这是一个合法的蓝图 + +5. 保存蓝图:验证成功后点击左上角「保存」,保存成功后点击「返回」,将回到蓝图列表界面 + +6. 发布蓝图:在蓝图列表里选择刚编辑的OpenStack + Firewall蓝图,点击「发布」,然后点击「是」 + +7. 蓝图发布成功,状态变为已发布,Openstack + Firewall虚拟机蓝图创建成功 + +8. 也可在验证成功后,直接点击「保存并发布」,发布蓝图 + +### 创建OpenStack LoadBalancer with SecurityGroup蓝图 {#创建OpenStackLoadBalancerWithSecurityGroup蓝图} + +1. 选择「服务建模」-「蓝图设计」,点击「添加」 + +2. 输入蓝图名称及描述,点击「确定」,进入可视化蓝图编辑页面 + +3. 从左边的组件列表中选择Openstack栏目下的Server、Network将它们拖拽到右边的画布区域中,点击Server右边的network节点拖拽到Network的link节点上,建立Server节点和Network的连接 + +4. 从左边组件列表Openstack栏目下,选择LoadBalancer组件到右边的画布区域,再将Openstack栏目下Listener拖动至LoadBalancer节点框内,点击「完成」,建立负载均衡监听器(Listener)和负载均衡器(LoadBalancer)的内置关系 + +5. 点击Listener右边的server节点拖拽至Server的server节点上,建立Listener和Server节点的关联关系 + +6. 从左边组件列表Openstack栏目下,拖动SecurityGroup组件到右边的画布区域,点击Server组件右边的security\_group节点到SecurityGroup左边的security节点上,建立Server与SecurityGroup的连接关系 + +![蓝图](../../picture/Admin/OpenStack LoadBalancer with SecurityGroup.png) + +7. 验证蓝图:点击左上角「验证」,验证蓝图,提示这是一个合法的蓝图 + +8. 保存蓝图:验证成功后点击左上角「保存」,保存成功后点击「返回」,将回到蓝图列表界面 + +9. 发布蓝图:在蓝图列表里选择刚编辑的OpenStack LoadBalancer with + SecurityGroup蓝图,点击「发布」,然后点击「是」 + +10. 蓝图发布成功,状态变为已发布,OpenStack LoadBalancer with + SecurityGroup虚拟机蓝图创建成功 + +11. 也可在验证成功后,直接点击「保存并发布」,发布蓝图 + +### 创建OpenStack FloatingIP蓝图 {#创建OpenStackFloatingIP蓝图} + +1. 选择「服务建模」-「蓝图设计」,点击「添加」 + +2. 输入蓝图名称及描述,点击「确定」,进入可视化蓝图编辑页面 + +3. 从左边的组件列表中选择Openstack栏目下的FloatingIP,拖拽到右边的画布区域中 + +4. 验证蓝图:点击左上角「验证」,验证蓝图,提示这是一个合法的蓝图 + +5. 保存蓝图:验证成功后点击左上角「保存」,保存成功后点击「返回」,将回到蓝图列表界面 + +6. 发布蓝图:在蓝图列表里选择刚编辑的OpenStack + FloatingIP蓝图,点击「发布」,然后点击「是」 + +7. 蓝图发布成功,状态变为已发布,OpenStack + FloatingIP虚拟机蓝图创建成功 + +8. 也可在验证成功后,直接点击「保存并发布」,发布蓝图 + +### 创建OpenStack DNS蓝图 {#创建OpenStackDNS蓝图} + +1. 选择「服务建模」-「蓝图设计」,点击「添加」 + +2. 输入蓝图名称及描述,点击「确定」,进入可视化蓝图编辑页面 + +3. 从左边的组件列表中选择Openstack栏目下的DNS,拖拽到右边的画布区域中 + +![蓝图](../../picture/Admin/DNS.png) + +4. 验证蓝图:点击左上角「验证」,验证蓝图,提示这是一个合法的蓝图 + +5. 保存蓝图:验证成功后点击左上角「保存」,保存成功后点击「返回」,将回到蓝图列表界面 + +6. 发布蓝图:在蓝图列表里选择刚编辑的OpenStack + DNS蓝图,点击「发布」,然后点击「是」 + +7. 蓝图发布成功,状态变为已发布,OpenStack DNS虚拟机蓝图创建成功 + +8. 也可在验证成功后,直接点击「保存并发布」,发布蓝图 + +### 创建Kubernetes蓝图 {#创建Kubernetes蓝图} + +1. 选择「服务建模」-「蓝图设计」,点击「添加」 + +2. 输入蓝图名称及描述,点击「确定」,进入可视化蓝图编辑页面 + +3. 从左边的组件列表中选择Kubernetes栏目下的Service和Deployment组件拖拽到右边的画布区域中 + +4. 拖拽Service组件上的Deployment节点至Deployment组件,建立Service与Deployment的依赖关系 + +5. 添加Container组件:从左边的组件列表中选择Kubernetes栏目下的Container组件,拖动至Deployment节点框内,选择连接的名称,点击「完成」,建立Container与Deployment的依赖关系 + +6. 添加PersistentVolumeClaim组件:从左边的组件列表中选择Kubernetes栏目下PersistentVolumeClaim组件,拖动至右边的画布区域。拖拽Container组件的pvc节点至PersistentVolumeClaim,建立Container与PersistentVolumeClaim的依赖关系 + + +![蓝图](../../picture/Admin/Kubernetes.png) +7. 验证蓝图:点击左上角「验证」,验证蓝图,提示这是一个合法的蓝图验证成功后点击左上角「保存」,保存成功后点击「返回」 + +8. 保存蓝图:验证成功后点击左上角「保存」,保存成功后点击「返回」,将回到蓝图列表界面 + +9. 发布蓝图:在蓝图列表里选择刚编辑的Kubernetes蓝图,点击「发布」,然后点击「是」 + +10. 蓝图发布成功,状态变为已发布,Kubernetes蓝图创建成功 + +11. 也可在验证成功后,直接点击「保存并发布」,发布蓝图 + +### 创建阿里云蓝图 {#创建阿里云蓝图} + +1. 选择「服务建模」-「蓝图设计」,点击「添加」 + +2. 输入蓝图名称及描述,点击「确定」,进入可视化蓝图编辑页面 + +3. 从左边的组件列表中选择阿里云栏目下的Instance和SecurityGroup组件拖拽到右边的画布区域中 + +4. 拖拽Instance组件上的Dependency节点至SecurityGroup组件的feature节点,建立Instance与SecurityGroup的依赖关系 + +![蓝图](../../picture/Admin/Ali.png) + +>「Note」若需在服务配置时新建安全组,则在SecurityGroup的参数下,去掉勾选"使用已有资源" + + + +5. 验证蓝图:点击左上角「验证」,验证蓝图,提示这是一个合法的蓝图验证成功后点击左上角「保存」,保存成功后点击「返回」 + +6. 保存蓝图:验证成功后点击左上角「保存」保存成功后点击「返回」,将回到蓝图列表界面 + +7. 发布蓝图:在蓝图列表里选择刚编辑的阿里云蓝图,点击「发布」,然后点击「是」 + +8. 蓝图发布成功,状态变为已发布,阿里云蓝图创建成功 + +9. 也可在验证成功后,直接点击「保存并发布」,发布蓝图 + +### 创建Azure蓝图 {#创建Azure蓝图} + +1. 选择「服务建模」-「蓝图设计」,点击「添加」 + +2. 输入蓝图名称及描述,点击「确定」,进入可视化蓝图编辑页面 + +3. 从左边的组件列表中选择Azure栏目下的VirtualNetwork和Instance组件拖拽到右边的画布区域中,拖拽Instance组件上的virtualNetwork节点至VirtualNetwork组件的link节点,建立Instance与VirtualNetwork的依赖关系 + +4. 再选择Azure栏目下的AvailabilitySet、 + SecurityGroup、BlobContainer组件拖拽到右边的画布区域中,拖拽Instance组件上的availability_set节点至AvailabilitySet组件的instance节点,拖拽Instance组件上的security_group节点至SecurityGroup组件的security节点,建立Instance与Availability、SecurityGroup的依赖关系 + +5. 再选择Azure栏目下的LoadBalancer组件拖拽到右边的画布区域中,再将LoadBalancerRule拖动至LoadBalancer节点框内,点击「完成」,建立负载均衡规则(LoadBalancerRule)和负载均衡器(LoadBalancer)的内置关系 + +6. 拖拽LoadBalancerRule组件上的instance节点至Instance组件的loadbalancer_rule节点,建立Instance与LoadBalancerRule的依赖关系 + +![蓝图](../../picture/Admin/Azure.png) +7. 验证蓝图:点击左上角「验证」,验证蓝图,提示这是一个合法的蓝图验证成功后点击左上角「保存」,保存成功后点击「返回」 + +8. 保存蓝图:验证成功后点击左上角「保存」,保存成功后点击「返回」,将回到蓝图列表界面 + +9. 发布蓝图:在蓝图列表里选择刚编辑的阿里云蓝图,点击「发布」,然后点击「是」 + +10. 蓝图发布成功,状态变为已发布,阿里云蓝图创建成功 + +11. 也可在验证成功后,直接点击「保存并发布」,发布蓝图 + +### 创建AWS蓝图 {#创建AWS蓝图} + +1. 选择「服务建模」-「蓝图设计」,点击「添加」 + +2. 输入蓝图名称及描述,点击「确定」,进入可视化蓝图编辑页面 + +3. 从左边的组件列表中选择AWS栏目下的Instance和SecurityGroup组件拖拽到右边的画布区域中,拖拽Instance组件上的security_group节点至SecurityGroup组件的security_group节点,建立Instance与SecurityGroup的依赖关系 + +![蓝图](../../picture/Admin/AWS.png) + +4. 验证蓝图:点击左上角「验证」,验证蓝图,提示这是一个合法的蓝图验证成功后点击左上角「保存」,保存成功后点击「返回」 + +5. 保存蓝图:验证成功后点击左上角「保存」,保存成功后点击「返回」,将回到蓝图列表界面 + +6. 发布蓝图:在蓝图列表里选择刚编辑的AWS蓝图,点击「发布」,然后点击「是」 + +7. 蓝图发布成功,状态变为已发布,AWS蓝图创建成功 + +8. 也可在验证成功后,直接点击「保存并发布」,发布蓝图 + +### 创建青云蓝图 {#创建青云蓝图} + +1. 选择「服务建模」-「蓝图设计」,点击「添加」 + +2. 输入蓝图名称及描述,点击「确定」,进入可视化蓝图编辑页面 + +3. 从左边的组件列表中选择青云栏目下的WindowsInstance和SecurityGroup组件拖拽到右边的画布区域中,拖拽WindowsInstance组件上的security\_group节点至SecurityGroup组件的security节点,建立WindowsInstance与SecurityGroup的依赖关系 + +![蓝图](../../picture/Admin/Qcloud.png) +4. 验证蓝图:点击左上角「验证」,验证蓝图,提示这是一个合法的蓝图验证成功后点击左上角「保存」,保存成功后点击「返回」 + +5. 保存蓝图:验证成功后点击左上角「保存」,保存成功后点击「返回」,将回到蓝图列表界面 + +6. 发布蓝图:在蓝图列表里选择刚编辑的青云蓝图,点击「发布」,然后点击「是」 + +7. 蓝图发布成功,状态变为已发布,青云蓝图创建成功 + +8. 也可在验证成功后,直接点击「保存并发布」,发布蓝图 + +### 创建Hyper-V蓝图 {#创建Hyper-v蓝图} + +1. 选择「服务建模」-「蓝图设计」,点击「添加」 + +2. 输入Hyper-V蓝图名称及描述,点击「确定」,进入可视化蓝图编辑页面 + +3. 从左边的组件列表中选择Hyper-V栏目下的WindowsInstance和NetworkAdapter组件,分别将他们拖拽到右边的画布区域中 + +4. 定义网络:点击WindowsInstance右边的network节点,将其拖拽到NetworkAdapter的link节点上,建立WindowsInstance和NetworkAdapter的网络连接 + +![蓝图](../../picture/Admin/Hyper-V.png) + + +5. 点击左上角「验证」,验证蓝图,提示这是一个合法的蓝图 + +6. 验证成功后点击左上角「保存」,保存成功后点击「返回」,将回到蓝图列表界面 + +7. 发布蓝图:在蓝图列表里选择刚编辑的Hyper-V蓝图,点击「发布」,然后点击「是」 + +8. 蓝图发布成功,状态变为已发布,vSphere虚拟机蓝图创建成功 + +9. 也可在验证成功后,直接点击「保存并发布」,发布蓝图 + +### 创建F5与OpenStack组合蓝图 {#创建F5与OpenStack组合蓝图} + +平台支持部署虚拟机和应用软件时,连同F5的Virtual Server、Pool以及SNAT +Pool等网络配置同时自动化部署下发,以下内容以OpenStack组件与F5组件结合为例向您介绍。 + +您可以根据以下步骤创建OpenStack虚拟机、OpenStack应用软件和F5组件结合的蓝图: + +1. 选择「服务建模」-「蓝图设计」,点击「添加」 + +2. 输入蓝图名称及描述,点击「确定」,进入可视化蓝图编辑页面 + +3. 从左边的组件列表中选择OpenStack栏目下的Server和Network组件,分别将他们拖拽到右边的画布区域中 + +4. 定义网络:点击Server右边的network节点拖拽到Network的link节点上,建立Server和Network的网络连接 + +5. 然后再从左边的组件列表中选择F5栏目下的Pool、VirtualServer和SNATPool组件,分别将他们拖拽到右边的画布区域中 + +6. 点击Pool右边的application节点与Server左边的server节点相连接,点击VirtualServer右边的pool节点与Pool左边的virtualserver节点相连接,点击VirtualServer右边的snatpool与SNATPool左边的virtualserver节点相连接,如下图展示 + +7. 点击左上角「验证」,验证蓝图,提示这是一个合法的蓝图 + +8. 验证成功后点击左上角「保存」,保存成功后点击「返回」,将回到蓝图列表界面 + +9. 发布蓝图:在蓝图列表里选择刚编辑的蓝图,点击「发布」,然后点击「是」 + +10. 蓝图发布成功,状态变为已发布,蓝图创建成功,也可在验证成功后,直接点击「保存并发布」,发布蓝图 + +![蓝图](../../picture/Admin/F5与OpenStack.png) + +## 修改蓝图 + +您可以根据下面的步骤来修改蓝图: + +1. 在左边导航选择「服务建模」-「蓝图设计」 + +2. 点击蓝图名称,则进入蓝图编辑界面,根据需要修改蓝图,点击「保存」 + +## 复制蓝图 + +您可以根据下面的步骤来删除蓝图: + +1. 在左边导航选择「服务建模」-「蓝图设计」 + +2. 选择蓝图列表中的某一蓝图后,菜单栏中的「复制」按钮将变得可用,点击「复制」,更改蓝图名称,点击「提交」,蓝图复制成功 + +## 导入蓝图 + +您可以根据下面的步骤来导入蓝图: + +1. 在左边导航选择「服务建模」-「蓝图设计」 + +2. 点击「导入」按钮 + +3. 填写蓝图名称,蓝图描述(选填),点击「浏览」,选择本地蓝图,点击「提交」 + +4. 蓝图导入成功 + +5. 蓝图导入成功时,蓝图中的组件被同步更新,如果组件类型已经在CMP中存在,则直接更新组件,组件版本增加1,您可以在「软件组件」-「历史版本」中查看组件版本详情;如果组件类型不存在,则直接新建对应的组件。 + +## 导出蓝图 + +您可以根据下面的步骤来导出蓝图: + +1. 在左边导航选择「服务建模」-「蓝图设计」 + +2. 选择蓝图列表中的某一蓝图后,菜单栏中的「导出」按钮将变得可用,点击「导出」 + +Zip格式的蓝图导出成功 + +## 删除蓝图 + +您可以根据下面的步骤来删除蓝图: + +1. 在左边导航选择「服务建模」-「蓝图设计」 + +2. 选中蓝图点击「删除」按钮,确认后蓝图删除成功 + +# 蓝图发布 + +您可以根据下面的步骤来发布服务: + +1. 在左边导航选择「服务建模」-「蓝图设计」 + +2. 选择列表里状态为"未发布"蓝图,点击操作按钮选「发布」,确认发布后,蓝图发布成功,列表中蓝图状态为"已发布" + +## 取消蓝图发布 + +您可以根据下面的步骤来取消已经发布的蓝图: + +1. 在左边导航选择「服务建模」-「蓝图设计」 + +2. 选择列表里状态为"已发布"蓝图,点击操作按钮选「取消发布」,蓝图取消发布成功,列表中蓝图状态为 + "未发布" diff --git "a/AdminDoc/05\346\234\215\345\212\241\345\273\272\346\250\241/\350\241\250\345\215\225\351\205\215\347\275\256.html" "b/AdminDoc/05\346\234\215\345\212\241\345\273\272\346\250\241/\350\241\250\345\215\225\351\205\215\347\275\256.html" new file mode 100644 index 0000000..fbf4641 --- /dev/null +++ "b/AdminDoc/05\346\234\215\345\212\241\345\273\272\346\250\241/\350\241\250\345\215\225\351\205\215\347\275\256.html" @@ -0,0 +1,1072 @@ + + + + + + + 表单配置 · 发行说明 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
                                                    +
                                                    + + + + + + + + +
                                                    + +
                                                    + +
                                                    + + + + + + + + +
                                                    +
                                                    + +
                                                    +
                                                    + +
                                                    + +

                                                    表单配置

                                                    +

                                                    在创建或配置服务时,可以选择系统内置的表单(IP池创建表单、项目创建表单使用户可自动化创建IP池、项目等配置),如果您需要修改或添加额外的字段信息供用户在申请时填写,可以通过表单设计器,自定义配置表单,例如:申请新项目、申请邮箱账户、申请资源池、添加环境管理员。 +系统内置表单:

                                                    +
                                                      +
                                                    • 创建IP池,定义了用户申请创建一个新的IP池时需要输入的信息。
                                                    • +
                                                    • 创建项目,定义了用户申请创建一个新的项目时需要输入的信息。
                                                    • +
                                                    • 上传附件,上传所需要的材料提供审批的时候使用。文件大小不能超过500KB。
                                                    • +
                                                    • 资源池扩容,定义了用户申请资源池扩容时需要输入的信息。
                                                    • +
                                                    +

                                                    下面为您介绍新增表单的具体操作步骤。 +表单配置的字段完成之后,您可以在服务目录申请服务时自定义填写。

                                                    +

                                                    1. 添加表单

                                                    +

                                                    在左侧导航选择「服务建模」-「表单配置」,在表单配置列表界面点击添加,输入表单基本信息(表单名称和表单描述);在表单内容处输入Schema的JSON配置,在UI上需要支持JSON的语法高亮;在表单预览处可查看自定义的表单内容。例如:添加环境管理员,定义字段信息,表单预览查看字段

                                                    +

                                                    环境管理员

                                                    +
                                                      +
                                                    • 环境管理员的来源和职责:环境管理员从测试人员中进行指定;测试人员与“测试业务组”进行关联。环境管理员只拥有查看和操作“与本人关联虚拟机”的权限(即当为vSphere服务配置环境管理员时,环境管理员会与该服务部署的虚拟机进行关联)

                                                      +
                                                    • +
                                                    • 通过环境管理员的设置,实现对服务部署的扩展,更好的控制服务部署和操作虚拟机

                                                      +
                                                    • +
                                                    • 在服务配置时,为服务绑定 环境管理员表单

                                                      +
                                                    • +
                                                    • 在服务申请时,指定环境管理员、选择环境类型(后台结合企业业务需求提前配置)、系统属性和应用属性。

                                                      +
                                                    • +
                                                    +
                                                    +

                                                    「Note」 支持灵活扩展,支持您根据业务需求,配置更多满足您需求的字段信息。

                                                    +
                                                    +

                                                    2. 编辑、删除表单

                                                    +

                                                    在左侧导航选择「服务建模」-「表单配置」,在表单配置列表界面点击编辑,即可修改表单基本信息(表单名称和表单描述);在表单内容处修改Schema的JSON配置;在表单预览处可查看自定义的表单内容。

                                                    +

                                                    在左侧导航选择「服务建模」-「表单配置」,在表单配置列表界面点击删除,即可删除表单。

                                                    + + +
                                                    + +
                                                    +
                                                    +
                                                    + +

                                                    results matching ""

                                                    +
                                                      + +
                                                      +
                                                      + +

                                                      No results matching ""

                                                      + +
                                                      +
                                                      +
                                                      + +
                                                      +
                                                      + +
                                                      + + + + + + + + + + + + + + +
                                                      + + +
                                                      + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git "a/AdminDoc/05\346\234\215\345\212\241\345\273\272\346\250\241/\350\241\250\345\215\225\351\205\215\347\275\256.md" "b/AdminDoc/05\346\234\215\345\212\241\345\273\272\346\250\241/\350\241\250\345\215\225\351\205\215\347\275\256.md" new file mode 100644 index 0000000..9b585b2 --- /dev/null +++ "b/AdminDoc/05\346\234\215\345\212\241\345\273\272\346\250\241/\350\241\250\345\215\225\351\205\215\347\275\256.md" @@ -0,0 +1,35 @@ +**表单配置** + +在创建或配置服务时,可以选择系统内置的表单(IP池创建表单、项目创建表单使用户可自动化创建IP池、项目等配置),如果您需要修改或添加额外的字段信息供用户在申请时填写,可以通过表单设计器,自定义配置表单,例如:申请新项目、申请邮箱账户、申请资源池、添加环境管理员。 +系统内置表单: ++ 创建IP池,定义了用户申请创建一个新的IP池时需要输入的信息。 ++ 创建项目,定义了用户申请创建一个新的项目时需要输入的信息。 ++ 上传附件,上传所需要的材料提供审批的时候使用。文件大小不能超过500KB。 ++ 资源池扩容,定义了用户申请资源池扩容时需要输入的信息。 + +下面为您介绍新增表单的具体操作步骤。 +表单配置的字段完成之后,您可以在服务目录申请服务时自定义填写。 + +# 添加表单 + + 在左侧导航选择「服务建模」-「表单配置」,在表单配置列表界面点击添加,输入表单基本信息(表单名称和表单描述);在表单内容处输入Schema的JSON配置,在UI上需要支持JSON的语法高亮;在表单预览处可查看自定义的表单内容。例如:添加环境管理员,定义字段信息,表单预览查看字段 + +![环境管理员](../../picture/Admin/环境管理员.png) + ++ 环境管理员的来源和职责:环境管理员从测试人员中进行指定;测试人员与“测试业务组”进行关联。环境管理员只拥有查看和操作“与本人关联虚拟机”的权限(即当为vSphere服务配置环境管理员时,环境管理员会与该服务部署的虚拟机进行关联) + ++ 通过环境管理员的设置,实现对服务部署的扩展,更好的控制服务部署和操作虚拟机 + ++ 在服务配置时,为服务绑定 环境管理员表单 + ++ 在服务申请时,指定环境管理员、选择环境类型(后台结合企业业务需求提前配置)、系统属性和应用属性。 + +>「Note」 支持灵活扩展,支持您根据业务需求,配置更多满足您需求的字段信息。 + + + +# 编辑、删除表单 + +在左侧导航选择「服务建模」-「表单配置」,在表单配置列表界面点击编辑,即可修改表单基本信息(表单名称和表单描述);在表单内容处修改Schema的JSON配置;在表单预览处可查看自定义的表单内容。 + +在左侧导航选择「服务建模」-「表单配置」,在表单配置列表界面点击删除,即可删除表单。 diff --git "a/AdminDoc/06\344\272\221\346\234\215\345\212\241\347\256\241\347\220\206/README.md" "b/AdminDoc/06\344\272\221\346\234\215\345\212\241\347\256\241\347\220\206/README.md" new file mode 100644 index 0000000..a80e9e5 --- /dev/null +++ "b/AdminDoc/06\344\272\221\346\234\215\345\212\241\347\256\241\347\220\206/README.md" @@ -0,0 +1,5 @@ +**云服务管理** + +通过SmartCMP,普通用户不仅能够完成用户自服务申请云资源,云资源自动化部署交付,也可以自助地进行运维操作、查看性能监控信息,以及设置告警。同时,SmartCMP将基于管理员配置的策略对资源自动进行到期回收,实现生命周期管理,避免闲置、浪费。 + +![全生命周期管理示例](../../picture/Admin/资源全生命周期管理.png) diff --git "a/AdminDoc/06\344\272\221\346\234\215\345\212\241\347\256\241\347\220\206/index.html" "b/AdminDoc/06\344\272\221\346\234\215\345\212\241\347\256\241\347\220\206/index.html" new file mode 100644 index 0000000..ad5fba8 --- /dev/null +++ "b/AdminDoc/06\344\272\221\346\234\215\345\212\241\347\256\241\347\220\206/index.html" @@ -0,0 +1,1045 @@ + + + + + + + 云服务管理 · 发行说明 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
                                                      +
                                                      + + + + + + + + +
                                                      + +
                                                      + +
                                                      + + + + + + + + +
                                                      +
                                                      + +
                                                      +
                                                      + +
                                                      + +

                                                      云服务管理

                                                      +

                                                      通过SmartCMP,普通用户不仅能够完成用户自服务申请云资源,云资源自动化部署交付,也可以自助地进行运维操作、查看性能监控信息,以及设置告警。同时,SmartCMP将基于管理员配置的策略对资源自动进行到期回收,实现生命周期管理,避免闲置、浪费。

                                                      +

                                                      全生命周期管理示例

                                                      + + +
                                                      + +
                                                      +
                                                      +
                                                      + +

                                                      results matching ""

                                                      +
                                                        + +
                                                        +
                                                        + +

                                                        No results matching ""

                                                        + +
                                                        +
                                                        +
                                                        + +
                                                        +
                                                        + +
                                                        + + + + + + + + + + + + + + +
                                                        + + +
                                                        + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git "a/AdminDoc/06\344\272\221\346\234\215\345\212\241\347\256\241\347\220\206/\346\210\221\347\232\204\351\203\250\347\275\262.html" "b/AdminDoc/06\344\272\221\346\234\215\345\212\241\347\256\241\347\220\206/\346\210\221\347\232\204\351\203\250\347\275\262.html" new file mode 100644 index 0000000..406230c --- /dev/null +++ "b/AdminDoc/06\344\272\221\346\234\215\345\212\241\347\256\241\347\220\206/\346\210\221\347\232\204\351\203\250\347\275\262.html" @@ -0,0 +1,1650 @@ + + + + + + + 我的部署 · 发行说明 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
                                                        +
                                                        + + + + + + + + +
                                                        + +
                                                        + +
                                                        + + + + + + + + +
                                                        +
                                                        + +
                                                        +
                                                        + +
                                                        + +

                                                        我的部署

                                                        +

                                                        1. 服务部署

                                                        +

                                                        服务部署页面可查看服务部署的状态、详情、监控等。用户在「服务目录」选择蓝图自服务申请或服务目录申请后,可在服务部署界面查看部署的服务状态,若该部署有审批流程,在服务部署页面可跳转至审批页面,查看当前的审批流程;若无审批,则可查看该部署详情信息。

                                                        +
                                                          +
                                                        1. 在左侧导航栏选择「我的部署」-「服务部署」后,用户将会看到服务部署列表,点击高级搜索,可根据业务组、阶段(运行、操作进行中、关闭、操作失败、已取消、部署审批中 +)、状态(正常、异常)、所有者、项目进行筛选,也可直接进行搜索操作

                                                          +
                                                        2. +
                                                        3. 在服务部署列表中,用户可以选中一个或者多个服务部署快速进行一些操作,包括「停止服务部署」「安装软件」「复制服务部署」「延长过期时间」「卸除服务部署」「删除管理信息」「更改所有者」,更多操作如:「更改项目」「更改业务组」和「伸缩」

                                                          +
                                                        4. +
                                                        5. 点击服务部署名称,可查看该服务部署的详细信息。服务部署详情信息界面包括「基本信息」「服务部署拓扑」「操作历史」「监控」(对云主机和应用组件的监控)以及顶部的运维操作

                                                          +
                                                        6. +
                                                        7. 「基本信息」包括服务部署的名称、业务组、项目、蓝图、资源池、云平台,以及费用、状态、时间等相关信息。还包括该服务部署的输入参数列表以及输出结果信息。服务部署失败后,某些场景可线下修复,修复成功后支持更改服务部署状态,将操作失败更改为运行

                                                          +
                                                        8. +
                                                        9. 「服务部署拓扑」包括服务部署的蓝图、详情和流程信息。鼠标悬停至服务拓扑图中,将显示该节点的关键信息,如Server节点将显示云主机名称、客户操作系统、IP地址、内存、磁盘总空间、vCPU数量、CPU使用率、内存使用率等

                                                          +
                                                        10. +
                                                        11. 「操作历史」显示该服务部署的操作历史记录

                                                          +
                                                        12. +
                                                        13. 「监控」显示对该部署中有的组件应用的监控信息

                                                          +
                                                        14. +
                                                        +

                                                        1.1. 服务部署运维操作

                                                        +

                                                        在服务部署列表界面或点击服务部署名称进入服务部署详情界面,均可对服务部署做运维操作。服务部署的运维操作由业务组和服务配置进行控制。可在「业务组」-「服务部署操作许可」中选择启用或不启用相应的运维操作给相应的角色,若启用还可指定是否需要审批,以及其审批模板。若启用,则可以在「服务建模」-「服务配置」-「服务部署操作许可」中选择为该服务继承业务组配置或在业务组配置基础上,对运维操作进行删减。在展示页面对服务部署运维的更多操作进行分组。

                                                        +

                                                        1.1.1. 刷新状态

                                                        +

                                                        状态为遗失的虚拟机无法查看详情,在某些业务场景中,遗失的虚拟机会重新加入平台中,需要支持能够手动刷新状态。同时,也要能够支持其他云资源状态的刷新。

                                                        +
                                                          +
                                                        • 支持批量刷新,在服务部署列表中,选中一个或多个部署
                                                        • +
                                                        • 点击“刷新状态”按钮,可以手工刷新状态。刷新状态的按钮放在第一个。
                                                        • +
                                                        • 刷新后,后台更新每个服务部署的状态还包括:规格配置的修改,磁盘的增加,IP地址的修改,刷新的结果通过通知返回。刷新的操作会记录到操作历史中。
                                                        • +
                                                        • 在云主机中进行运维操作时,SmartCMP能够根据虚拟机的UUID重新刷新虚拟机的正确状态
                                                        • +
                                                        +

                                                        1.1.2. 启动服务部署

                                                        +

                                                        若服务部署处于关闭状态,则「启动服务部署」操作可用。可以通过设置「启用定时」,从而定时(将来某一时刻)触发此项任务。

                                                        +

                                                        1.1.3. 停止服务部署

                                                        +

                                                        若服务部署处于正在运行的状态,则可以「停止服务部署」,该操作将对该服务部署下的所有虚机进行关机操作。可以通过设置「启用定时」,从而定时(将来某一时刻)触发此项任务。

                                                        +

                                                        1.1.4. 安装软件

                                                        +

                                                        选择服务部署下的云主机,并选择需要安装的软件。该软件列表来源于「软件组件」,可对软件的属性键值进行更改。

                                                        +

                                                        1.1.5. 更改组织信息

                                                        +

                                                        更改所有者

                                                        +

                                                        更改服务部署的所有者,将会同时改变该服务部署下的所有虚机的所有者。现在目标所有者,该所有者为该业务组下的成员。

                                                        +

                                                        更改项目

                                                        +

                                                        更改服务部署的所属项目,将会同时改变该服务部署下的所有虚机的所属项目。选择目标项目,并选择该项目下的用户。

                                                        +

                                                        更改业务组

                                                        +

                                                        将会把该服务部署下的所有虚机同时更改到新业务组中,并修改所有者等相关信息。选择目标业务组,项目(可选),所有者(该业务组下的成员),资源池(该业务组下的资源池)。如果资源池列表为空,表示该业务组上没有可用的资源。

                                                        +

                                                        1.1.6. 扩展与收缩

                                                        +

                                                        伸缩

                                                        +

                                                        扩展当前部署下的实例,静态IP部署的Server不支持伸缩。至少伸缩1个实例,最多6个。可以通过设置「启用定时」,从而定时(将来某一时刻)触发此项任务。 +复制服务部署 +服务部署成功后,可将该服务部署整体的应用环境复制至其他云平台或克隆至当前云平台。

                                                        +

                                                        常见应用场景:例如将vSphere服务部署复制至阿里云,vSphere至vSphere,阿里云至阿里专有云

                                                        +

                                                        操作步骤:

                                                        +
                                                          +
                                                        1. 选择目标服务:选择目标业务组、项目(可选)、所有者以及服务,选择当前实例节点作为模板来复制/新建到所选的服务拓扑图中的目标节点

                                                          +
                                                        2. +
                                                        3. 配置参数:填写服务部署名称(若业务组有规则将根据业务组规则自动生成)、服务部署租用到期时间,以及配置该服务拓扑图中的其他节点参数,针对每个计算节点,可以选择复制或者新建(从模板部署一台新机器)

                                                          +
                                                        4. +
                                                        5. 点击提交,等待执行。

                                                          +
                                                        6. +
                                                        +
                                                        +

                                                        「Note」若是跨云复制,则需要第三方支持

                                                        +
                                                        +

                                                        延长过期时间

                                                        +

                                                        延长服务部署的租用到期时间,点击将显示业务组中设置的最大可延期次数以及已延期次数,选择延长到哪一时间到期,精确到分钟。

                                                        +

                                                        1.1.7. 删除

                                                        +

                                                        卸除服务部署

                                                        +

                                                        服务部署后,可卸除该服务部署下的云资源。卸除服务部署将删除在SmartCMP中新建的所有资源。若该服务部署中包含共享资源,将不删除共享资源;若该服务部署包含已有资源,如LoadBalance"使用已有资源",将不删除已有资源;若导入资源后,您是该资源的Owner,可删除导入资源。

                                                        +

                                                        删除管理信息

                                                        +

                                                        删除该服务部署以及所属虚拟机在SmartCMP上的相关信息,在相关云平台中仍然保留,不进行删除。

                                                        +

                                                        删除节点 +可在服务部署后删除计算节点、存储和软件组件。点击「删除节点」,将展示该服务部署名称、该部署下的所有计算节点、存储和软件组件节点以及部署状态,可单选或多选节点进行删除,可启用定时指定时间进行操作。

                                                        +

                                                        1.1.8. 重新部署

                                                        +

                                                        重新执行部署

                                                        +

                                                        可在服务部署后针对部署节点进行重新执行部署的操作。

                                                        +

                                                        操作步骤:

                                                        +
                                                          +
                                                        1. 点击「重新执行部署」,将展示该服务部署名称、该部署下的所有计算节点/存储节点/软件组件节点以及部署状态

                                                          +
                                                        2. +
                                                        3. 可单选或多选节点进行重新执行;可启用定时,指定时间进行操作

                                                          +
                                                        4. +
                                                        5. 点击「提交」,等待执行

                                                          +
                                                        6. +
                                                        +

                                                        2. 云主机

                                                        +

                                                        用户可以根据下面的步骤来查看云主机列表来对其进行管理和操作,操作的启用和是否需要审批需要在业务组级别或者服务配置级别进行设置:

                                                        +

                                                        在左侧导航栏选择「我的部署」-「云主机」后,用户将会看到云主机的列表。可在该列表界面查看云主机名称、所属云平台、操作系统、云主机状态(已启动、遗失、停止等)、健康状态、业务组、项目、服务部署、租用到期时间、保留到期时间、所有者、IP地址、标签、已装软件、资源标签等,其他展示列可通过点击「展示列」,可以勾选或者不选某些列进行展示。根据业务组,项目,所有者,状态,标签、云平台类型、是否启用监控、云平台类型、是否安装代理、操作系统类型、是否导入进行筛选

                                                        +

                                                        在云主机列表中,用户可以选中一个或者多个云主机快速进行一些操作,包括「启动」「重新启动」「挂起」「停止」「执行脚本」「设置标签」「启用/切换监控」「更新监控代理」「更新自动化代理」,具体操作介绍会在下文展开

                                                        +

                                                        您也可以单击某一个云主机进入其详情界面进行管理和操作,虚拟机详情界面包括「基本信息」「操作历史」「快照信息」「监控」「应用列表」和顶部的运维操作列表

                                                        +

                                                        「基本信息」包括了虚拟机及其相关主机的一些信息,该虚拟机在平台中的组织信息以及该虚拟机的CPU、内存、存储的运行状态、VNC连接信息等

                                                        +

                                                        「操作历史」包括了该虚拟机进行过的操作的历史记录

                                                        +

                                                        「快照信息」显示当前的快照信息(快照名称、创建时间等),点击「添加」可以创建快照

                                                        +

                                                        「监控」包括了该虚拟机CPU、内存、磁盘、网络的监控数据(可以按照需要调整时间跨度或者平均时间来查看历史监控数据)

                                                        +
                                                        +

                                                        「Note」只有在虚拟机模板中配置安装监控的虚拟机在部署生成后,才可以在监控中看到数据,如何配置安装监控请参看「虚拟机模板管理」章节。

                                                        +
                                                        +

                                                        「应用列表」显示当前虚机已安装的应用列表

                                                        +

                                                        运维的操作列表包括了该虚拟机可执行的操作列表,具体操作介绍会在下文展开

                                                        +
                                                        +

                                                        「Note」只有在业务组设置或服务配置时配置虚拟机的操作许可,虚拟机在部署生成后才能看到允许的操作列表,如何配置虚拟机操作许可请参看「业务组管理」和「服务配置」章节。

                                                        +
                                                        +

                                                        2.1. 云主机运维操作

                                                        +

                                                        在云主机列表界面或点击云主机名称进入云主机详情页面,均可对云主机进行下列运维操作,运维操作的启用与否由业务组/服务部署进行控制。

                                                        +

                                                        2.1.1. 启动

                                                        +

                                                        可以实时启动(关机状态的)虚拟机,也可以通过设置「启用定时」,定时(在将来某一时刻)触发此项任务。

                                                        +

                                                        2.1.2. 挂起(vSphere)

                                                        +

                                                        挂起(开机状态的)虚拟机,可以通过设置「启用定时」,定时(在将来某一时刻)触发此项任务。

                                                        +

                                                        挂起多个(开机状态的)虚拟机,可以通过设置「启用定时」,从而定时(将来某一时刻)触发此项任务。

                                                        +
                                                        +

                                                        「Note」只有vSphere的虚拟机才会有此操作选项。

                                                        +
                                                        +

                                                        2.1.3. 停止

                                                        +

                                                        停止(即关机)(开机状态的)虚拟机,可以通过设置「启用定时」,定时(在将来某一时刻)触发此项任务。

                                                        +

                                                        2.1.4. 重启

                                                        +

                                                        重启(开机状态的)虚拟机,可以通过设置「启用定时」,定时(在将来某一时刻)触发此项任务。

                                                        +

                                                        重启多个(开机状态的)虚拟机,可以通过设置「启用定时」,定时(在将来某一时刻)触发此项任务。

                                                        +

                                                        2.1.5. 执行脚本

                                                        +

                                                        在该虚拟机中执行一个脚本库的脚本,可以通过设置「启用定时」,定时(在将来某一时刻)触发此项任务,也可选择某个IP地址。

                                                        +
                                                        +

                                                        「Note」如果没有安装代理,执行脚本时必须输入虚机的用户名和密码

                                                        +
                                                        +

                                                        2.1.6. vMotion迁移(vSphere)

                                                        +

                                                        支持对vSphere +的计算资源迁移和存储迁移。利用vSphere的vMotion迁移功能,使用不同的迁移方式,将虚拟机在不同主机之间进行迁移。

                                                        +
                                                          +
                                                        • 计算资源迁移,选择目标主机,可以通过设置「启用定时」,定时(在将来某一时刻)触发此项任务。

                                                          +
                                                        • +
                                                        • 存储迁移:

                                                          +
                                                        • +
                                                        + +
                                                          +
                                                        • 链接克隆:选择需要存储,将目标云主机迁移到所选的存储中去;

                                                          +
                                                        • +
                                                        • 完全克隆:选择置备模式(与源格式相同、精简置备、厚置备延迟置零、后置备置零);选择虚拟机存储策略(保留现有虚拟机存储策略、数据存储默认值,以及其他自定义存储策略);存储(根据所选的存储策略判定存储的兼容性,并显示各存储的空间和占比)

                                                          +
                                                        • +
                                                        • 启用定时:设置时间在将来某一时刻触发此项任务

                                                          +
                                                        • +
                                                        +
                                                        +

                                                        「Note」只有vSphere的虚拟机才会有此操作选项。迁移存储时,可保留原有的置备模式和存储策略,或进行修改

                                                        +
                                                        +

                                                        2.1.7. 远程终端

                                                        +
                                                        +

                                                        「Note」OpenStack虚拟机远程终端操作需要使用VNC Web Client, +您的浏览器需要支持HTML5 Canvas和HTML5 WebSockets。如果需要了解VNC Web +Client所支持的全部浏览器,可以访问 +https://github.com/kanaka/noVNC/wiki/Browser-support

                                                        +
                                                        +

                                                        WEB远程终端(vSphere) +vSphere的Web console client,无需浏览器特别支持。

                                                        +
                                                        +

                                                        「Note」只有vSphere的虚拟机才会有此操作选项。

                                                        +
                                                        +

                                                        2.1.8. 设置云主机标签

                                                        +
                                                        +

                                                        「Note」每个用户都可以为云主机设置标签,无需管理员配置操作许可。

                                                        +
                                                        +

                                                        可为云主机设置键值标签,从而为云主机分类和过滤。

                                                        +

                                                        云主机标签的使用方法如下:

                                                        +

                                                        添加标签

                                                        +

                                                        对新建的云主机添加标签:

                                                        +
                                                          +
                                                        1. 在左侧导航栏选择「我的部署」-「云主机」,在云主机的列表界面,选择一个云主机

                                                          +
                                                        2. +
                                                        3. 点击上方的「更多操作」,「设置标签」,出现键值标签的设置界面

                                                          +
                                                        4. +
                                                        5. 填写键、值,点击「创建」「执行」,标签创建成功;也可选择已有的标签,点击「执行」。在云主机列表的右侧列项,可查看添加的云主机标签

                                                          +
                                                        6. +
                                                        +

                                                        对导入的云主机添加标签:

                                                        +
                                                          +
                                                        1. 在左侧菜单选择「基础设施」,点击「资源池管理」,选择一个资源池,进入编辑资源池界面

                                                          +
                                                        2. +
                                                        3. 进入「云主机」页面,点击「导入」

                                                          +
                                                        4. +
                                                        5. 点击「标签」后的输入框,弹出键值标签创建页面,输入键值,创建新标签;也可选择已有标签

                                                          +

                                                          修改/删除标签:

                                                          +
                                                        6. +
                                                        +

                                                        在云主机列表界面,选择一个云主机;点击「设置标签」,出现该云主机的键标签,可直接删除并重新创建。

                                                        +

                                                        2.1.9. 管理磁盘

                                                        +

                                                        添加新磁盘

                                                        +

                                                        给虚拟机添加一块新的磁盘,可以通过设置「启用定时」,定时(在将来某一时刻)触发此项任务。

                                                        +
                                                        +

                                                        「Note」在挂起状态下不能执行该操作

                                                        +
                                                        +

                                                        扩展磁盘

                                                        +

                                                        给虚拟机扩展一块已有的磁盘,可以通过设置「启用定时」,定时(在将来某一时刻)触发此项任务。

                                                        +
                                                        +

                                                        「Note」支持通过云管平台部署或在上一小节创建的磁盘进行扩展。在挂起状态下不能执行该操作

                                                        +
                                                        +

                                                        删除磁盘

                                                        +

                                                        删除虚拟机上除系统盘以外的磁盘,包括服务配置添加的磁盘或运维新增的磁盘,均可删除。

                                                        +

                                                        添加新逻辑卷 +给Linux虚拟机添加一个新的逻辑卷,可以通过设置「启用定时」,定时(在将来某一时刻)触发此项任务。

                                                        +
                                                        +

                                                        「Note」在挂起状态下不能执行该操作

                                                        +
                                                        +

                                                        扩展逻辑卷

                                                        +

                                                        给Linux虚拟机扩展一个已有的逻辑卷,可以通过设置「启用定时」,定时(在将来某一时刻)触发此项任务。

                                                        +
                                                        +

                                                        「Note」支持通过云管平台部署或在上一小节创建的逻辑卷进行扩展。

                                                        +
                                                        +

                                                        2.1.10. 更改配置

                                                        +

                                                        调整虚机配置

                                                        +

                                                        调整虚拟机或容器节点的配置(vCPU,内存),点击「提交」。

                                                        +

                                                        添加网卡

                                                        +

                                                        添加一个新网卡,针对该计算节点的所有实例生效,选择网络标签和IP分配方式,目前vSphere只支持DHCP,OpenStack和PowerVC支持DHCP和IP池两种IP分配方式,OpenStack云主机还支持手动指定IP。

                                                        +

                                                        删除网卡

                                                        +

                                                        删除运维新增加的网卡,该操作会影响该节点的所有云主机。

                                                        +

                                                        挂载NFS

                                                        +

                                                        将一个NFS(网络文件系统)挂载到虚拟机,可以通过设置「启用定时」,定时(在将来某一时刻)触发此项任务。

                                                        +
                                                        +

                                                        「Note」当配置NFS云平台和资源池后,此项操作才可用 +更新云主机显示名

                                                        +
                                                        +

                                                        点击「更新云主机显示名」,可以重新设置云主机的显示名。

                                                        +

                                                        重置操作系统主机名

                                                        +

                                                        点击「重置操作系统主机名」,可以重新设置操作系统主机名。

                                                        +
                                                        +

                                                        「Note」windows操作系统只有安装代理的情况下才能进行该项操作

                                                        +
                                                        +

                                                        提升Linux用户权限

                                                        +

                                                        可临时给某个Linux用户提升一段时间的Sudo权限(免密)。若该云主机已安装自动化代理,则只需输入用户名以及权限使用时间。若该云主机未安装自动化代理,将输入管理员用户名和密码(或选择密钥对)、以及选择IP地址。

                                                        +

                                                        重置密码

                                                        +

                                                        点击「重置密码」,可以重新设置虚拟机的新密码。

                                                        +

                                                        应用级别的生命周期操作

                                                        +

                                                        云主机详细界面里,有应用标签页,里面有属于该云主机的应用列表,选择一个应用,会出现该应用的生命周期操作,操作包括「启动」「停止」和「自定义」操作。

                                                        +

                                                        2.1.11. 管理快照

                                                        +

                                                        创建快照

                                                        +

                                                        支持创建快照的时候,设置定时循环任务,例如在每天的某个时间,每周或每月的某一天,自动的进行快照创建,并且支持随时查看、取消已经设置的定时循环任。

                                                        +
                                                          +
                                                        1. 在左边导航选择「我的部署」-「云主机」,在右边选择「快照信息」

                                                          +
                                                        2. +
                                                        3. 点击「添加」按钮 ,填入定时循环信息。

                                                          +
                                                        4. +
                                                        5. 点击提交,定时创建快照的任务设置成功。

                                                          +
                                                        6. +
                                                        7. 在左边导航选择「我的部署」-「云主机」,在右边选择「定时任务」

                                                          +
                                                        8. +
                                                        9. 选中操作名称,点击上方的删除,即可取消已经设置的定时循环任务。

                                                          +

                                                          恢复至快照(vSphere)

                                                          +
                                                        10. +
                                                        +

                                                        把虚拟机恢复到之前的某一个快照,可以通过设置「启用定时」,定时(在将来某一时刻)触发此项任务

                                                        +
                                                        +

                                                        「Note」只有vSphere的虚拟机才会有此操作选项。

                                                        +
                                                        +

                                                        删除快照

                                                        +

                                                        删除已创建的快照

                                                        +

                                                        执行快照策略 +针对阿里云的实例下的单个磁盘做执行快照策略,快照策略在阿里云平台中被创建。

                                                        +

                                                        取消快照策略

                                                        +

                                                        针对阿里云的实例下的单个磁盘取消快照策略期间。

                                                        +

                                                        2.1.12. 监控和代理

                                                        +

                                                        添加自动化代理

                                                        +

                                                        如果云主机未安装自动化代理,可通过该操作安装;输入具有SSH功能并具有管理员权限的用户名和密码/密钥对,输入完成后点击「执行」。若未输入端口,还需在云主机详情页,「云主机中配置的SSH端口」中输入端口号。

                                                        +

                                                        更新自动化代理

                                                        +

                                                        如果云主机已安装自动化代理,可通过该操作进行更新。

                                                        +

                                                        启用/切换监控

                                                        +

                                                        目前对vSphere云主机支持两种监控方式:内置代理监控以及云平台监控。内置代理监控包括预安装监控代理和WinRM/SSH监控代理(WinRM对于Windows操作系统的云主机,SHH对于Linux操作系统的云主机);云平台监控是指直接从vCenter上读取虚机的监控数据而不需要安装监控代理。

                                                        +

                                                        对Openstack云平台只支持内置监控代理。

                                                        +

                                                        更新监控代理

                                                        +

                                                        如果云主机安装了内置代理监控,可通过该操作进行更新。

                                                        +

                                                        2.1.13. 其他

                                                        +

                                                        支持根据实际需求自定义运维操作,点击「更多操作」- 「其他」,显示自定义操作列表。例如下图,为vSphere云平台的虚拟机自定义备份操作,自定义操作的具体步骤,请参考:配置操作

                                                        +

                                                        自定义运维操作

                                                        +

                                                        3. 云资源

                                                        +

                                                        云资源菜单下统一纳管所有的云资源,展示其相关信息以及提供各云资源对应的运维 +操作。

                                                        +

                                                        点击左侧导航栏「我的部署」-「云资源」,将在左侧看到「存储资源」「容器服务」「网络资源」「PaaS资源」「软件资源」五个菜单。

                                                        +

                                                        3.1.1. 容器服务

                                                        +

                                                        支持在云资源中展示kubernetes的各个组件信息,包括部署(Deployment)、容器(Container)、服务(Service)、路由(Ingress)、存储卷(PVC)、配置字典(ConfigMap)、保密字典(Secrets)等。

                                                        +

                                                        部署

                                                        +

                                                        Kubernetes的部署(Deployment)为Pod和ReplicaSet提供声明式更新。通过在Deployment中描述所期望的集群状态,DeploymentController会将现在的集群状态在一个可控的速度下逐步更新成所期望的集群状态。Deployment的主要职责同样是为了保证Pod的数量和健康,90%的功能与ReplicationController完全一样,可以看作下一代的Replication Controller。

                                                        +
                                                          +
                                                        • 支持对部署(Deployment) 的资源展示,点击「容器服务」-「部署」,将看到Kubernetes的部署列表:显示名称、云平台类型、状态、业务组、服务部署、项目、所有者、标签、容器组、镜像以及创建时间。高级搜索可通过业务组、状态、项目和所有者对列表信息进行快速筛选定位

                                                          +
                                                        • +
                                                        • 点击名称,进入部署详情页面。部署详情页面包括「基本信息」「容器组」「操作历史」「监控」「已触发警报」,以及「更新副本数量」「更新镜像」「调整配置」等运维操作

                                                          +
                                                        • +
                                                        +
                                                        +

                                                        「Note」「监控」「已触发警报」标签页需要在Kubernetes的云平台处设置Prometheus监控地址后才会出现。

                                                        +
                                                        +

                                                        部署的「基本信息」页面包括:

                                                        +
                                                          +
                                                        • 基本信息:名称、命名空间、标签、注释、策略、镜像、创建时间等

                                                          +
                                                        • +
                                                        • 组织信息:服务部署名称、服务名称、业务组、租户、项目等

                                                          +
                                                        • +
                                                        • 运维操作

                                                          +
                                                        • +
                                                        +
                                                          +
                                                        • 更新副本数量:更新POD的副本数量(Replicas),点击后在弹框中选择需要更新的副本数量,也可启用定时在特定时间执行操作

                                                          +
                                                        • +
                                                        • 更新镜像:更新该部署的实例镜像,点击后在弹出框中选择需要更新的容器节点(必填),选择镜像源,选择镜像名称(必填),选择镜像标签,也可启用定时在特定时间执行操作。点击「提交」,等待操作执行完成

                                                          +
                                                          +

                                                          「Note」支持集成Habor以及Docker 原生镜像作为Image Registry。在Kubernetes云平台中,可添加容器镜像源。参考[添加Kubernetes云平台

                                                          +
                                                          +
                                                        • +
                                                        • 调整容器配置:调整选定容器节点的vCPU和内存的大小,包括请求值和最大值,请求值(request)必须小于最大值(limit)

                                                          +
                                                        • +
                                                        +
                                                          +
                                                        • 「操作历史」:包括了该Deployment进行过的操作历史记录

                                                          +
                                                        • +
                                                        • 「监控」:显示该部署的监控信息,如Pod + CPU使用情况、Pods内存使用情况、Pod网络流量等,可更改时间跨度查看不同时间段的监控信息

                                                          +
                                                        • +
                                                        • 「已触发警报」:根据定义好的对容器的告警策略和告警操作,若监控信息检测到该部署已达到触发警报条件,将触发警报。该页面显示已触发的警报信息,以及可对该警报做恢复、暂停、解除等操作

                                                          +
                                                        • +
                                                        +

                                                        守护进程集

                                                        +

                                                        Kubernetes的守护进程集(DaemonSet)保证在每个Node上都运行一个容器副本,常用来部署一些集群的日志、监控或者其他系统管理应用。部署成功后可在左侧导航栏选择「云资源」-「容器服务」-「守护进程集」中查看详细信息。

                                                        +

                                                        在「容器服务」-「守护进程集」中可查看守护进程集的基本信息,如:名称、云平台类型、状态、业务组、服务部署、项目、所有者、标签、容器组、镜像和创建时间等。**高级搜索可通过业务组、状态、项目和所有者对列表信息进行快速筛选定位

                                                        +

                                                        点击名称,进入DaemonSet的详情页面。包括「基本信息」「容器组」「操作历史」「监控」「已触发警报」等

                                                        +

                                                        「基本信息」页面包括了:

                                                        +
                                                          +
                                                        • 基本信息:名称、命名空间、标签、注释、镜像、创建时间等

                                                          +
                                                        • +
                                                        • 组织信息:服务部署名称、服务名称、业务组、租户、项目等

                                                          +
                                                        • +
                                                        • 运维操作:更新镜像、调整配置

                                                          +
                                                        • +
                                                        • 「操作历史」页面:包括了对守护进程组进行过的操作历史记录

                                                          +
                                                        • +
                                                        +
                                                        +

                                                        「Note」「监控」「已触发警报」标签页需要在Kubernetes的云平台处设置Prometheus监控地址后才会出现。

                                                        +
                                                        +

                                                        有状态副本集

                                                        +

                                                        Kubernetes的有状态副本集(StatefulSet)是为了解决状态服务的问题。由以下几个部分组成:用于定义网络标志(DNS domain)的Headless +Service、用于创建PersistentVolumes的volumeClaimTemplates、定义具体应用的StatefulSet。部署成功后可在左侧导航栏选择「云资源」-「容器服务」-「有状态副本集」中查看详细信息。

                                                        +

                                                        在「容器服务」-「有状态副本集」中可查看有状态副本集的基本信息,如:名称、云平台类型、状态、业务组、服务部署、项目、所有者、标签、容器组、镜像和创建时间等。**高级搜索可通过业务组、状态、项目和所有者对列表信息进行快速筛选定位

                                                        +

                                                        点击名称,进入StatefulSet的详情页面。包括「基本信息」「容器组」「操作历史」「监控」「已触发警报」,以及「更新副本数量」「更新镜像」「调整配置」等运维操作

                                                        +

                                                        容器

                                                        +

                                                        K8s Container部署成功后可在左侧导航栏选择「云资源」-「容器服务」-「容器」中查看详细信息。

                                                        +

                                                        在容器(Container)的列表界面,可查看该容器的名称、云平台类型、状态、业务组、服务部署、项目、所有者、镜像、端口、创建时间等。高级搜索可通过业务组、状态、项目和所有者对列表信息进行快速筛选定位

                                                        +

                                                        点击名称,进入容器的详情页面。包括「基本信息」「操作历史」

                                                        +

                                                        运维操作:「调整配置」

                                                        +

                                                        服务

                                                        +

                                                        在K8集群中,客户端需要访问的服务就是Service对象。每个Service会对应一个集群内部有效的虚拟IP,集群内部通过虚拟IP访问一个服务。部署成功后可在左侧导航栏选择「云资源」-「容器服务」-「服务」中查看详细信息。

                                                        +

                                                        在容器服务的服务(Service)的列表界面,可查看该服务的名称、云平台类型、状态、业务组、服务部署、项目、所有者、集群IP、内部端点、外部端点、创建时间等。高级搜索可通过业务组、状态、项目和所有者对列表信息进行快速筛选定位

                                                        +

                                                        点击名称,进入服务的详情页面。包括「基本信息」「容器组」「操作历史」「监控」「已触发警报」等页面

                                                        +

                                                        运维操作:「更新副本数量」「更新镜像」「调整配置」

                                                        +

                                                        路由

                                                        +

                                                        在kubernetes中,通常情况下,服务(service)和pod的IP仅可在集群内部访问。集群外部的请求需要通过负载均衡转发到service在Node上暴露的NodePort上,然后再由kube-proxy将其转发给相关的Pod,而路由(Ingress)就是为进入集群的请求提供路由规则的集合。部署成功后可在左侧导航栏选择「云资源」-「容器服务」-「路由」中查看详细信息。

                                                        +
                                                          +
                                                        1. 在路由(Ingress)的列表界面,可查看该路由的名称、云平台类型、状态、业务组、服务部署、项目、所有者、端点、规则、创建时间等。高级搜索可通过业务组、状态、项目和所有者对列表信息进行快速筛选定位

                                                          +
                                                        2. +
                                                        3. 点击名称,进入路由的详情页面。包括「基本信息」「操作历史」

                                                          +
                                                        4. +
                                                        +

                                                        存储卷

                                                        +

                                                        Kubernetes中的存储卷(PVC:PersistentVolumeClaim)是用户存储的请求。它类似于pod。Pod消耗节点资源,PVC消耗光伏资源。部署成功后可在左侧导航栏选择「云资源」-「容器服务」-「存储卷」中查看详细信息。

                                                        +
                                                          +
                                                        1. 在存储卷(PVC)的列表界面,可查看该存储卷的名称、云平台类型、状态、业务组、服务部署、项目、所有者、卷状态、总量、访问模式、存储类、创建时间等。高级搜索可通过业务组、状态、项目和所有者对列表信息进行快速筛选定位

                                                          +
                                                        2. +
                                                        3. 点击名称,进入存储卷的详情页面。包括「基本信息」「操作历史」

                                                          +
                                                        4. +
                                                        +

                                                        配置字典

                                                        +

                                                        在kubernetes中,配置字典(ConfigMap)用于保存配置数据的键值对,可以用来保存单个属性,也可以用来保存配置文件。ConfigMap跟保密字典(Secret)很类似,但它可以更方便地处理不包含敏感信息的字符串。部署成功后可在左侧导航栏选择「云资源」-「容器服务」-「配置字典」中查看详细信息。

                                                        +
                                                          +
                                                        1. 在配置字典(ConfigMap)的列表界面,可查看该配置字典的名称、云平台类型、状态、业务组、服务部署、项目、所有者、创建时间等。高级搜索可通过业务组、状态、项目和所有者对列表信息进行快速筛选定位

                                                          +
                                                        2. +
                                                        3. 点击名称,进入配置字典的详情页面。包括「基本信息」「操作历史」

                                                          +
                                                        4. +
                                                        +

                                                        保密字典

                                                        +

                                                        在kubernetes中,保密字典(Secret)解决了密码、token、密钥等敏感数据的配置问题,而不需要把这些敏感数据暴露到镜像或者Pod +Spec中。Secret可以以Volume或者环境变量的方式使用。部署成功后可在左侧导航栏选择「云资源」-「容器服务」-「保密字典」中查看详细信息。

                                                        +
                                                          +
                                                        1. 在保密字典(Secret)的列表界面,可查看该保密字典的名称、云平台类型、状态、业务组、服务部署、项目、所有者、类型、创建时间等。高级搜索可通过业务组、状态、项目和所有者对列表信息进行快速筛选定位

                                                          +
                                                        2. +
                                                        3. 点击名称,进入保密字典的详情页面。包括「基本信息」「操作历史」

                                                          +
                                                        4. +
                                                        +

                                                        3.1.2. 存储资源

                                                        +

                                                        云硬盘

                                                        +

                                                        支持对OpenStack/Azure/阿里云/青云的云硬盘进行统一管理。

                                                        +
                                                          +
                                                        1. 点击「存储资源」下的「云硬盘」,将看到云硬盘列表

                                                          +
                                                        2. +
                                                        3. 在云硬盘的列表界面,可查看云硬盘的相关信息:名称、云平台类型、状态、业务组、服务部署、项目、所有者、大小(GB)、挂载状态、挂载到的云主机以及创建时间

                                                          +
                                                        4. +
                                                        5. 点击名称,进入云硬盘详情页面。云硬盘详情页面包括「基本信息」「操作历史」

                                                          +
                                                        6. +
                                                        7. 云硬盘详情的「基本信息」页面包括:

                                                          +
                                                        8. +
                                                        9. 基本信息:名称、云平台类型、状态、业务组、服务部署、项目、所有者、大小挂载到的云主机、创建时间等

                                                          +
                                                        10. +
                                                        11. 组织信息:服务部署名称、服务名称、业务组、租户、项目等

                                                          +
                                                        12. +
                                                        13. 运维操作:

                                                          +
                                                        14. +
                                                        + +
                                                          +
                                                        • 卷分离:去除云硬盘和云主机的挂载关系

                                                          +
                                                        • +
                                                        • 卷挂载:建立云硬盘和云主机的挂载关系

                                                          +
                                                        • +
                                                        • 调整大小:支持对硬盘调整大小(Azure/AWS)

                                                          +
                                                        • +
                                                        • 云硬盘详情的「操作历史」页面:包括了该云硬盘进行过的操作历史记录

                                                          +
                                                        • +
                                                        +

                                                        对象存储

                                                        +

                                                        支持对AWS、Azure、阿里云的对象存储进行统一管理,分别是S3、Blob、OSS。

                                                        +
                                                          +
                                                        1. 点击「存储资源」下的「对象存储」,将看到对象存储列表

                                                          +
                                                        2. +
                                                        3. 在对象存储的列表界面,可查看对象存储的相关信息:名称、云平台类型、状态、状态、业务组、服务部署、项目、所有者、创建时间

                                                          +
                                                        4. +
                                                        5. 点击名称,进入对象存储详情页面。对象存储详情页面包括「基本信息」「操作历史」

                                                          +
                                                        6. +
                                                        7. 对象存储详情的「基本信息」页面包括:

                                                          +
                                                        8. +
                                                        9. 基本信息:名称、云平台类型、状态、所有者、公共访问级别、存储账户、资源组、创建时间等

                                                          +
                                                        10. +
                                                        11. 组织信息:服务部署名称、服务名称、业务组、租户、项目等

                                                          +
                                                        12. +
                                                        13. 对象存储详情的「操作历史」页面:包括了该云硬盘进行过的操作历史记录

                                                          +
                                                        14. +
                                                        +

                                                        3.1.3. 网络资源

                                                        +

                                                        支持OpenStack的防火墙(FireWall)、浮动IP(Floating +IP)的独立部署和全生命周期管理。部署完成后,可在「云资源」-「网络资源」处查看基本信息和运行状况。还支持OpenStack的负载均衡器(LoadBalance)和负载均衡监听器(Listener),以及VMware +NSX的虚拟服务器(VirtualServer)。

                                                        +

                                                        负载均衡器

                                                        +

                                                        负载均衡是高可用网络基础架构的关键组件,通常用于将工作负载分布到多个服务器来提高网站、应用、数据库或其他服务的性能和可靠性。

                                                        +

                                                        若部署中包含负载均衡器(LoadBalancer),则部署成功后可在「云资源」-「网络资源」-「负载均衡器」中查看详细信息。

                                                        +
                                                          +
                                                        1. 在负载均衡器(LoadBalancer)列表界面,显示负载均衡器的名称、云平台类型、状态、业务组、服务部署、项目、所有者、IP地址、创建时间等

                                                          +
                                                        2. +
                                                        3. 点击名称进入详情页面,包括「基本信息」「操作历史」

                                                          +
                                                        4. +
                                                        5. 运维操作(OpenStack):

                                                          +
                                                        6. +
                                                        7. 绑定浮动IP:选择某一浮动IP,将该负载均衡器和浮动IP +进行绑定,可启动定时在特定时间执行操作

                                                          +
                                                        8. +
                                                        9. 解绑浮动IP:若该负载均衡器已绑定浮动IP,则可进行解绑操作,可启动定时在特定时间执行操作

                                                          +
                                                        10. +
                                                        +

                                                        负载均衡监听器

                                                        +

                                                        支持VMWare NSX / OpenStack / Azure的负载均衡监听器,VMWare NSX +负载均衡监听器为VirtualServer,OpenStack 负载均衡监听器为Listener,Azure +负载均衡监听器为LoadBalancerRule。负载均衡器可以监听多个端口上请求,每个端口通过负载均衡监听器指定。部署成功后可在「云资源」-「网络资源」-「负载均衡监听器」中查看详细信息。

                                                        +
                                                          +
                                                        1. 在负载均衡器监听器(Listener)列表界面,显示负载均衡监听器的名称、状态、描述、业务组、项目、所有者、协议、云平台类型、创建时间等

                                                          +
                                                        2. +
                                                        3. 点击名称进入详情页面,包括「基本信息」「操作历史」界面,以及「添加成员」「删除成员」等运维

                                                          +
                                                        4. +
                                                        5. 运维操作 -- OpenStack

                                                          +
                                                        6. +
                                                        7. 「添加成员」:添加成员(member),可添加内部成员和外部成员。选择要添加成员的云主机、指定IP地址、端口和权重。可启动定时在特定时间执行操作

                                                          +
                                                        8. +
                                                        9. 「删除成员」:点击后选择需要删除的成员,可启动定时在特定时间执行操作

                                                          +
                                                        10. +
                                                        +

                                                        浮动IP

                                                        +

                                                        支持OpenStack的的浮动IP(FloatingIP),FloatingIP可单独部署,部署成功后可在左侧导航栏选择「云资源」-「网络资源」-「浮动IP」中查看详细信息。

                                                        +
                                                          +
                                                        1. 在选择「云资源」-「网络资源」-「浮动IP」,可查看已部署成功的浮动IP的列表界面,该界面显示浮动IP的名称、云平台类型、状态、业务组、服务部署、项目、所有者、IP地址、网络、映射地址、创建时间等

                                                          +
                                                        2. +
                                                        3. 点击名称,进入详情页面,包括「基本信息」「操作历史」

                                                          +
                                                        4. +
                                                        5. 「基本信息」页面,显示该浮动IP的的基本信息和组织信息

                                                          +
                                                        6. +
                                                        7. 「操作历史」页面,显示操作历史记录,点击后将在操作历史列表下方显示操作详情

                                                          +
                                                        8. +
                                                        9. 运维操作:

                                                          +
                                                        10. +
                                                        11. 「关联端口」:若当前Floating +IP未关联任何一个端口,则在详情页上方会显示「关联端口」操作,点击后在弹框中选择需要绑定的端口,下拉框中会列出当前业务组下,OpenStack云平台中所有未被关联的端口(Port)。选择后点击「提交」

                                                          +
                                                        12. +
                                                        13. 「解除绑定」:若当前Floating +IP已关联端口,则在详情页上方会显示「解除绑定」操作,点击后「提交」,也可启用定时在特定时间执行操作

                                                          +
                                                        14. +
                                                        +

                                                        防火墙

                                                        +

                                                        支持OpenStack防火墙即服务(Firewall as a +service),Fwaas应用于OpenStack对象,如项目,路由器和路由器端口。OpenStack防火墙的核心概念是防火墙策略和防火墙规则。策略是有序的规则集合。可在左侧导航栏选择「云资源」-「网络资源」-「防火墙」查看已部署成功的防火墙。

                                                        +
                                                          +
                                                        1. 选择「云资源」-「网络资源」-「防火墙」,可查看已部署成功的防火墙列表界面,该界面显示防火墙的名称、云平台类型、状态、业务组、服务部署、项目、所有者、策略、路由、激活状态、管理员状态、创建时间等

                                                          +
                                                        2. +
                                                        3. 点击名称,进入详情页面,包括「基本信息」「操作历史」

                                                          +
                                                        4. +
                                                        5. 「基本信息」页面:显示该防火墙的的基本信息和组织信息

                                                          +
                                                        6. +
                                                        7. 「操作历史」页面:显示操作历史记录,点击后将在操作历史列表下方显示操作详情

                                                          +
                                                        8. +
                                                        9. 运维操作:

                                                          +
                                                            +
                                                          • 「更新防火墙」:点击后可在页面中选择已有的防火墙策略或新建防火墙策略。勾选「使用已有策略」,将列出当前业务组下,OpenStack云平台中所有可用的防火墙策略。若未勾选,则新建防火墙策略,需填写策略名称(必填),策略描述(选填),可选择是否属于已共享、已审计,还可定时,操作完成后点击「提交」
                                                          • +
                                                          +
                                                        10. +
                                                        +
                                                          +
                                                        • 「更新防火墙策略」:该页面将列出当前所有可用的规则列表。支持使用已有规则和新建规则。若使用已有规则,在列表中勾选将使用的规则即可。若新建规则,将展现新建规则界面:
                                                        • +
                                                        +
                                                          +
                                                        • 填写基本信息:名称、描述、协议(必填,TCP、UDP、ICMP和任何)、动作(必填,允许、拒绝)、源IP、源端口、目的IP、目的端口、选择是否是共享的、激活

                                                          +
                                                        • +
                                                        • 可选择新增的规则的位置,指定当前规则在某条规则之前插入(规则前于),或指定规则在某条规则后插入(规则后于)。如果两者均被指定,前者优先级更高。

                                                          +
                                                        • +
                                                        +
                                                        +

                                                        「Note」:一个防火墙策略可关联多个规则,但规则只能被一个策略所关联

                                                        +
                                                        +

                                                        「删除防火墙规则」:删除防火墙中已关联的规则,删除后将不可恢复。可同时选择多个规则删除,也可启动定时在特定时间执行操作

                                                        +

                                                        安全组

                                                        +

                                                        安全组是一种虚拟防火墙,具备状态检测和数据包过滤功能,用于在云端划分安全域。您可以通过配置安全组规则,允许或禁止安全组内的虚拟机实例对公网或私网的访问。

                                                        +

                                                        支持展示OpenStack、AWS、Azure、阿里云的安全组。若安全组组件部署后,将在「云资源」-「网络资源」-「安全组」中查看部署的安全组组件。

                                                        +
                                                          +
                                                        1. 在「安全组」列表界面,显示安全组名称、云平台类型、状态、所属业务组、服务部署、所属项目、所有者、创建时间等

                                                          +
                                                        2. +
                                                        3. 点击名称进入详情页面,包括「基本信息」「操作历史」界面

                                                          +
                                                        4. +
                                                        5. 「基本信息」页面,显示该安全组的的基本信息、组织信息和入站/出站安全组规则。

                                                          +
                                                        6. +
                                                        7. 「操作历史」页面,显示操作历史记录,点击后将在操作历史列表下方显示操作详情

                                                          +
                                                        8. +
                                                        +

                                                        域名系统DNS

                                                        +

                                                        支持OpenStack域名系统DNS,若DNS组件部署后,将在「云资源」-「网络资源」-「域名系统DNS」中查看部署的DNS组件。

                                                        +
                                                          +
                                                        1. 在「域名系统DNS」列表界面,显示DNS名称、状态、业务组、项目、所有者、DNS类型、DNS域、DNS服务器、DNS参数等

                                                          +
                                                        2. +
                                                        3. 点击名称进入详情页面,包括「基本信息」「操作历史」界面

                                                          +
                                                        4. +
                                                        5. 运维操作

                                                          +
                                                        6. +
                                                        7. 「更新DNS」:更新DNS参数,DNS类型不可更改

                                                          +
                                                        8. +
                                                        +

                                                        3.1.4. PaaS资源

                                                        +

                                                        支持AWS、Azure、阿里云的关系型数据库(RDS)的独立部署和全生命周期管理,支持关系型数据库即服务(RDS as a Service)和Web应用。部署完成后,可在「云资源」-「PaaS资源」处查看基本信息和运行状况。

                                                        +

                                                        关系型数据库

                                                        +

                                                        在左侧导航栏选择「云资源」-「PaaS资源」-「关系型数据库」查看已部署成功的关系型数据库(RDS)。

                                                        +
                                                          +
                                                        1. 在关系型数据库的列表界面,可查看关系型数据库的相关信息,如名称、所属业务组、所属项目、所有者、云平台类型、创建时间等

                                                          +
                                                        2. +
                                                        3. 点击名称可进入该关系型数据库详情页面,有「基本信息」「操作历史」两个页面

                                                          +
                                                        4. +
                                                        5. 「基本信息」页面,显示该关系型数据库的基本信息和组织信息。

                                                          +
                                                        6. +
                                                        7. 「操作历史」页面,显示对该关系型数据库的操作历史记录,点击后将在操作历史列表下方显示操作详情

                                                          +
                                                        8. +
                                                        9. 运维操作:

                                                          +
                                                        10. +
                                                        11. 更新防火墙:点击关系型数据库名称进入详情页,或在关系型数据库的列表页勾选一个关系型数据库,点击「更新防火墙」按钮,打开「更新防火墙 - +RDS名称」弹窗。勾选"定时",设置执行时间,点击「提交」按钮,定时更新防火墙;或者直接点击「提交」按钮,立即更新防火墙

                                                          +
                                                        12. +
                                                        +

                                                        Web应用

                                                        +

                                                        在左侧导航栏选择「云资源」-「PaaS资源」-「Web应用」查看已部署成功的Web应用

                                                        +
                                                          +
                                                        1. 在Web应用的列表界面,可查看Web应用的相关信息,如名称、所属业务组、所属项目、所有者、云平台类型、创建时间等

                                                          +
                                                        2. +
                                                        3. 点击名称可进入该Web应用详情页面,有「基本信息」「操作历史」两个页面

                                                          +
                                                        4. +
                                                        5. 「基本信息」页面,显示该Web应用的基本信息和组织信息。

                                                          +
                                                        6. +
                                                        7. 「操作历史」页面,显示对该Web应用的操作历史记录,点击后将在操作历史列表下方显示操作详情

                                                          +
                                                        8. +
                                                        +

                                                        3.1.5. 软件资源

                                                        +
                                                        +

                                                        「Note」 支持对软件资源的统一展示和管理。

                                                        +
                                                        +
                                                          +
                                                        1. 选择「云资源」-「软件资源」-「软件」,可查看已部署成功的软件列表,该界面显示软件名称、云平台类型、状态、业务组、服务部署、项目、所有者、版本、系统类型、创建时间等。可通过高级搜索对业务组、状态、项目或所有者进行筛选,也可使用普通搜索进行快速定位

                                                          +
                                                        2. +
                                                        3. 点击名称,进入详情页面,包括「基本信息」「操作历史」

                                                          +
                                                        4. +
                                                        5. 「基本信息」页面:显示该软件的基本信息、组织信息、参数

                                                          +
                                                        6. +
                                                        7. 「操作历史」页面:显示操作历史记录,点击后将在操作历史列表下方显示操作详情

                                                          +
                                                        8. +
                                                        9. 运维操作:

                                                          +
                                                        10. +
                                                        +
                                                        +

                                                        「Note」 运维操作根据「服务建模」-「软件组件」中对个软件的操作定义显示对应的运维操作,例如:启动、停止、删除、创建、配置等

                                                        +
                                                        +

                                                        4. 资源状态图

                                                        +

                                                        资源状态图能够显示云主机、容器的健康状态,根据性能指标的状态显示不同的颜色。若该云主机或容器未配置监控,默认显示灰色。浅绿到深绿到红色,颜色越深代表使用的资源越多。

                                                        +
                                                          +
                                                        • 鼠标移至该云主机上,将显示该云主机名称

                                                          +
                                                        • +
                                                        • 点击后显示详情:

                                                          +
                                                        • +
                                                        • 基本信息:IP地址、操作系统、vCPU数量、内存、磁盘总空间

                                                          +
                                                        • +
                                                        • 组织信息:业务组、项目、所有者

                                                          +
                                                        • +
                                                        • 性能监控指标:内存使用率、CPU使用率、磁盘使用率

                                                          +
                                                        • +
                                                        +
                                                        +

                                                        「Note」若未安装监控,将不显示性能监控指标

                                                        +
                                                        +
                                                          +
                                                        • 可根据您的需求对展示内容进行筛选,如全部或已安装监控或未安装监控、按云平台筛选、业务组筛选、项目筛选、标签筛选等。
                                                        • +
                                                        + + +
                                                        + +
                                                        +
                                                        +
                                                        + +

                                                        results matching ""

                                                        +
                                                          + +
                                                          +
                                                          + +

                                                          No results matching ""

                                                          + +
                                                          +
                                                          +
                                                          + +
                                                          +
                                                          + +
                                                          + + + + + + + + + + + + + + +
                                                          + + +
                                                          + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git "a/AdminDoc/06\344\272\221\346\234\215\345\212\241\347\256\241\347\220\206/\346\210\221\347\232\204\351\203\250\347\275\262.md" "b/AdminDoc/06\344\272\221\346\234\215\345\212\241\347\256\241\347\220\206/\346\210\221\347\232\204\351\203\250\347\275\262.md" new file mode 100644 index 0000000..70824da --- /dev/null +++ "b/AdminDoc/06\344\272\221\346\234\215\345\212\241\347\256\241\347\220\206/\346\210\221\347\232\204\351\203\250\347\275\262.md" @@ -0,0 +1,744 @@ +**我的部署** + +# 服务部署 + +服务部署页面可查看服务部署的状态、详情、监控等。用户在「服务目录」选择蓝图自服务申请或服务目录申请后,可在服务部署界面查看部署的服务状态,若该部署有审批流程,在服务部署页面可跳转至审批页面,查看当前的审批流程;若无审批,则可查看该部署详情信息。 + +1. 在左侧导航栏选择「我的部署」-「服务部署」后,用户将会看到服务部署列表,点击高级搜索,可根据业务组、阶段(运行、操作进行中、关闭、操作失败、已取消、部署审批中 + )、状态(正常、异常)、所有者、项目进行筛选,也可直接进行搜索操作 + +2. 在服务部署列表中,用户可以选中一个或者多个服务部署快速进行一些操作,包括「停止服务部署」「安装软件」「复制服务部署」「延长过期时间」「卸除服务部署」「删除管理信息」「更改所有者」,更多操作如:「更改项目」「更改业务组」和「伸缩」 + +3. 点击服务部署名称,可查看该服务部署的详细信息。服务部署详情信息界面包括「基本信息」「服务部署拓扑」「操作历史」「监控」(对云主机和应用组件的监控)以及顶部的运维操作 + +4. 「基本信息」包括服务部署的名称、业务组、项目、蓝图、资源池、云平台,以及费用、状态、时间等相关信息。还包括该服务部署的输入参数列表以及输出结果信息。服务部署失败后,某些场景可线下修复,修复成功后支持更改服务部署状态,将操作失败更改为运行 + +5. 「服务部署拓扑」包括服务部署的蓝图、详情和流程信息。鼠标悬停至服务拓扑图中,将显示该节点的关键信息,如Server节点将显示云主机名称、客户操作系统、IP地址、内存、磁盘总空间、vCPU数量、CPU使用率、内存使用率等 + +6. 「操作历史」显示该服务部署的操作历史记录 + +7. 「监控」显示对该部署中有的组件应用的监控信息 + +## 服务部署运维操作{#服务部署运维操作} + +在服务部署列表界面或点击服务部署名称进入服务部署详情界面,均可对服务部署做运维操作。服务部署的运维操作由业务组和服务配置进行控制。可在「业务组」-「服务部署操作许可」中选择启用或不启用相应的运维操作给相应的角色,若启用还可指定是否需要审批,以及其审批模板。若启用,则可以在「服务建模」-「服务配置」-「服务部署操作许可」中选择为该服务继承业务组配置或在业务组配置基础上,对运维操作进行删减。在展示页面对服务部署运维的更多操作进行分组。 + +### 刷新状态 +状态为遗失的虚拟机无法查看详情,在某些业务场景中,遗失的虚拟机会重新加入平台中,需要支持能够手动刷新状态。同时,也要能够支持其他云资源状态的刷新。 ++ 支持批量刷新,在服务部署列表中,选中一个或多个部署 ++ 点击“刷新状态”按钮,可以手工刷新状态。刷新状态的按钮放在第一个。 ++ 刷新后,后台更新每个服务部署的状态还包括:规格配置的修改,磁盘的增加,IP地址的修改,刷新的结果通过通知返回。刷新的操作会记录到操作历史中。 ++ 在云主机中进行运维操作时,SmartCMP能够根据虚拟机的UUID重新刷新虚拟机的正确状态 + + + + +### 启动服务部署 + +若服务部署处于关闭状态,则「启动服务部署」操作可用。可以通过设置「启用定时」,从而定时(将来某一时刻)触发此项任务。 + +### 停止服务部署 +若服务部署处于正在运行的状态,则可以「停止服务部署」,该操作将对该服务部署下的所有虚机进行关机操作。可以通过设置「启用定时」,从而定时(将来某一时刻)触发此项任务。 + + +### 安装软件 + +选择服务部署下的云主机,并选择需要安装的软件。该软件列表来源于「软件组件」,可对软件的属性键值进行更改。 + +### 更改组织信息 + 更改所有者 + +更改服务部署的所有者,将会同时改变该服务部署下的所有虚机的所有者。现在目标所有者,该所有者为该业务组下的成员。 + + 更改项目 + +更改服务部署的所属项目,将会同时改变该服务部署下的所有虚机的所属项目。选择目标项目,并选择该项目下的用户。 + + 更改业务组 + +将会把该服务部署下的所有虚机同时更改到新业务组中,并修改所有者等相关信息。选择目标业务组,项目(可选),所有者(该业务组下的成员),资源池(该业务组下的资源池)。如果资源池列表为空,表示该业务组上没有可用的资源。 + + + +### 扩展与收缩 +伸缩 + +扩展当前部署下的实例,静态IP部署的Server不支持伸缩。至少伸缩1个实例,最多6个。可以通过设置「启用定时」,从而定时(将来某一时刻)触发此项任务。 +复制服务部署 +服务部署成功后,可将该服务部署整体的应用环境复制至其他云平台或克隆至当前云平台。 + +常见应用场景:例如将vSphere服务部署复制至阿里云,vSphere至vSphere,阿里云至阿里专有云 + +操作步骤: + +1. 选择目标服务:选择目标业务组、项目(可选)、所有者以及服务,选择当前实例节点作为模板来复制/新建到所选的服务拓扑图中的目标节点 + +2. 配置参数:填写服务部署名称(若业务组有规则将根据业务组规则自动生成)、服务部署租用到期时间,以及配置该服务拓扑图中的其他节点参数,针对每个计算节点,可以选择复制或者新建(从模板部署一台新机器) + +3. 点击提交,等待执行。 + +>「Note」若是跨云复制,则需要第三方支持 + + 延长过期时间 + +延长服务部署的租用到期时间,点击将显示业务组中设置的最大可延期次数以及已延期次数,选择延长到哪一时间到期,精确到分钟。 + + +### 删除 + 卸除服务部署 + +服务部署后,可卸除该服务部署下的云资源。卸除服务部署将删除在SmartCMP中新建的所有资源。若该服务部署中包含共享资源,将不删除共享资源;若该服务部署包含已有资源,如LoadBalance"使用已有资源",将不删除已有资源;若导入资源后,您是该资源的Owner,可删除导入资源。 + +删除管理信息 + +删除该服务部署以及所属虚拟机在SmartCMP上的相关信息,在相关云平台中仍然保留,不进行删除。 + + 删除节点 +可在服务部署后删除计算节点、存储和软件组件。点击「删除节点」,将展示该服务部署名称、该部署下的所有计算节点、存储和软件组件节点以及部署状态,可单选或多选节点进行删除,可启用定时指定时间进行操作。 + + +### 重新部署 + +重新执行部署 + +可在服务部署后针对部署节点进行重新执行部署的操作。 + +操作步骤: + +1. 点击「重新执行部署」,将展示该服务部署名称、该部署下的所有计算节点/存储节点/软件组件节点以及部署状态 + +2. 可单选或多选节点进行重新执行;可启用定时,指定时间进行操作 + +3. 点击「提交」,等待执行 + + + + + + + + + + + + +# 云主机 + +用户可以根据下面的步骤来查看云主机列表来对其进行管理和操作,操作的启用和是否需要审批需要在业务组级别或者服务配置级别进行设置: + +在左侧导航栏选择「我的部署」-「云主机」后,用户将会看到云主机的列表。可在该列表界面查看云主机名称、所属云平台、操作系统、云主机状态(已启动、遗失、停止等)、健康状态、业务组、项目、服务部署、租用到期时间、保留到期时间、所有者、IP地址、标签、已装软件、资源标签等,其他展示列可通过点击「展示列」,可以勾选或者不选某些列进行展示。根据业务组,项目,所有者,状态,标签、云平台类型、是否启用监控、云平台类型、是否安装代理、操作系统类型、是否导入进行筛选 + +在云主机列表中,用户可以选中一个或者多个云主机快速进行一些操作,包括「启动」「重新启动」「挂起」「停止」「执行脚本」「设置标签」「启用/切换监控」「更新监控代理」「更新自动化代理」,具体操作介绍会在下文展开 + +您也可以单击某一个云主机进入其详情界面进行管理和操作,虚拟机详情界面包括「基本信息」「操作历史」「快照信息」「监控」「应用列表」和顶部的运维操作列表 + +「基本信息」包括了虚拟机及其相关主机的一些信息,该虚拟机在平台中的组织信息以及该虚拟机的CPU、内存、存储的运行状态、VNC连接信息等 + +「操作历史」包括了该虚拟机进行过的操作的历史记录 + +「快照信息」显示当前的快照信息(快照名称、创建时间等),点击「添加」可以创建快照 + + 「监控」包括了该虚拟机CPU、内存、磁盘、网络的监控数据(可以按照需要调整时间跨度或者平均时间来查看历史监控数据) + +>「Note」只有在虚拟机模板中配置安装监控的虚拟机在部署生成后,才可以在监控中看到数据,如何配置安装监控请参看「虚拟机模板管理」章节。 + + 「应用列表」显示当前虚机已安装的应用列表 + + 运维的操作列表包括了该虚拟机可执行的操作列表,具体操作介绍会在下文展开 + +>「Note」只有在业务组设置或服务配置时配置虚拟机的操作许可,虚拟机在部署生成后才能看到允许的操作列表,如何配置虚拟机操作许可请参看「业务组管理」和「服务配置」章节。 + +## 云主机运维操作{#云主机运维操作} + +在云主机列表界面或点击云主机名称进入云主机详情页面,均可对云主机进行下列运维操作,运维操作的启用与否由业务组/服务部署进行控制。 + + ### 启动 + +可以实时启动(关机状态的)虚拟机,也可以通过设置「启用定时」,定时(在将来某一时刻)触发此项任务。 + +### 挂起(vSphere) + +挂起(开机状态的)虚拟机,可以通过设置「启用定时」,定时(在将来某一时刻)触发此项任务。 + +挂起多个(开机状态的)虚拟机,可以通过设置「启用定时」,从而定时(将来某一时刻)触发此项任务。 + +>「Note」只有vSphere的虚拟机才会有此操作选项。 + + ### 停止 + +停止(即关机)(开机状态的)虚拟机,可以通过设置「启用定时」,定时(在将来某一时刻)触发此项任务。 + +### 重启 + +重启(开机状态的)虚拟机,可以通过设置「启用定时」,定时(在将来某一时刻)触发此项任务。 + +重启多个(开机状态的)虚拟机,可以通过设置「启用定时」,定时(在将来某一时刻)触发此项任务。 + +### 执行脚本 + +在该虚拟机中执行一个脚本库的脚本,可以通过设置「启用定时」,定时(在将来某一时刻)触发此项任务,也可选择某个IP地址。 + +>「Note」如果没有安装代理,执行脚本时必须输入虚机的用户名和密码 + + + +### vMotion迁移(vSphere) + +支持对vSphere +的计算资源迁移和存储迁移。利用vSphere的vMotion迁移功能,使用不同的迁移方式,将虚拟机在不同主机之间进行迁移。 + +- 计算资源迁移,选择目标主机,可以通过设置「启用定时」,定时(在将来某一时刻)触发此项任务。 + +- 存储迁移: + + + +- 链接克隆:选择需要存储,将目标云主机迁移到所选的存储中去; + +- 完全克隆:选择置备模式(与源格式相同、精简置备、厚置备延迟置零、后置备置零);选择虚拟机存储策略(保留现有虚拟机存储策略、数据存储默认值,以及其他自定义存储策略);存储(根据所选的存储策略判定存储的兼容性,并显示各存储的空间和占比) + +- 启用定时:设置时间在将来某一时刻触发此项任务 + +>「Note」只有vSphere的虚拟机才会有此操作选项。迁移存储时,可保留原有的置备模式和存储策略,或进行修改 + +### 远程终端 + +>「Note」OpenStack虚拟机远程终端操作需要使用VNC Web Client, +您的浏览器需要支持HTML5 Canvas和HTML5 WebSockets。如果需要了解VNC Web +Client所支持的全部浏览器,可以访问 + + + WEB远程终端(vSphere) +vSphere的Web console client,无需浏览器特别支持。 + +>「Note」只有vSphere的虚拟机才会有此操作选项。 + + ### 设置云主机标签 + +>「Note」每个用户都可以为云主机设置标签,无需管理员配置操作许可。 + +可为云主机设置键值标签,从而为云主机分类和过滤。 + +云主机标签的使用方法如下: + + 添加标签 + +对新建的云主机添加标签: + +1. 在左侧导航栏选择「我的部署」-「云主机」,在云主机的列表界面,选择一个云主机 + +2. 点击上方的「更多操作」,「设置标签」,出现键值标签的设置界面 + +3. 填写键、值,点击「创建」「执行」,标签创建成功;也可选择已有的标签,点击「执行」。在云主机列表的右侧列项,可查看添加的云主机标签 + +对导入的云主机添加标签: + +1. 在左侧菜单选择「基础设施」,点击「资源池管理」,选择一个资源池,进入编辑资源池界面 + +2. 进入「云主机」页面,点击「导入」 + +3. 点击「标签」后的输入框,弹出键值标签创建页面,输入键值,创建新标签;也可选择已有标签 + + 修改/删除标签: + +在云主机列表界面,选择一个云主机;点击「设置标签」,出现该云主机的键标签,可直接删除并重新创建。 + + + + + + +### 管理磁盘 +添加新磁盘 + +给虚拟机添加一块新的磁盘,可以通过设置「启用定时」,定时(在将来某一时刻)触发此项任务。 + +>「Note」在挂起状态下不能执行该操作 + + 扩展磁盘 + +给虚拟机扩展一块已有的磁盘,可以通过设置「启用定时」,定时(在将来某一时刻)触发此项任务。 + +>「Note」支持通过云管平台部署或在上一小节创建的磁盘进行扩展。在挂起状态下不能执行该操作 + + 删除磁盘 + +删除虚拟机上除系统盘以外的磁盘,包括服务配置添加的磁盘或运维新增的磁盘,均可删除。 + +添加新逻辑卷 +给Linux虚拟机添加一个新的逻辑卷,可以通过设置「启用定时」,定时(在将来某一时刻)触发此项任务。 + +>「Note」在挂起状态下不能执行该操作 + + 扩展逻辑卷 + +给Linux虚拟机扩展一个已有的逻辑卷,可以通过设置「启用定时」,定时(在将来某一时刻)触发此项任务。 + +>「Note」支持通过云管平台部署或在上一小节创建的逻辑卷进行扩展。 + +### 更改配置 + + 调整虚机配置 + +调整虚拟机或容器节点的配置(vCPU,内存),点击「提交」。 + + +添加网卡 + +添加一个新网卡,针对该计算节点的所有实例生效,选择网络标签和IP分配方式,目前vSphere只支持DHCP,OpenStack和PowerVC支持DHCP和IP池两种IP分配方式,OpenStack云主机还支持手动指定IP。 + + 删除网卡 + +删除运维新增加的网卡,该操作会影响该节点的所有云主机。 + +挂载NFS + +将一个NFS(网络文件系统)挂载到虚拟机,可以通过设置「启用定时」,定时(在将来某一时刻)触发此项任务。 + +>「Note」当配置NFS云平台和资源池后,此项操作才可用 +更新云主机显示名 + +点击「更新云主机显示名」,可以重新设置云主机的显示名。 + + 重置操作系统主机名 + +点击「重置操作系统主机名」,可以重新设置操作系统主机名。 + +>「Note」windows操作系统只有安装代理的情况下才能进行该项操作 + + 提升Linux用户权限 + +可临时给某个Linux用户提升一段时间的Sudo权限(免密)。若该云主机已安装自动化代理,则只需输入用户名以及权限使用时间。若该云主机未安装自动化代理,将输入管理员用户名和密码(或选择密钥对)、以及选择IP地址。 + + 重置密码 + +点击「重置密码」,可以重新设置虚拟机的新密码。 + + 应用级别的生命周期操作 + +云主机详细界面里,有应用标签页,里面有属于该云主机的应用列表,选择一个应用,会出现该应用的生命周期操作,操作包括「启动」「停止」和「自定义」操作。 +### 管理快照 + 创建快照 + +支持创建快照的时候,设置定时循环任务,例如在每天的某个时间,每周或每月的某一天,自动的进行快照创建,并且支持随时查看、取消已经设置的定时循环任。 + +1. 在左边导航选择「我的部署」-「云主机」,在右边选择「快照信息」 + +2. 点击「添加」按钮 ,填入定时循环信息。 + +3. 点击提交,定时创建快照的任务设置成功。 + +4. 在左边导航选择「我的部署」-「云主机」,在右边选择「定时任务」 + +5. 选中操作名称,点击上方的删除,即可取消已经设置的定时循环任务。 + + 恢复至快照(vSphere) + +把虚拟机恢复到之前的某一个快照,可以通过设置「启用定时」,定时(在将来某一时刻)触发此项任务 + +>「Note」只有vSphere的虚拟机才会有此操作选项。 + + 删除快照 + +删除已创建的快照 + + 执行快照策略 +针对阿里云的实例下的单个磁盘做执行快照策略,快照策略在阿里云平台中被创建。 + + 取消快照策略 + +针对阿里云的实例下的单个磁盘取消快照策略期间。 + +### 监控和代理 +添加自动化代理 + +如果云主机未安装自动化代理,可通过该操作安装;输入具有SSH功能并具有管理员权限的用户名和密码/密钥对,输入完成后点击「执行」。若未输入端口,还需在云主机详情页,「云主机中配置的SSH端口」中输入端口号。 + + 更新自动化代理 + +如果云主机已安装自动化代理,可通过该操作进行更新。 + + 启用/切换监控 + +目前对vSphere云主机支持两种监控方式:内置代理监控以及云平台监控。内置代理监控包括预安装监控代理和WinRM/SSH监控代理(WinRM对于Windows操作系统的云主机,SHH对于Linux操作系统的云主机);云平台监控是指直接从vCenter上读取虚机的监控数据而不需要安装监控代理。 + +对Openstack云平台只支持内置监控代理。 + + 更新监控代理 + +如果云主机安装了内置代理监控,可通过该操作进行更新。 + +### 其他 + +支持根据实际需求自定义运维操作,点击「更多操作」- 「其他」,显示自定义操作列表。例如下图,为vSphere云平台的虚拟机自定义备份操作,自定义操作的具体步骤,请参考:[配置操作](https://cloudchef.github.io/doc/AdminDoc/05服务建模/组件库.html#配置操作) + +![自定义运维操作](../../picture/Admin/自定义运维操作.png) + + + + + + + + + + + + + + +# 云资源 + +云资源菜单下统一纳管所有的云资源,展示其相关信息以及提供各云资源对应的运维 +操作。 + +点击左侧导航栏「我的部署」-「云资源」,将在左侧看到「存储资源」「容器服务」「网络资源」「PaaS资源」「软件资源」五个菜单。 + + + +### 容器服务 + +支持在云资源中展示kubernetes的各个组件信息,包括部署(Deployment)、容器(Container)、服务(Service)、路由(Ingress)、存储卷(PVC)、配置字典(ConfigMap)、保密字典(Secrets)等。 + +#### 部署 +Kubernetes的部署(Deployment)为Pod和ReplicaSet提供声明式更新。通过在Deployment中描述所期望的集群状态,DeploymentController会将现在的集群状态在一个可控的速度下逐步更新成所期望的集群状态。Deployment的主要职责同样是为了保证Pod的数量和健康,90%的功能与ReplicationController完全一样,可以看作下一代的Replication Controller。 + + 支持对部署(Deployment) 的资源展示,点击「容器服务」-「部署」,将看到Kubernetes的部署列表:显示名称、云平台类型、状态、业务组、服务部署、项目、所有者、标签、容器组、镜像以及创建时间。高级搜索可通过业务组、状态、项目和所有者对列表信息进行快速筛选定位 + + + 点击名称,进入部署详情页面。部署详情页面包括「基本信息」「容器组」「操作历史」「监控」「已触发警报」,以及「更新副本数量」「更新镜像」「调整配置」等运维操作 + +>「Note」「监控」「已触发警报」标签页需要在Kubernetes的云平台处设置Prometheus监控地址后才会出现。 + + 部署的「基本信息」页面包括: + +- 基本信息:名称、命名空间、标签、注释、策略、镜像、创建时间等 + +- 组织信息:服务部署名称、服务名称、业务组、租户、项目等 + +- 运维操作 + + + + - 更新副本数量:更新POD的副本数量(Replicas),点击后在弹框中选择需要更新的副本数量,也可启用定时在特定时间执行操作 + + - 更新镜像:更新该部署的实例镜像,点击后在弹出框中选择需要更新的容器节点(必填),选择镜像源,选择镜像名称(必填),选择镜像标签,也可启用定时在特定时间执行操作。点击「提交」,等待操作执行完成 + + >「Note」支持集成Habor以及Docker 原生镜像作为Image Registry。在Kubernetes云平台中,可添加容器镜像源。参考[[添加Kubernetes云平台](https://cloudchef.github.io/doc/AdminDoc/03基础设施管理/云平台管理.html) + + - 调整容器配置:调整选定容器节点的vCPU和内存的大小,包括请求值和最大值,请求值(request)必须小于最大值(limit) + ++ 「操作历史」:包括了该Deployment进行过的操作历史记录 + ++ 「监控」:显示该部署的监控信息,如Pod + CPU使用情况、Pods内存使用情况、Pod网络流量等,可更改时间跨度查看不同时间段的监控信息 + ++ 「已触发警报」:根据定义好的对容器的告警策略和告警操作,若监控信息检测到该部署已达到触发警报条件,将触发警报。该页面显示已触发的警报信息,以及可对该警报做恢复、暂停、解除等操作 + +#### 守护进程集 + +Kubernetes的守护进程集(DaemonSet)保证在每个Node上都运行一个容器副本,常用来部署一些集群的日志、监控或者其他系统管理应用。部署成功后可在左侧导航栏选择「云资源」-「容器服务」-「守护进程集」中查看详细信息。 + + 在「容器服务」-「守护进程集」中可查看守护进程集的基本信息,如:名称、云平台类型、状态、业务组、服务部署、项目、所有者、标签、容器组、镜像和创建时间等。**高级搜索可通过业务组、状态、项目和所有者对列表信息进行快速筛选定位 + + 点击名称,进入DaemonSet的详情页面。包括「基本信息」「容器组」「操作历史」「监控」「已触发警报」等 + + 「基本信息」页面包括了: + +- 基本信息:名称、命名空间、标签、注释、镜像、创建时间等 + +- 组织信息:服务部署名称、服务名称、业务组、租户、项目等 + +- 运维操作:更新镜像、调整配置 + +- 「操作历史」页面:包括了对守护进程组进行过的操作历史记录 + +>「Note」「监控」「已触发警报」标签页需要在Kubernetes的云平台处设置Prometheus监控地址后才会出现。 + +#### 有状态副本集 + +Kubernetes的有状态副本集(StatefulSet)是为了解决状态服务的问题。由以下几个部分组成:用于定义网络标志(DNS domain)的Headless +Service、用于创建PersistentVolumes的volumeClaimTemplates、定义具体应用的StatefulSet。部署成功后可在左侧导航栏选择「云资源」-「容器服务」-「有状态副本集」中查看详细信息。 + + 在「容器服务」-「有状态副本集」中可查看有状态副本集的基本信息,如:名称、云平台类型、状态、业务组、服务部署、项目、所有者、标签、容器组、镜像和创建时间等。**高级搜索可通过业务组、状态、项目和所有者对列表信息进行快速筛选定位 + + 点击名称,进入StatefulSet的详情页面。包括「基本信息」「容器组」「操作历史」「监控」「已触发警报」,以及「更新副本数量」「更新镜像」「调整配置」等运维操作 + +#### 容器 + +K8s Container部署成功后可在左侧导航栏选择「云资源」-「容器服务」-「容器」中查看详细信息。 + + 在容器(Container)的列表界面,可查看该容器的名称、云平台类型、状态、业务组、服务部署、项目、所有者、镜像、端口、创建时间等。高级搜索可通过业务组、状态、项目和所有者对列表信息进行快速筛选定位 + + 点击名称,进入容器的详情页面。包括「基本信息」「操作历史」 + + 运维操作:「调整配置」 + +#### 服务 + +在K8集群中,客户端需要访问的服务就是Service对象。每个Service会对应一个集群内部有效的虚拟IP,集群内部通过虚拟IP访问一个服务。部署成功后可在左侧导航栏选择「云资源」-「容器服务」-「服务」中查看详细信息。 + + 在容器服务的服务(Service)的列表界面,可查看该服务的名称、云平台类型、状态、业务组、服务部署、项目、所有者、集群IP、内部端点、外部端点、创建时间等。高级搜索可通过业务组、状态、项目和所有者对列表信息进行快速筛选定位 + + 点击名称,进入服务的详情页面。包括「基本信息」「容器组」「操作历史」「监控」「已触发警报」等页面 + + 运维操作:「更新副本数量」「更新镜像」「调整配置」 + +#### 路由 + +在kubernetes中,通常情况下,服务(service)和pod的IP仅可在集群内部访问。集群外部的请求需要通过负载均衡转发到service在Node上暴露的NodePort上,然后再由kube-proxy将其转发给相关的Pod,而路由(Ingress)就是为进入集群的请求提供路由规则的集合。部署成功后可在左侧导航栏选择「云资源」-「容器服务」-「路由」中查看详细信息。 + +1. 在路由(Ingress)的列表界面,可查看该路由的名称、云平台类型、状态、业务组、服务部署、项目、所有者、端点、规则、创建时间等。高级搜索可通过业务组、状态、项目和所有者对列表信息进行快速筛选定位 + +2. 点击名称,进入路由的详情页面。包括「基本信息」「操作历史」 + +#### 存储卷 + +Kubernetes中的存储卷(PVC:PersistentVolumeClaim)是用户存储的请求。它类似于pod。Pod消耗节点资源,PVC消耗光伏资源。部署成功后可在左侧导航栏选择「云资源」-「容器服务」-「存储卷」中查看详细信息。 + +1. 在存储卷(PVC)的列表界面,可查看该存储卷的名称、云平台类型、状态、业务组、服务部署、项目、所有者、卷状态、总量、访问模式、存储类、创建时间等。高级搜索可通过业务组、状态、项目和所有者对列表信息进行快速筛选定位 + +2. 点击名称,进入存储卷的详情页面。包括「基本信息」「操作历史」 + +#### 配置字典 + +在kubernetes中,配置字典(ConfigMap)用于保存配置数据的键值对,可以用来保存单个属性,也可以用来保存配置文件。ConfigMap跟保密字典(Secret)很类似,但它可以更方便地处理不包含敏感信息的字符串。部署成功后可在左侧导航栏选择「云资源」-「容器服务」-「配置字典」中查看详细信息。 + +1. 在配置字典(ConfigMap)的列表界面,可查看该配置字典的名称、云平台类型、状态、业务组、服务部署、项目、所有者、创建时间等。高级搜索可通过业务组、状态、项目和所有者对列表信息进行快速筛选定位 + +2. 点击名称,进入配置字典的详情页面。包括「基本信息」「操作历史」 + +#### 保密字典 + +在kubernetes中,保密字典(Secret)解决了密码、token、密钥等敏感数据的配置问题,而不需要把这些敏感数据暴露到镜像或者Pod +Spec中。Secret可以以Volume或者环境变量的方式使用。部署成功后可在左侧导航栏选择「云资源」-「容器服务」-「保密字典」中查看详细信息。 + +1. 在保密字典(Secret)的列表界面,可查看该保密字典的名称、云平台类型、状态、业务组、服务部署、项目、所有者、类型、创建时间等。高级搜索可通过业务组、状态、项目和所有者对列表信息进行快速筛选定位 + +2. 点击名称,进入保密字典的详情页面。包括「基本信息」「操作历史」 + +### 存储资源 + +#### 云硬盘 + +支持对OpenStack/Azure/阿里云/青云的云硬盘进行统一管理。 + +1. 点击「存储资源」下的「云硬盘」,将看到云硬盘列表 + +2. 在云硬盘的列表界面,可查看云硬盘的相关信息:名称、云平台类型、状态、业务组、服务部署、项目、所有者、大小(GB)、挂载状态、挂载到的云主机以及创建时间 + +3. 点击名称,进入云硬盘详情页面。云硬盘详情页面包括「基本信息」「操作历史」 + +4. 云硬盘详情的「基本信息」页面包括: + +- 基本信息:名称、云平台类型、状态、业务组、服务部署、项目、所有者、大小挂载到的云主机、创建时间等 + +- 组织信息:服务部署名称、服务名称、业务组、租户、项目等 + +- 运维操作: + + + +- 卷分离:去除云硬盘和云主机的挂载关系 + +- 卷挂载:建立云硬盘和云主机的挂载关系 + +- 调整大小:支持对硬盘调整大小(Azure/AWS) + +5. 云硬盘详情的「操作历史」页面:包括了该云硬盘进行过的操作历史记录 + +#### 对象存储 + +支持对AWS、Azure、阿里云的对象存储进行统一管理,分别是S3、Blob、OSS。 + +1. 点击「存储资源」下的「对象存储」,将看到对象存储列表 + +2. 在对象存储的列表界面,可查看对象存储的相关信息:名称、云平台类型、状态、状态、业务组、服务部署、项目、所有者、创建时间 + +3. 点击名称,进入对象存储详情页面。对象存储详情页面包括「基本信息」「操作历史」 + +4. 对象存储详情的「基本信息」页面包括: + +- 基本信息:名称、云平台类型、状态、所有者、公共访问级别、存储账户、资源组、创建时间等 + +- 组织信息:服务部署名称、服务名称、业务组、租户、项目等 + +5. 对象存储详情的「操作历史」页面:包括了该云硬盘进行过的操作历史记录 + +### 网络资源 + +支持OpenStack的防火墙(FireWall)、浮动IP(Floating +IP)的独立部署和全生命周期管理。部署完成后,可在「云资源」-「网络资源」处查看基本信息和运行状况。还支持OpenStack的负载均衡器(LoadBalance)和负载均衡监听器(Listener),以及VMware +NSX的虚拟服务器(VirtualServer)。 + +#### 负载均衡器 + +负载均衡是高可用网络基础架构的关键组件,通常用于将工作负载分布到多个服务器来提高网站、应用、数据库或其他服务的性能和可靠性。 + +若部署中包含负载均衡器(LoadBalancer),则部署成功后可在「云资源」-「网络资源」-「负载均衡器」中查看详细信息。 + +1. 在负载均衡器(LoadBalancer)列表界面,显示负载均衡器的名称、云平台类型、状态、业务组、服务部署、项目、所有者、IP地址、创建时间等 + +2. 点击名称进入详情页面,包括「基本信息」「操作历史」 + +3. 运维操作(OpenStack): + +- 绑定浮动IP:选择某一浮动IP,将该负载均衡器和浮动IP + 进行绑定,可启动定时在特定时间执行操作 + +- 解绑浮动IP:若该负载均衡器已绑定浮动IP,则可进行解绑操作,可启动定时在特定时间执行操作 + +#### 负载均衡监听器 + +支持VMWare NSX / OpenStack / Azure的负载均衡监听器,VMWare NSX +负载均衡监听器为VirtualServer,OpenStack 负载均衡监听器为Listener,Azure +负载均衡监听器为LoadBalancerRule。负载均衡器可以监听多个端口上请求,每个端口通过负载均衡监听器指定。部署成功后可在「云资源」-「网络资源」-「负载均衡监听器」中查看详细信息。 + +1. 在负载均衡器监听器(Listener)列表界面,显示负载均衡监听器的名称、状态、描述、业务组、项目、所有者、协议、云平台类型、创建时间等 + +2. 点击名称进入详情页面,包括「基本信息」「操作历史」界面,以及「添加成员」「删除成员」等运维 + +3. 运维操作 -- OpenStack + +- 「添加成员」:添加成员(member),可添加内部成员和外部成员。选择要添加成员的云主机、指定IP地址、端口和权重。可启动定时在特定时间执行操作 + +- 「删除成员」:点击后选择需要删除的成员,可启动定时在特定时间执行操作 + +#### 浮动IP + +支持OpenStack的的浮动IP(FloatingIP),FloatingIP可单独部署,部署成功后可在左侧导航栏选择「云资源」-「网络资源」-「浮动IP」中查看详细信息。 + +1. 在选择「云资源」-「网络资源」-「浮动IP」,可查看已部署成功的浮动IP的列表界面,该界面显示浮动IP的名称、云平台类型、状态、业务组、服务部署、项目、所有者、IP地址、网络、映射地址、创建时间等 + +2. 点击名称,进入详情页面,包括「基本信息」「操作历史」 + +3. 「基本信息」页面,显示该浮动IP的的基本信息和组织信息 + +4. 「操作历史」页面,显示操作历史记录,点击后将在操作历史列表下方显示操作详情 + +5. 运维操作: + +- 「关联端口」:若当前Floating + IP未关联任何一个端口,则在详情页上方会显示「关联端口」操作,点击后在弹框中选择需要绑定的端口,下拉框中会列出当前业务组下,OpenStack云平台中所有未被关联的端口(Port)。选择后点击「提交」 + +- 「解除绑定」:若当前Floating + IP已关联端口,则在详情页上方会显示「解除绑定」操作,点击后「提交」,也可启用定时在特定时间执行操作 + +#### 防火墙 + +支持OpenStack防火墙即服务(Firewall as a +service),Fwaas应用于OpenStack对象,如项目,路由器和路由器端口。OpenStack防火墙的核心概念是防火墙策略和防火墙规则。策略是有序的规则集合。可在左侧导航栏选择「云资源」-「网络资源」-「防火墙」查看已部署成功的防火墙。 + +1. 选择「云资源」-「网络资源」-「防火墙」,可查看已部署成功的防火墙列表界面,该界面显示防火墙的名称、云平台类型、状态、业务组、服务部署、项目、所有者、策略、路由、激活状态、管理员状态、创建时间等 + +2. 点击名称,进入详情页面,包括「基本信息」「操作历史」 + +3. 「基本信息」页面:显示该防火墙的的基本信息和组织信息 + +4. 「操作历史」页面:显示操作历史记录,点击后将在操作历史列表下方显示操作详情 + +5. 运维操作: + + + 「更新防火墙」:点击后可在页面中选择已有的防火墙策略或新建防火墙策略。勾选「使用已有策略」,将列出当前业务组下,OpenStack云平台中所有可用的防火墙策略。若未勾选,则新建防火墙策略,需填写策略名称(必填),策略描述(选填),可选择是否属于已共享、已审计,还可定时,操作完成后点击「提交」 + + + + 「更新防火墙策略」:该页面将列出当前所有可用的规则列表。支持使用已有规则和新建规则。若使用已有规则,在列表中勾选将使用的规则即可。若新建规则,将展现新建规则界面: + +- 填写基本信息:名称、描述、协议(必填,TCP、UDP、ICMP和任何)、动作(必填,允许、拒绝)、源IP、源端口、目的IP、目的端口、选择是否是共享的、激活 + +- 可选择新增的规则的位置,指定当前规则在某条规则之前插入(规则前于),或指定规则在某条规则后插入(规则后于)。如果两者均被指定,前者优先级更高。 + +>「Note」:一个防火墙策略可关联多个规则,但规则只能被一个策略所关联 + +「删除防火墙规则」:删除防火墙中已关联的规则,删除后将不可恢复。可同时选择多个规则删除,也可启动定时在特定时间执行操作 + +#### 安全组 + +安全组是一种虚拟防火墙,具备状态检测和数据包过滤功能,用于在云端划分安全域。您可以通过配置安全组规则,允许或禁止安全组内的虚拟机实例对公网或私网的访问。 + +支持展示OpenStack、AWS、Azure、阿里云的安全组。若安全组组件部署后,将在「云资源」-「网络资源」-「安全组」中查看部署的安全组组件。 + +1. 在「安全组」列表界面,显示安全组名称、云平台类型、状态、所属业务组、服务部署、所属项目、所有者、创建时间等 + +2. 点击名称进入详情页面,包括「基本信息」「操作历史」界面 + +3. 「基本信息」页面,显示该安全组的的基本信息、组织信息和入站/出站安全组规则。 + +4. 「操作历史」页面,显示操作历史记录,点击后将在操作历史列表下方显示操作详情 + +#### 域名系统DNS + +支持OpenStack域名系统DNS,若DNS组件部署后,将在「云资源」-「网络资源」-「域名系统DNS」中查看部署的DNS组件。 + +1. 在「域名系统DNS」列表界面,显示DNS名称、状态、业务组、项目、所有者、DNS类型、DNS域、DNS服务器、DNS参数等 + +2. 点击名称进入详情页面,包括「基本信息」「操作历史」界面 + +3. 运维操作 + +- 「更新DNS」:更新DNS参数,DNS类型不可更改 + +### PaaS资源 + +支持AWS、Azure、阿里云的关系型数据库(RDS)的独立部署和全生命周期管理,支持关系型数据库即服务(RDS as a Service)和Web应用。部署完成后,可在「云资源」-「PaaS资源」处查看基本信息和运行状况。 + +#### 关系型数据库 + +在左侧导航栏选择「云资源」-「PaaS资源」-「关系型数据库」查看已部署成功的关系型数据库(RDS)。 + +1. 在关系型数据库的列表界面,可查看关系型数据库的相关信息,如名称、所属业务组、所属项目、所有者、云平台类型、创建时间等 + +2. 点击名称可进入该关系型数据库详情页面,有「基本信息」「操作历史」两个页面 + +3. 「基本信息」页面,显示该关系型数据库的基本信息和组织信息。 + +4. 「操作历史」页面,显示对该关系型数据库的操作历史记录,点击后将在操作历史列表下方显示操作详情 + +5. 运维操作: + +- 更新防火墙:点击关系型数据库名称进入详情页,或在关系型数据库的列表页勾选一个关系型数据库,点击「更新防火墙」按钮,打开「更新防火墙 - + RDS名称」弹窗。勾选"定时",设置执行时间,点击「提交」按钮,定时更新防火墙;或者直接点击「提交」按钮,立即更新防火墙 + +#### Web应用 + +在左侧导航栏选择「云资源」-「PaaS资源」-「Web应用」查看已部署成功的Web应用 + +1. 在Web应用的列表界面,可查看Web应用的相关信息,如名称、所属业务组、所属项目、所有者、云平台类型、创建时间等 + +2. 点击名称可进入该Web应用详情页面,有「基本信息」「操作历史」两个页面 + +3. 「基本信息」页面,显示该Web应用的基本信息和组织信息。 + +4. 「操作历史」页面,显示对该Web应用的操作历史记录,点击后将在操作历史列表下方显示操作详情 + +### 软件资源 + +>「Note」 支持对软件资源的统一展示和管理。 + +1. 选择「云资源」-「软件资源」-「软件」,可查看已部署成功的软件列表,该界面显示软件名称、云平台类型、状态、业务组、服务部署、项目、所有者、版本、系统类型、创建时间等。可通过高级搜索对业务组、状态、项目或所有者进行筛选,也可使用普通搜索进行快速定位 + +2. 点击名称,进入详情页面,包括「基本信息」「操作历史」 + +3. 「基本信息」页面:显示该软件的基本信息、组织信息、参数 + +4. 「操作历史」页面:显示操作历史记录,点击后将在操作历史列表下方显示操作详情 + +5. 运维操作: + +>「Note」 运维操作根据「服务建模」-「软件组件」中对个软件的操作定义显示对应的运维操作,例如:启动、停止、删除、创建、配置等 + +# 资源状态图 + +资源状态图能够显示云主机、容器的健康状态,根据性能指标的状态显示不同的颜色。若该云主机或容器未配置监控,默认显示灰色。浅绿到深绿到红色,颜色越深代表使用的资源越多。 + +- 鼠标移至该云主机上,将显示该云主机名称 + +- 点击后显示详情: + +- 基本信息:IP地址、操作系统、vCPU数量、内存、磁盘总空间 + +- 组织信息:业务组、项目、所有者 + +- 性能监控指标:内存使用率、CPU使用率、磁盘使用率 + +>「Note」若未安装监控,将不显示性能监控指标 + +- 可根据您的需求对展示内容进行筛选,如全部或已安装监控或未安装监控、按云平台筛选、业务组筛选、项目筛选、标签筛选等。 diff --git "a/AdminDoc/06\344\272\221\346\234\215\345\212\241\347\256\241\347\220\206/\346\234\215\345\212\241\347\233\256\345\275\225.html" "b/AdminDoc/06\344\272\221\346\234\215\345\212\241\347\256\241\347\220\206/\346\234\215\345\212\241\347\233\256\345\275\225.html" new file mode 100644 index 0000000..a36c961 --- /dev/null +++ "b/AdminDoc/06\344\272\221\346\234\215\345\212\241\347\256\241\347\220\206/\346\234\215\345\212\241\347\233\256\345\275\225.html" @@ -0,0 +1,1117 @@ + + + + + + + 服务申请 · 发行说明 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
                                                          +
                                                          + + + + + + + + +
                                                          + +
                                                          + +
                                                          + + + + + + + + +
                                                          +
                                                          + +
                                                          +
                                                          + +
                                                          + +

                                                          服务申请

                                                          +

                                                          1. 服务目录展现方式

                                                          +

                                                          服务配置发布成功之后,将会在服务目录界面看到发布的服务卡片,服务目录的界面展示支持两种方式:

                                                          +
                                                            +
                                                          1. 标签页展示:即分组按照标签页展示,可以通过服务分组标签、业务组或搜索框快速定位您需要申请的服务。
                                                          2. +
                                                          3. 层级展示:按照卡片的模式,先展示分组(图标,名称,描述)--文件夹的显示方式,点击一个分组,再展现这个分组的所有卡片,对于没有分组的卡片,如果按照层级展示,增加一个 未分组的服务 文件夹,点击进入展现所有未分组的卡片。如果卡片都是有分组的,则这个文件夹不显示。
                                                          4. +
                                                          +
                                                          +

                                                          「Note」 服务目录展现方式,在系统配置-界面配置功能区进行选择,具体操作步骤,请参考:界面配置

                                                          +
                                                          +

                                                          2. 标签页展示

                                                          +

                                                          当服务目录以标签页方式展示时,可以通过服务分组标签,例如:数据库、基础设施、工单服务等等,或通过不同的业务组,或通过搜索框快速定位您需要申请的服务。

                                                          +

                                                          以"在vSphere云平台上部署虚拟机"为例:

                                                          +
                                                            +
                                                          1. 在左侧导航栏点击「服务目录」,选择某 "vSphere VM" 服务,点击将进入服务申请页面

                                                            +
                                                          2. +
                                                          3. 服务申请页面的相关申请参数:

                                                            +
                                                          4. +
                                                          +

                                                          组织信息

                                                          +
                                                            +
                                                          • 业务组 若该服务为全部业务组,即共享服务,需选择业务组(该业务组需有相关资源池,否则将不允许申请);若服务配置时该服务已指定业务组,则无需填写
                                                          • +
                                                          • 项目 若该业务组下划分了项目,则可以选择项目
                                                          • +
                                                          • 所有者 选择该服务的所有者,所有者需为业务组成员,服务部署的所有者,在服务部署的运维操作中支持更新所有者
                                                          • +
                                                          +

                                                          部署信息

                                                          +
                                                            +
                                                          • 名称 若业务组已配置 “服务部署名命名规则”,则服务部署名无需填写,将根据业务组规则自动生成,若业务组未配置“服务部署名命名规则”,需手动填写
                                                          • +
                                                          • 数量 填写部署的数量,默认为1
                                                          • +
                                                          • 执行时间 可指定时间开始服务部署,精确到分钟
                                                          • +
                                                          • 键值标签 默认勾选,所有server节点使用相同的键值标签, 若不勾选,将列出该服务部署下的所有server节点,可为每个server节点单独设置键值标签
                                                          • +
                                                          +

                                                          其他信息

                                                          +
                                                            +
                                                          • 表单配置的参数 如果您在服务配置的表单配置中为云资源蓝图服务和手工单服务自定义相关字段,则在此处填写所需信息
                                                          • +
                                                          +

                                                          申请参数

                                                          +
                                                            +
                                                          • 申请参数 若服务配置时,仅仅勾选了 “允许改变”这一项(没有勾选“仅审批时可修改”)或 ,将出现申请参数栏,可根据需要配置相关Server、Network、等组件的详细参数
                                                          • +
                                                          • 软件配置 若在服务配置时勾选了“允许申请时添加软件”,将出现软件配置栏,可为该服务的计算节点/软件组件添加软件,点击「添加软件」 选择要安装的软件,将列出所有的软件组件;选择关系:“安装到”或“依赖于”;选择要安装到或依赖于的节点。
                                                          • +
                                                          +

                                                          填写完成后点击「申请」,将根据业务组流程控制直接部署或等待审批,可至「我的部署」-「服务部署」中查看部署情况(也可在右上角「操作历史」中查看部署情况),或至「服务请求」-「待审批」中查看审批流程。

                                                          +

                                                          在您进行服务申请时,未能一次性填写完相关参数,点击「保存」能够对已填写参数进行保存,并且在下次申请的时候,点击「加载」可以重新加载,自动填充上次已经填写好的参数。

                                                          +

                                                          在您进行服务申请时,提前配置计费规则(私有云和共有云不相同,见下文),平台可以显示此次申请的费用,计费规则的具体配置步骤:

                                                          +
                                                            +
                                                          • 针对私有云,管理员在「计量计费」-「计费规则」配置私有云的计费规则之后,用户在申请服务时,直接使用计费的API进行计费。

                                                            +
                                                          • +
                                                          • 针对公有云需要缓存公有云的单价API结构,然后计算费用。

                                                            +
                                                          • +
                                                          +

                                                          3. 层级展示

                                                          +
                                                            +
                                                          • 采用层级展示的方式,按照卡片的模式,先展示服务分组,服务分组的具体操作步骤,请参考:服务分组
                                                          • +
                                                          +
                                                            +
                                                          • 在服务目录视图界面,可查看服务分组的图标、名称、描述和文件夹的显示方式,点击一个分组,展现此服务分组的所有卡片。(注意:当管理员创建的服务卡片没有选择服务分组时,如果按照层级展示,此类型卡片会存入 “未分组的服务” 文件夹,点击进入展现所有未分组的卡片。如果管理员创建的服务卡片都是有分组的,则“未分组的服务” 文件夹不显示。)
                                                          • +
                                                          +

                                                          4. 选择蓝图进行云资源申请

                                                          +

                                                          SmartCMP支持一张服务卡片绑定多个蓝图,支持用户根据需求快速选择蓝图,例如:"申请数据库"的服务卡片,提前配置了Mysql、Oracl、NoSQL等等与数据库相关的蓝图。 +例如:可以通过以下步骤选择蓝图自服务申请:

                                                          +
                                                            +
                                                          1. 进入「服务目录」,在“申请云资源”的卡片上点击「申请」,指定关联一个蓝图,点击「下一步」

                                                            +
                                                          2. +
                                                          3. 「基本信息」页面,填写:

                                                            +
                                                              +
                                                            • 业务组 部署所属业务组
                                                            • +
                                                            • 服务部署名称 部署名称(若业务组已设定服务部署命名规则,服务部署名称将按照规则自动生成,无需填写)
                                                            • +
                                                            • 项目 部署所属项目
                                                            • +
                                                            • 所有者 部署所有者
                                                            • +
                                                            +
                                                          4. +
                                                          5. 填写相关申请参数,例如:资源池、私有网络、虚拟机配置、存储大小、节点数量等等信息。

                                                            +
                                                          6. +
                                                          7. 点击「保存」,确认无误后点击「提交」,等待部署完成。
                                                          8. +
                                                          + + +
                                                          + +
                                                          +
                                                          +
                                                          + +

                                                          results matching ""

                                                          +
                                                            + +
                                                            +
                                                            + +

                                                            No results matching ""

                                                            + +
                                                            +
                                                            +
                                                            + +
                                                            +
                                                            + +
                                                            + + + + + + + + + + + + + + +
                                                            + + +
                                                            + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git "a/AdminDoc/06\344\272\221\346\234\215\345\212\241\347\256\241\347\220\206/\346\234\215\345\212\241\347\233\256\345\275\225.md" "b/AdminDoc/06\344\272\221\346\234\215\345\212\241\347\256\241\347\220\206/\346\234\215\345\212\241\347\233\256\345\275\225.md" new file mode 100644 index 0000000..a60c98a --- /dev/null +++ "b/AdminDoc/06\344\272\221\346\234\215\345\212\241\347\256\241\347\220\206/\346\234\215\345\212\241\347\233\256\345\275\225.md" @@ -0,0 +1,73 @@ +**服务申请** +# 服务目录展现方式 +服务配置发布成功之后,将会在服务目录界面看到发布的服务卡片,服务目录的界面展示支持两种方式: +1. 标签页展示:即分组按照标签页展示,可以通过服务分组标签、业务组或搜索框快速定位您需要申请的服务。 +2. 层级展示:按照卡片的模式,先展示分组(图标,名称,描述)--文件夹的显示方式,点击一个分组,再展现这个分组的所有卡片,对于没有分组的卡片,如果按照层级展示,增加一个 未分组的服务 文件夹,点击进入展现所有未分组的卡片。如果卡片都是有分组的,则这个文件夹不显示。 + +>「Note」 服务目录展现方式,在系统配置-界面配置功能区进行选择,具体操作步骤,请参考:[界面配置](https://cloudchef.github.io/doc/AdminDoc/09系统管理/#界面配置) + +# 标签页展示{#服务目录申请} + +当服务目录以标签页方式展示时,可以通过服务分组标签,例如:数据库、基础设施、工单服务等等,或通过不同的业务组,或通过搜索框快速定位您需要申请的服务。 + +以"在vSphere云平台上部署虚拟机"为例: + +1. 在左侧导航栏点击「服务目录」,选择某 "vSphere VM" 服务,点击将进入服务申请页面 + +2. 服务申请页面的相关申请参数: + +组织信息 + + + 业务组 若该服务为全部业务组,即共享服务,需选择业务组(该业务组需有相关资源池,否则将不允许申请);若服务配置时该服务已指定业务组,则无需填写 + + 项目 若该业务组下划分了项目,则可以选择项目 + + 所有者 选择该服务的所有者,所有者需为业务组成员,服务部署的所有者,在服务部署的运维操作中支持更新所有者 + +部署信息 + + + 名称 若业务组已配置 “服务部署名命名规则”,则服务部署名无需填写,将根据业务组规则自动生成,若业务组未配置“服务部署名命名规则”,需手动填写 + + 数量 填写部署的数量,默认为1 + + 执行时间 可指定时间开始服务部署,精确到分钟 + + 键值标签 默认勾选,所有server节点使用相同的键值标签, 若不勾选,将列出该服务部署下的所有server节点,可为每个server节点单独设置键值标签 + +其他信息 + + + 表单配置的参数 如果您在服务配置的表单配置中为云资源蓝图服务和手工单服务自定义相关字段,则在此处填写所需信息 + +申请参数 + + + 申请参数 若服务配置时,仅仅勾选了 “允许改变”这一项(没有勾选“仅审批时可修改”)或 ,将出现申请参数栏,可根据需要配置相关Server、Network、等组件的详细参数 + + 软件配置 若在服务配置时勾选了“允许申请时添加软件”,将出现软件配置栏,可为该服务的计算节点/软件组件添加软件,点击「添加软件」 选择要安装的软件,将列出所有的软件组件;选择关系:“安装到”或“依赖于”;选择要安装到或依赖于的节点。 + + + 填写完成后点击「申请」,将根据业务组流程控制直接部署或等待审批,可至「我的部署」-「服务部署」中查看部署情况(也可在右上角「操作历史」中查看部署情况),或至「服务请求」-「待审批」中查看审批流程。 + + 在您进行服务申请时,未能一次性填写完相关参数,点击「保存」能够对已填写参数进行保存,并且在下次申请的时候,点击「加载」可以重新加载,自动填充上次已经填写好的参数。 + + 在您进行服务申请时,提前配置计费规则(私有云和共有云不相同,见下文),平台可以显示此次申请的费用,计费规则的具体配置步骤: + + 针对私有云,管理员在「计量计费」-「计费规则」配置私有云的计费规则之后,用户在申请服务时,直接使用计费的API进行计费。 + + + 针对公有云需要缓存公有云的单价API结构,然后计算费用。 + + + + +# 层级展示 ++ 采用层级展示的方式,按照卡片的模式,先展示服务分组,服务分组的具体操作步骤,请参考:[服务分组](https://cloudchef.github.io/doc/AdminDoc/05服务建模/服务分组.html) + + ++ 在服务目录视图界面,可查看服务分组的图标、名称、描述和文件夹的显示方式,点击一个分组,展现此服务分组的所有卡片。(注意:当管理员创建的服务卡片没有选择服务分组时,如果按照层级展示,此类型卡片会存入 “未分组的服务” 文件夹,点击进入展现所有未分组的卡片。如果管理员创建的服务卡片都是有分组的,则“未分组的服务” 文件夹不显示。) + + +# 选择蓝图进行云资源申请 +SmartCMP支持一张服务卡片绑定多个蓝图,支持用户根据需求快速选择蓝图,例如:"申请数据库"的服务卡片,提前配置了Mysql、Oracl、NoSQL等等与数据库相关的蓝图。 +例如:可以通过以下步骤选择蓝图自服务申请: +1. 进入「服务目录」,在“申请云资源”的卡片上点击「申请」,指定关联一个蓝图,点击「下一步」 + +2. 「基本信息」页面,填写: + + 业务组 部署所属业务组 + + 服务部署名称 部署名称(若业务组已设定服务部署命名规则,服务部署名称将按照规则自动生成,无需填写) + + 项目 部署所属项目 + + 所有者 部署所有者 + +3. 填写相关申请参数,例如:资源池、私有网络、虚拟机配置、存储大小、节点数量等等信息。 +4. 点击「保存」,确认无误后点击「提交」,等待部署完成。 diff --git "a/AdminDoc/06\344\272\221\346\234\215\345\212\241\347\256\241\347\220\206/\346\234\215\345\212\241\350\257\267\346\261\202.html" "b/AdminDoc/06\344\272\221\346\234\215\345\212\241\347\256\241\347\220\206/\346\234\215\345\212\241\350\257\267\346\261\202.html" new file mode 100644 index 0000000..9ecd696 --- /dev/null +++ "b/AdminDoc/06\344\272\221\346\234\215\345\212\241\347\256\241\347\220\206/\346\234\215\345\212\241\350\257\267\346\261\202.html" @@ -0,0 +1,1096 @@ + + + + + + + 服务请求 · 发行说明 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
                                                            +
                                                            + + + + + + + + +
                                                            + +
                                                            + +
                                                            + + + + + + + + +
                                                            +
                                                            + +
                                                            +
                                                            + +
                                                            + +

                                                            服务请求

                                                            +

                                                            在待审批的页面,管理员在审批流程中配置的审批人,审批人具有审批权限,则能够查看待审批的服务请求的详细信息,并进行审批操作。

                                                            +
                                                            +

                                                            「Note」如果您想查看待审批的服务请求的详细信息,请您参考:待审批

                                                            +
                                                            +

                                                            审批人执行审批操作完成之后,点击左侧菜单栏的「服务请求」-「已审批」,可查看所有已审批的申请列表。该页面显示申请编号、申请类型、服务部署名称、申请者、业务组、项目、申请状态、申请时间以及完成时间。

                                                            +
                                                            +

                                                            「Note」如果您想查看待审批的服务请求的详细信息,请您参考:已审批

                                                            +
                                                            +

                                                            1. 已审批

                                                            +

                                                            此处显示已经通过审批的所有请求。

                                                            +

                                                            在左侧导航栏点击「服务请求」-「已审批」,已审批页面显示你发起的所有审批请求其中已经审批通过的部分,其中显示审批请求的基本信息:申请编号,请求类型,服务部署名称,申请者,业务组,项目,申请状态,申请时间。

                                                            +

                                                            2. 待审批

                                                            +

                                                            在待审批的页面,管理员在审批流程中配置的审批人,审批人具有审批权限,则能够查看待审批的服务请求的详细信息,并进行审批操作。

                                                            +
                                                              +
                                                            1. 在左侧导航栏点击「服务请求」-「待审批」,我的待审批页面显示你发起的所有审批请求其中待审批部分,其中显示审批请求的基本信息:申请编号,请求类型,服务部署名称,申请者,业务组,项目,申请状态,申请时间。

                                                              +
                                                            2. +
                                                            3. 选择一个请求,点击「请求编号」链接,跳转到我的请求详情页面,可查看该请求的审批人,审批状态,基本信息,工单信息,服务部署信息,组件参数,IP地址,部署资源占用信息总览,服务请求,资源申请依据等等。

                                                              +
                                                            4. +
                                                            5. 基本信息包括请求编号,申请时间,请求类型,申请者,业务组,项目等等。

                                                              +
                                                            6. +
                                                            7. 服务部署基本信息包括服务目录,服务部署名称、数量、原因。

                                                              +
                                                            8. +
                                                            + +
                                                              +
                                                            1. 组建参数采集蓝图部署组件的参数

                                                              +
                                                            2. +
                                                            3. 查看部署资源占用信息总览:资源池名称,待分配资源等

                                                              +
                                                            4. +
                                                            5. 服务请求信息:审批流程,审批流程名称,状态,审批意见,审批人,审批角色,审批时间和审批意见等。

                                                              +
                                                            6. +
                                                            7. 点击页面下方批准按钮即可批准此次申请,申请状态变更为已审批,点击拒绝,则此处申请被驳回,填写审批意见点击退回,申请则退回申请人处修改申请详情。

                                                              +
                                                            8. +
                                                            +

                                                            3. 所有请求

                                                            +

                                                            租户管理员可查看所有申请的详细信息,具体步骤如下:

                                                            +
                                                              +
                                                            1. 点击左侧菜单栏的「服务请求」-「所有请求」,可查看该租户的所有的申请列表,包括待审批和已审批,待处理和已处理(待处理和已处理在工单服务管理中详细介绍,具体请您参考待处理已处理

                                                              +
                                                            2. +
                                                            3. 该页面显示请求编号、服务名称、请求类型、标题、业务组、项目、申请状态、申请时间以及完成时间。可点击「申请编号」可查看申请的详细信息。

                                                              +
                                                            4. +
                                                            5. 基本信息包括请求编号,申请时间,请求类型,申请者,联系方式,邮箱,业务组,项目等等。

                                                              +
                                                            6. +
                                                            7. 工单信息包括标题,描述,优先级,紧急程度。

                                                              +
                                                            8. +
                                                            9. 审批信息包括审批人,审批状态,服务部署名称,服务请求,资源申请依据。

                                                              +
                                                            10. +
                                                            11. 处理记录包括流程步骤,描述,处理结果描述,状态,处理人,处理时间

                                                              +
                                                            12. +
                                                            +
                                                            +

                                                            「Note」默认租户管理员有查看所有申请的权限

                                                            +
                                                            + + +
                                                            + +
                                                            +
                                                            +
                                                            + +

                                                            results matching ""

                                                            +
                                                              + +
                                                              +
                                                              + +

                                                              No results matching ""

                                                              + +
                                                              +
                                                              +
                                                              + +
                                                              +
                                                              + +
                                                              + + + + + + + + + + + + + + +
                                                              + + +
                                                              + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git "a/AdminDoc/06\344\272\221\346\234\215\345\212\241\347\256\241\347\220\206/\346\234\215\345\212\241\350\257\267\346\261\202.md" "b/AdminDoc/06\344\272\221\346\234\215\345\212\241\347\256\241\347\220\206/\346\234\215\345\212\241\350\257\267\346\261\202.md" new file mode 100644 index 0000000..e943221 --- /dev/null +++ "b/AdminDoc/06\344\272\221\346\234\215\345\212\241\347\256\241\347\220\206/\346\234\215\345\212\241\350\257\267\346\261\202.md" @@ -0,0 +1,55 @@ +**服务请求** + +在待审批的页面,管理员在审批流程中配置的审批人,审批人具有审批权限,则能够查看待审批的服务请求的详细信息,并进行审批操作。 + +>「Note」如果您想查看待审批的服务请求的详细信息,请您参考:[待审批](#待审批)。 + +审批人执行审批操作完成之后,点击左侧菜单栏的「服务请求」-「已审批」,可查看所有已审批的申请列表。该页面显示申请编号、申请类型、服务部署名称、申请者、业务组、项目、申请状态、申请时间以及完成时间。 + +>「Note」如果您想查看待审批的服务请求的详细信息,请您参考:[已审批](#待审批)。 + +# 已审批 + +此处显示已经通过审批的所有请求。 + +在左侧导航栏点击「服务请求」-「已审批」,已审批页面显示你发起的所有审批请求其中已经审批通过的部分,其中显示审批请求的基本信息:申请编号,请求类型,服务部署名称,申请者,业务组,项目,申请状态,申请时间。 + +# 待审批 + +在待审批的页面,管理员在审批流程中配置的审批人,审批人具有审批权限,则能够查看待审批的服务请求的详细信息,并进行审批操作。 + +1. 在左侧导航栏点击「服务请求」-「待审批」,我的待审批页面显示你发起的所有审批请求其中待审批部分,其中显示审批请求的基本信息:申请编号,请求类型,服务部署名称,申请者,业务组,项目,申请状态,申请时间。 + +2. 选择一个请求,点击「请求编号」链接,跳转到我的请求详情页面,可查看该请求的审批人,审批状态,基本信息,工单信息,服务部署信息,组件参数,IP地址,部署资源占用信息总览,服务请求,资源申请依据等等。 + +3. 基本信息包括请求编号,申请时间,请求类型,申请者,业务组,项目等等。 + +4. 服务部署基本信息包括服务目录,服务部署名称、数量、原因。 + + + +1. 组建参数采集蓝图部署组件的参数 + +2. 查看部署资源占用信息总览:资源池名称,待分配资源等 + +3. 服务请求信息:审批流程,审批流程名称,状态,审批意见,审批人,审批角色,审批时间和审批意见等。 + +4. 点击页面下方批准按钮即可批准此次申请,申请状态变更为已审批,点击拒绝,则此处申请被驳回,填写审批意见点击退回,申请则退回申请人处修改申请详情。 + +# 所有请求 + +租户管理员可查看所有申请的详细信息,具体步骤如下: + +1. 点击左侧菜单栏的「服务请求」-「所有请求」,可查看该租户的所有的申请列表,包括待审批和已审批,待处理和已处理(待处理和已处理在工单服务管理中详细介绍,具体请您参考[待处理](https://cloudchef.github.io/doc/AdminDoc/08工单服务管理/#待处理)、[已处理](https://cloudchef.github.io/doc/AdminDoc/08工单服务管理/#已处理)。 + +2. 该页面显示请求编号、服务名称、请求类型、标题、业务组、项目、申请状态、申请时间以及完成时间。可点击「申请编号」可查看申请的详细信息。 + +3. 基本信息包括请求编号,申请时间,请求类型,申请者,联系方式,邮箱,业务组,项目等等。 + +4. 工单信息包括标题,描述,优先级,紧急程度。 + +5. 审批信息包括审批人,审批状态,服务部署名称,服务请求,资源申请依据。 + +6. 处理记录包括流程步骤,描述,处理结果描述,状态,处理人,处理时间 + +>「Note」默认租户管理员有查看所有申请的权限 diff --git "a/AdminDoc/06\344\272\221\346\234\215\345\212\241\347\256\241\347\220\206/\347\233\221\346\216\247\345\221\212\350\255\246.html" "b/AdminDoc/06\344\272\221\346\234\215\345\212\241\347\256\241\347\220\206/\347\233\221\346\216\247\345\221\212\350\255\246.html" new file mode 100644 index 0000000..7a58bf6 --- /dev/null +++ "b/AdminDoc/06\344\272\221\346\234\215\345\212\241\347\256\241\347\220\206/\347\233\221\346\216\247\345\221\212\350\255\246.html" @@ -0,0 +1,1154 @@ + + + + + + + 监控告警 · 发行说明 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
                                                              +
                                                              + + + + + + + + +
                                                              + +
                                                              + +
                                                              + + + + + + + + +
                                                              +
                                                              + +
                                                              +
                                                              + +
                                                              + +

                                                              监控告警

                                                              +

                                                              告警为用户提供了云主机、任意应用的告警配置自服务。

                                                              +

                                                              在左边导航选择「监控告警」,监控告警下有5个二级菜单,依次是「组件监控」「告警策略」「告警」「已触发警报」、「宿主机监控」和「云平台告警」。

                                                              +

                                                              1. 组件监控

                                                              +

                                                              组件监控作为单独的页面,展示对应用的监控,监控代理组件与组件库中的监控代理组件同步。添加代理组件的具体步骤,请参考:组件库

                                                              +

                                                              点击左侧导航栏「监控告警」- 「组件监控」,点击菜单「组件监控」,左侧展现Export组件的树形结构,右侧显示相关的Exporter(用于描述所有的Exporter的组件, 每个组件能定义自己支持的组件类型。) +点击右侧显示的NginxExporter,进入 「NginxExporter」标签页,页面左侧显示NginxExporter关联的实例,右侧显示NginxExporter组件的相关描述信息。

                                                              +
                                                              +

                                                              「Note」 组件监控的权限管理:每个用户都可以看见菜单,能够查看的组件资源范围是基于用户提前配置的权限,例如,租户管理员看见自己拥有的资源,业务组管理员看见自己管理业务组内的所有资源,等等

                                                              +
                                                              +

                                                              2. 告警策略

                                                              +

                                                              用来定义所选的对象类型(如云主机/应用/容器等)触发警报的条件。点击左侧导航「监控告警」下的二级菜单「告警策略」,显示告警策略列表,列表中包括告警策略名称、类别、类型(宕机、阈值或预测)、创建时间以及创建者等。可对告警策略进行添加、编辑、删除等操作。

                                                              +

                                                              2.1.1. 添加告警策略

                                                              +

                                                              在左侧导航选择「告警策略」,进入告警策略列表界面,点击「添加」,进入添加告警策略界面。 在添加告警策略界面,定义告警策略的基本信息。依次输入告警策略的名字,选择告警类别和告警类型。告警类别支持对云主机、应用和容器的告警。告警类型支持对云主机的宕机告警、阈值告警和预测告警,支持对应用的阈值告警和预测告警,对容器的阈值和预测告警。根据选择的不同告警类型定义告警策略的触发条件。

                                                              +

                                                              宕机告警:输入时间(分钟),云主机在规定时间内失去响应后,将触发宕机警报

                                                              +

                                                              阈值告警:选择云主机/容器的xx指标(如内存使用(百分比)、CPU使用率(百分比)、POD内存使用等)的取最大值/最小值/平均值,在过去xx时间(分钟/小时),若该值小于/小于等于/大于/大于等于xx值后,将触发警报

                                                              +

                                                              预测告警:基于过去xx时间(分钟/小时/天)内的xx指标的值(如内存使用(百分比)、CPU使用率(百分比)等),预测未来xx时间(分钟/小时/天)内,若该指标的值小于/小于等于/大于/大于等于xx值后,将触发警报

                                                              +
                                                                +
                                                              1. 点击「保存」,提示告警策略添加成功,返回告警策略列表界面
                                                              2. +
                                                              +

                                                              2.1.2. 编辑告警策略

                                                              +

                                                              点击「告警策略」,选择一行已添加的告警策略,工具栏「编辑」按钮变成可用,点击「编辑」按钮,或者直接点击告警策略名称,进入告警策略编辑界面。

                                                              +

                                                              2.1.3. 删除告警策略

                                                              +

                                                              点击「告警策略」,选择一行已添加的告警策略,工具栏「删除」按钮变成可用,点击「删除」按钮,确认删除提示后,提示告警策略删除成功。

                                                              +

                                                              3. 告警

                                                              +

                                                              用来定义所选告警策略应用到的范围以及触发的通知和操作。点击左侧导航「监控告警」下的二级菜单「告警」,显示告警列表,包括告警名称、警报级别、告警策略名称、范围、对象、状态、创建时间、创建者等。可对告警进行添加、编辑、启用、禁用、删除等操作。

                                                              +

                                                              3.1.1. 添加告警

                                                              +

                                                              在左侧导航选择「告警」,点击「添加」,进入添加告警界面,定义告警的基本信息。输入告警的名字,选择告警策略、告警范围、告警对象以及警报级别,触发xx次后,自动升级为更高级别。告警范围支持对租户、业务组、项目、服务部署和云主机的告警;告警对象依据所选的告警范围;告警级别为警告和危险。 定义触发告警后,通知到的用户、角色或邮件

                                                              +

                                                              可定义警报触发后的行为,触发行为后,可设置最多xx次操作后停止自动执行

                                                              +

                                                              支持云主机的扩展操作:横向收缩一个节点、横向扩展一个节点、关机、重新启动、扩展5G逻辑卷、增加1G内存(vSphere)、增加1个vCPU(vSphere) + 支持对容器的扩展操作:减少3个副本数、增加2个副本数

                                                              +
                                                                +
                                                              1. 点击「保存」,返回告警列表界面
                                                              2. +
                                                              +

                                                              4. 已触发警报

                                                              +

                                                              点击左侧导航「监控告警」下的二级菜单「已触发警报」,显示已触发警报列表,包括警报级别、告警名称、触发告警对象、告警类型、第一次触发时间、最后一次触发时间、已触发次数以及告警状态。告警状态分为已触发、已暂停、已解除。还可对列表中的触发警报进行恢复、暂停、解除操作。

                                                              +
                                                                +
                                                              1. 选择「已触发警报」,任意选择一条「已触发」的警报,工具栏中的「暂停」和「解除」将变为可用,点击「暂停」,将会有提示,确认后,提示操作成功

                                                                +
                                                              2. +
                                                              3. 点击列表中的告警名称,可查看该警报的详细信息以及历史数据。该页显示了告警触发的对象、警报的级别,触发的条件、业务组、所有者、IP地址、警报图表(可调控时间范围灵活查看各个时间段的警报数据)、以及该告警的后续操作历史

                                                                +
                                                              4. +
                                                              5. 告警触发的对象可链接,如服务部署链接至服务部署监控页面、云主机链接至云主机监控页面、应用链接至服务部署监控页面

                                                                +
                                                              6. +
                                                              +

                                                              5. 宿主机监控

                                                              +

                                                              在主机运行状况页面,用户可以看到当前系统中,每个平台中的主机运行状况。主机的运行状况对应三个图表,分别是:CPU使用状况(GHz)、内存使用状况(GB)、存储使用情况(GB)。

                                                              +

                                                              用户可以设置时间跨度来更改图表统计方式。如果当前系统中有多个云平台,用户会看到多个云平台的标签,点击不同的云平台标签,会跳到对应云平台的数据统计页面,查看相应的图表,获取云平台下的主机信息。

                                                              +

                                                              6. 云平台告警

                                                              +

                                                              6.1.1. 订阅云平台告警

                                                              +

                                                              选择「监控告警」-「云平台告警」,点击「订阅」按钮,进入订阅告警页面, 在订阅告警界面,依次选择「云平台管理」,「监控对象」,「告警」, 选择完之后,会显示告警的详细信息,查看「通用」,显示该告警的基本信息,该界面信息不能更改。点击「触发器」标签页,查看触发器。 点击「操作」标签页,设置告警规则操作:可设置重复操作频率;点击添加告警操作,选择操作(警告或邮件);选择警告和警示的次数(无、一次或重复)。点击「保存」,提示订阅告警成功。

                                                              +

                                                              6.1.2. 编辑云平台告警

                                                              +

                                                              点击「云平台告警」,选择一行已订阅的告警,工具栏「编辑」按钮变成可用,点击「编辑」按钮,或者直接点击告警名称,进入告警编辑界面。

                                                              +

                                                              6.1.3. 刷新告警

                                                              +

                                                              点击「云平台告警」,查看告警页面,当已订阅的告警到达该告警的触发器条件时,触发告警,此时右上角小铃铛会有提示,点击可查看已触发的告警信息或点击「刷新」即可查看最新的告警信息。

                                                              +

                                                              6.1.4. 取消订阅告警

                                                              +

                                                              点击「主机告警」,告警页面选择一个已订阅的告警,点击「取消订阅」按钮,在弹出提示框点击「是」,提示取消告警订阅成功。

                                                              +

                                                              7. 任意应用的告警

                                                              +

                                                              7.1. 云资源监控

                                                              +

                                                              支持针对云主机、应用软件以及容器进行监控,实时动态搜集监控数据。

                                                              +

                                                              7.2. 云主机监控

                                                              +
                                                                +
                                                              1. 若在配置虚机模板时已添加监控代理,服务部署成功后,点击左侧导航栏「我的部署」-「服务部署」进入服务部署列表界面,点击服务部署名称,进入服务部署详情界面

                                                                +
                                                              2. +
                                                              3. 点击「监控」标签页,点击云主机名标签页将显示该部署下的云主机的监控信息。若该部署含多个云主机,则会出现多个标签页,每个标签页对应一个云主机的监控。可调整时间跨度查看监控信息。

                                                                +
                                                                  +
                                                                • CPU、CPU使用率、CPU状态

                                                                  +
                                                                • +
                                                                • 内存总量、内存使用率、内存状态

                                                                  +
                                                                • +
                                                                • SWAP总量、SWAP使用率

                                                                  +
                                                                • +
                                                                • 根文件系统总量、根文件系统使用率

                                                                  +
                                                                • +
                                                                • 丢失/错误的网络包、网络流量

                                                                  +
                                                                • +
                                                                • 磁盘吞吐量、磁盘IOPS

                                                                  +
                                                                • +
                                                                • 文件系统空间使用率

                                                                  +
                                                                • +
                                                                +

                                                                若在配置虚机模板时未添加监控,可在部署成功后,运维添加。「我的部署」-「云主机」,进入云主机列表界面,选择云主机,点击顶部的「启用/切换监控」,给该云主机添加监控,添加成功后,将在「服务部署」-「监控」页面查看。

                                                                +

                                                                也可点击「我的部署」-「云主机」,进入云主机列表界面,点击云主机名称进行云主机详情页面,点击「监控」标签页,点击云主机名标签页将显示云主机的监控信息。可调整时间跨度查看监控信息。

                                                                +
                                                              4. +
                                                              +

                                                              7.3. 应用监控

                                                              +

                                                              支持对JMX、MySQL、Nginx的应用监控。需要在蓝图建模时,增加对应用的Exporter监控的添加,带应用及其监控的蓝图部署成功后。

                                                              +
                                                                +
                                                              1. 点击左侧导航栏「我的部署」-「服务部署」进入服务部署列表界面

                                                                +
                                                              2. +
                                                              3. 点击服务部署名称,进入服务部署详情界面

                                                                +
                                                              4. +
                                                              5. 点击「监控」标签页,点击应用标签栏,该页面将显示该部署下的应用监控的监控信息

                                                                +
                                                              6. +
                                                              +

                                                              7.4. Kubernetes监控

                                                              +

                                                              支持Kubernetes的监控告警,查看Kubernetes监控前提:

                                                              +
                                                                +
                                                              • Kubernetes云平台中已添加Prometheus监控

                                                                +
                                                              • +
                                                              • 在「基础设施」-「云平台管理」-「Kubernetes」中,添加Kubernetes云平台添加的Prometheus监控地址:如192.xx.xx.xx:xxxx

                                                                +
                                                              • +
                                                              +

                                                              完成以上操作,部署kubernetes成功后,

                                                              +
                                                                +
                                                              1. 点击「我的部署」-「云资源」-「容器服务」-「部署」进入容器部署列表界面

                                                                +
                                                              2. +
                                                              3. 点击部署名称,进入kubernetes部署详情界面

                                                                +
                                                              4. +
                                                              5. 点击「监控」标签页,该页面将显示该部署监控信息:Pods +CPU使用情况(核)、Pods内存使用情况、Pods网络 流量等

                                                                +
                                                              6. +
                                                              + + +
                                                              + +
                                                              +
                                                              +
                                                              + +

                                                              results matching ""

                                                              +
                                                                + +
                                                                +
                                                                + +

                                                                No results matching ""

                                                                + +
                                                                +
                                                                +
                                                                + +
                                                                +
                                                                + +
                                                                + + + + + + + + + + + + + + +
                                                                + + +
                                                                + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git "a/AdminDoc/06\344\272\221\346\234\215\345\212\241\347\256\241\347\220\206/\347\233\221\346\216\247\345\221\212\350\255\246.md" "b/AdminDoc/06\344\272\221\346\234\215\345\212\241\347\256\241\347\220\206/\347\233\221\346\216\247\345\221\212\350\255\246.md" new file mode 100644 index 0000000..31a9c9a --- /dev/null +++ "b/AdminDoc/06\344\272\221\346\234\215\345\212\241\347\256\241\347\220\206/\347\233\221\346\216\247\345\221\212\350\255\246.md" @@ -0,0 +1,148 @@ + +**监控告警** + +告警为用户提供了云主机、任意应用的告警配置自服务。 + +在左边导航选择「监控告警」,监控告警下有5个二级菜单,依次是「组件监控」「告警策略」「告警」「已触发警报」、「宿主机监控」和「云平台告警」。 + +# 组件监控 +组件监控作为单独的页面,展示对应用的监控,监控代理组件与组件库中的监控代理组件同步。添加代理组件的具体步骤,请参考:[组件库](https://cloudchef.github.io/doc/AdminDoc/05服务建模/组件库.html) + +点击左侧导航栏「监控告警」- 「组件监控」,点击菜单「组件监控」,左侧展现Export组件的树形结构,右侧显示相关的Exporter(用于描述所有的Exporter的组件, 每个组件能定义自己支持的组件类型。) +点击右侧显示的NginxExporter,进入 「NginxExporter」标签页,页面左侧显示NginxExporter关联的实例,右侧显示NginxExporter组件的相关描述信息。 + +>「Note」 组件监控的权限管理:每个用户都可以看见菜单,能够查看的组件资源范围是基于用户提前配置的权限,例如,租户管理员看见自己拥有的资源,业务组管理员看见自己管理业务组内的所有资源,等等 + + + + + + +# 告警策略 + +用来定义所选的对象类型(如云主机/应用/容器等)触发警报的条件。点击左侧导航「监控告警」下的二级菜单「告警策略」,显示告警策略列表,列表中包括告警策略名称、类别、类型(宕机、阈值或预测)、创建时间以及创建者等。可对告警策略进行添加、编辑、删除等操作。 + +### 添加告警策略 {#添加告警策略 .afff6} +在左侧导航选择「告警策略」,进入告警策略列表界面,点击「添加」,进入添加告警策略界面。 在添加告警策略界面,定义告警策略的基本信息。依次输入告警策略的名字,选择告警类别和告警类型。告警类别支持对云主机、应用和容器的告警。告警类型支持对云主机的宕机告警、阈值告警和预测告警,支持对应用的阈值告警和预测告警,对容器的阈值和预测告警。根据选择的不同告警类型定义告警策略的触发条件。 + +宕机告警:输入时间(分钟),云主机在规定时间内失去响应后,将触发宕机警报 + +阈值告警:选择云主机/容器的xx指标(如内存使用(百分比)、CPU使用率(百分比)、POD内存使用等)的取最大值/最小值/平均值,在过去xx时间(分钟/小时),若该值小于/小于等于/大于/大于等于xx值后,将触发警报 + +预测告警:基于过去xx时间(分钟/小时/天)内的xx指标的值(如内存使用(百分比)、CPU使用率(百分比)等),预测未来xx时间(分钟/小时/天)内,若该指标的值小于/小于等于/大于/大于等于xx值后,将触发警报 + +4. 点击「保存」,提示告警策略添加成功,返回告警策略列表界面 + +### 编辑告警策略 {#编辑告警策略 .afff6} + +点击「告警策略」,选择一行已添加的告警策略,工具栏「编辑」按钮变成可用,点击「编辑」按钮,或者直接点击告警策略名称,进入告警策略编辑界面。 + +### 删除告警策略 {#删除告警策略 .afff6} + +点击「告警策略」,选择一行已添加的告警策略,工具栏「删除」按钮变成可用,点击「删除」按钮,确认删除提示后,提示告警策略删除成功。 + +# 告警 + +用来定义所选告警策略应用到的范围以及触发的通知和操作。点击左侧导航「监控告警」下的二级菜单「告警」,显示告警列表,包括告警名称、警报级别、告警策略名称、范围、对象、状态、创建时间、创建者等。可对告警进行添加、编辑、启用、禁用、删除等操作。 + +### 添加告警 {#添加告警 .afff6} + +在左侧导航选择「告警」,点击「添加」,进入添加告警界面,定义告警的基本信息。输入告警的名字,选择告警策略、告警范围、告警对象以及警报级别,触发xx次后,自动升级为更高级别。告警范围支持对租户、业务组、项目、服务部署和云主机的告警;告警对象依据所选的告警范围;告警级别为警告和危险。 定义触发告警后,通知到的用户、角色或邮件 + +可定义警报触发后的行为,触发行为后,可设置最多xx次操作后停止自动执行 + +支持云主机的扩展操作:横向收缩一个节点、横向扩展一个节点、关机、重新启动、扩展5G逻辑卷、增加1G内存(vSphere)、增加1个vCPU(vSphere) + 支持对容器的扩展操作:减少3个副本数、增加2个副本数 + +5. 点击「保存」,返回告警列表界面 + +# 已触发警报 + +点击左侧导航「监控告警」下的二级菜单「已触发警报」,显示已触发警报列表,包括警报级别、告警名称、触发告警对象、告警类型、第一次触发时间、最后一次触发时间、已触发次数以及告警状态。告警状态分为已触发、已暂停、已解除。还可对列表中的触发警报进行恢复、暂停、解除操作。 + +1. 选择「已触发警报」,任意选择一条「已触发」的警报,工具栏中的「暂停」和「解除」将变为可用,点击「暂停」,将会有提示,确认后,提示操作成功 + +2. 点击列表中的告警名称,可查看该警报的详细信息以及历史数据。该页显示了告警触发的对象、警报的级别,触发的条件、业务组、所有者、IP地址、警报图表(可调控时间范围灵活查看各个时间段的警报数据)、以及该告警的后续操作历史 + +3. 告警触发的对象可链接,如服务部署链接至服务部署监控页面、云主机链接至云主机监控页面、应用链接至服务部署监控页面 + +# 宿主机监控 + +在主机运行状况页面,用户可以看到当前系统中,每个平台中的主机运行状况。主机的运行状况对应三个图表,分别是:CPU使用状况(GHz)、内存使用状况(GB)、存储使用情况(GB)。 + +用户可以设置时间跨度来更改图表统计方式。如果当前系统中有多个云平台,用户会看到多个云平台的标签,点击不同的云平台标签,会跳到对应云平台的数据统计页面,查看相应的图表,获取云平台下的主机信息。 + +# 云平台告警 + +### 订阅云平台告警 {#订阅云平台告警 .afff6} + + 选择「监控告警」-「云平台告警」,点击「订阅」按钮,进入订阅告警页面, 在订阅告警界面,依次选择「云平台管理」,「监控对象」,「告警」, 选择完之后,会显示告警的详细信息,查看「通用」,显示该告警的基本信息,该界面信息不能更改。点击「触发器」标签页,查看触发器。 点击「操作」标签页,设置告警规则操作:可设置重复操作频率;点击添加告警操作,选择操作(警告或邮件);选择警告和警示的次数(无、一次或重复)。点击「保存」,提示订阅告警成功。 + +### 编辑云平台告警 {#编辑云平台告警 .afff6} + +点击「云平台告警」,选择一行已订阅的告警,工具栏「编辑」按钮变成可用,点击「编辑」按钮,或者直接点击告警名称,进入告警编辑界面。 + +### 刷新告警 {#刷新告警 .afff6} + +点击「云平台告警」,查看告警页面,当已订阅的告警到达该告警的触发器条件时,触发告警,此时右上角小铃铛会有提示,点击可查看已触发的告警信息或点击「刷新」即可查看最新的告警信息。 + +### 取消订阅告警 {#取消订阅告警 .afff6} + +点击「主机告警」,告警页面选择一个已订阅的告警,点击「取消订阅」按钮,在弹出提示框点击「是」,提示取消告警订阅成功。 + +# 任意应用的告警 + +## 云资源监控 + +支持针对云主机、应用软件以及容器进行监控,实时动态搜集监控数据。 + +## 云主机监控 {#云主机监控 .afff6} + +1. 若在配置虚机模板时已添加监控代理,服务部署成功后,点击左侧导航栏「我的部署」-「服务部署」进入服务部署列表界面,点击服务部署名称,进入服务部署详情界面 + +2. 点击「监控」标签页,点击云主机名标签页将显示该部署下的云主机的监控信息。若该部署含多个云主机,则会出现多个标签页,每个标签页对应一个云主机的监控。可调整时间跨度查看监控信息。 + + CPU、CPU使用率、CPU状态 + + + 内存总量、内存使用率、内存状态 + + + SWAP总量、SWAP使用率 + + + 根文件系统总量、根文件系统使用率 + + + 丢失/错误的网络包、网络流量 + + + 磁盘吞吐量、磁盘IOPS + + + 文件系统空间使用率 + + 若在配置虚机模板时未添加监控,可在部署成功后,运维添加。「我的部署」-「云主机」,进入云主机列表界面,选择云主机,点击顶部的「启用/切换监控」,给该云主机添加监控,添加成功后,将在「服务部署」-「监控」页面查看。 + + 也可点击「我的部署」-「云主机」,进入云主机列表界面,点击云主机名称进行云主机详情页面,点击「监控」标签页,点击云主机名标签页将显示云主机的监控信息。可调整时间跨度查看监控信息。 + +## 应用监控 {#应用监控 .afff6} + +支持对JMX、MySQL、Nginx的应用监控。需要在蓝图建模时,增加对应用的Exporter监控的添加,带应用及其监控的蓝图部署成功后。 + +1. 点击左侧导航栏「我的部署」-「服务部署」进入服务部署列表界面 + +2. 点击服务部署名称,进入服务部署详情界面 + +3. 点击「监控」标签页,点击应用标签栏,该页面将显示该部署下的应用监控的监控信息 + + +## Kubernetes监控 {#kubernetes监控 .afff6} + +支持Kubernetes的监控告警,查看Kubernetes监控前提: + +- Kubernetes云平台中已添加Prometheus监控 + +- 在「基础设施」-「云平台管理」-「Kubernetes」中,添加Kubernetes云平台添加的Prometheus监控地址:如192.xx.xx.xx:xxxx + +完成以上操作,部署kubernetes成功后, + +1. 点击「我的部署」-「云资源」-「容器服务」-「部署」进入容器部署列表界面 + +2. 点击部署名称,进入kubernetes部署详情界面 + +3. 点击「监控」标签页,该页面将显示该部署监控信息:Pods + CPU使用情况(核)、Pods内存使用情况、Pods网络 流量等 diff --git "a/AdminDoc/06\344\272\221\346\234\215\345\212\241\347\256\241\347\220\206/\350\265\204\346\272\220\345\233\236\346\224\266.html" "b/AdminDoc/06\344\272\221\346\234\215\345\212\241\347\256\241\347\220\206/\350\265\204\346\272\220\345\233\236\346\224\266.html" new file mode 100644 index 0000000..25c22d8 --- /dev/null +++ "b/AdminDoc/06\344\272\221\346\234\215\345\212\241\347\256\241\347\220\206/\350\265\204\346\272\220\345\233\236\346\224\266.html" @@ -0,0 +1,1089 @@ + + + + + + + 资源回收 · 发行说明 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
                                                                +
                                                                + + + + + + + + +
                                                                + +
                                                                + +
                                                                + + + + + + + + +
                                                                +
                                                                + +
                                                                +
                                                                + +
                                                                + +

                                                                资源回收

                                                                +

                                                                1. 系统自动回收资源

                                                                +

                                                                SmartCMP通过在业务组或服务配置设置服务部署租用时间和保留时间,使资源在被申请使用后,能够在规定时间内自动回收。

                                                                +
                                                                  +
                                                                1. 「组织架构」-「业务组」,点击业务组名称,进入「概况」页面,在该页面可修改业务组下的服务部署租用时间范围和服务部署保留时间范围

                                                                  +
                                                                2. +
                                                                3. 「服务建模」-「服务配置」,点击服务配置名称,进入「概况」页面,在该页面可修改服务配置下的服务部署租用时间和服务部署保留时间

                                                                  +
                                                                4. +
                                                                +
                                                                +

                                                                「Note」服务配置处的租用/保留时间不能超过业务组上的最大时间范围。

                                                                +
                                                                +

                                                                若服务的租用时间到期后,该部署下的所有云主机将会被自动关机;

                                                                +

                                                                若服务的保留时间到期后,该部署下的所有云主机将被删除,资源释放。

                                                                +

                                                                2. 手动回收资源

                                                                +
                                                                  +
                                                                1. 「我的部署」-「服务部署」,进入服务部署列表界面,选择某服务部署,顶部将出现对该服务的运维操作列表

                                                                  +
                                                                2. +
                                                                3. 点击「卸除服务部署」,该操作将卸除该服务部署包含的所有云资源

                                                                  +
                                                                4. +
                                                                5. 也可「启用定时」定时卸除资源

                                                                  +
                                                                6. +
                                                                7. 「确定」后,若业务组有审批流程,则审批通过后将开始卸除;若无审批流程,则直接开始卸除

                                                                  +
                                                                8. +
                                                                +

                                                                3. 服务部署延期

                                                                +

                                                                若该服务将到期时,可对该服务部署进行延期。

                                                                +
                                                                  +
                                                                1. 点击左侧导航栏的「组织架构」-「业务组」,进入「概况」页面,在该页面可配置业务组下的「最大可延期次数」,以保证服务的租用时间到期后仍可以正常使用,也可控制业务组内的资源申请

                                                                  +
                                                                2. +
                                                                3. 业务组成员申请服务部署成功后,在「我的部署」-「服务部署」,选择某服务部署,服务部署列表界面顶部将出现「延长过期时间」的运维操作

                                                                  +
                                                                4. +
                                                                5. 点击「延长过期时间」,可延长到期时间,该页面还显示「已延长次数」以及该业务组下的「最大可延期次数」

                                                                  +
                                                                6. +
                                                                7. 点击「确定」,若业务组有审批流程,则审批通过后将执行;若无审批流程,则直接开始执行

                                                                  +
                                                                8. +
                                                                +

                                                                4. 回收站

                                                                +

                                                                回收站功能,优化资源回收流程

                                                                +

                                                                存在误删除的情况时,支持找回资源与数据。具体步骤:

                                                                +
                                                                  +
                                                                1. 在左侧菜单选择「我的部署」-「回收站」在回收站列表页面再对该服务部署进行手工「删除」操作,该资源阶段状态显示为已删除,该服务部署信息在回收站列表页面默认保留一天,到期之后服务部署信息永久删除 +,资源也从云平台永久释放回收。

                                                                  +
                                                                2. +
                                                                3. 回收站列表页面的服务进行还原,点击「还原」则可以还原资源。

                                                                  +
                                                                4. +
                                                                + + +
                                                                + +
                                                                +
                                                                +
                                                                + +

                                                                results matching ""

                                                                +
                                                                  + +
                                                                  +
                                                                  + +

                                                                  No results matching ""

                                                                  + +
                                                                  +
                                                                  +
                                                                  + +
                                                                  +
                                                                  + +
                                                                  + + + + + + + + + + + + + + +
                                                                  + + +
                                                                  + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git "a/AdminDoc/06\344\272\221\346\234\215\345\212\241\347\256\241\347\220\206/\350\265\204\346\272\220\345\233\236\346\224\266.md" "b/AdminDoc/06\344\272\221\346\234\215\345\212\241\347\256\241\347\220\206/\350\265\204\346\272\220\345\233\236\346\224\266.md" new file mode 100644 index 0000000..5e52963 --- /dev/null +++ "b/AdminDoc/06\344\272\221\346\234\215\345\212\241\347\256\241\347\220\206/\350\265\204\346\272\220\345\233\236\346\224\266.md" @@ -0,0 +1,49 @@ +**资源回收** + + +# 系统自动回收资源 + +SmartCMP通过在业务组或服务配置设置服务部署租用时间和保留时间,使资源在被申请使用后,能够在规定时间内自动回收。 + +1. 「组织架构」-「业务组」,点击业务组名称,进入「概况」页面,在该页面可修改业务组下的服务部署租用时间范围和服务部署保留时间范围 + +2. 「服务建模」-「服务配置」,点击服务配置名称,进入「概况」页面,在该页面可修改服务配置下的服务部署租用时间和服务部署保留时间 + +>「Note」服务配置处的租用/保留时间不能超过业务组上的最大时间范围。 + +若服务的租用时间到期后,该部署下的所有云主机将会被自动关机; + +若服务的保留时间到期后,该部署下的所有云主机将被删除,资源释放。 + +# 手动回收资源 + +1. 「我的部署」-「服务部署」,进入服务部署列表界面,选择某服务部署,顶部将出现对该服务的运维操作列表 + +2. 点击「卸除服务部署」,该操作将卸除该服务部署包含的所有云资源 + +3. 也可「启用定时」定时卸除资源 + +4. 「确定」后,若业务组有审批流程,则审批通过后将开始卸除;若无审批流程,则直接开始卸除 + +# 服务部署延期 + +若该服务将到期时,可对该服务部署进行延期。 + +1. 点击左侧导航栏的「组织架构」-「业务组」,进入「概况」页面,在该页面可配置业务组下的「最大可延期次数」,以保证服务的租用时间到期后仍可以正常使用,也可控制业务组内的资源申请 + +2. 业务组成员申请服务部署成功后,在「我的部署」-「服务部署」,选择某服务部署,服务部署列表界面顶部将出现「延长过期时间」的运维操作 + +3. 点击「延长过期时间」,可延长到期时间,该页面还显示「已延长次数」以及该业务组下的「最大可延期次数」 + +4. 点击「确定」,若业务组有审批流程,则审批通过后将执行;若无审批流程,则直接开始执行 + +# 回收站 + +回收站功能,优化资源回收流程 + +存在误删除的情况时,支持找回资源与数据。具体步骤: + +1. 在左侧菜单选择「我的部署」-「回收站」在回收站列表页面再对该服务部署进行手工「删除」操作,该资源阶段状态显示为已删除,该服务部署信息在回收站列表页面默认保留一天,到期之后服务部署信息永久删除 + ,资源也从云平台永久释放回收。 + +2. 回收站列表页面的服务进行还原,点击「还原」则可以还原资源。 diff --git "a/AdminDoc/07\344\272\221\350\265\204\346\272\220\345\210\206\346\236\220/README.md" "b/AdminDoc/07\344\272\221\350\265\204\346\272\220\345\210\206\346\236\220/README.md" new file mode 100644 index 0000000..15d69bc --- /dev/null +++ "b/AdminDoc/07\344\272\221\350\265\204\346\272\220\345\210\206\346\236\220/README.md" @@ -0,0 +1,35 @@ +**云资源分析** + +# 数据中心概览 + +对于拥有查看概览权限的用户,用户可以看到「资源分析」-「数据中心概览」菜单。概览视图用来查看数据中心的当前状态和最近7天的状态信息。在SmartCMP里,数据中心是指一个地理位置上的所有云平台的集合。在「数据中西概览」界面内,用户可以看到数据中心分布图,以及每个数据中心目前CPU、内存、存储、云主机和物理主机的状态和使用情况,点击右上角的「放大」图标,可进入全屏模式查看。 + +全屏展示界面,可按「Esc」可退出全屏状态: + +图表说明: + +- 数据中心分布图:显示系统中所有数据中心的当前资源,包括CPU、内存、存储、虚拟机数量和物理主机数量。 + +- 当前资源使用情况:显示一个或多个数据中心中的资源使用情况,资源包括CPU、内存和存储,以及显示近7天的使用趋势图 + +- 云主机概览:显示一个或多个数据中心当前的云主机数量以及对应的状态 + +- 物理主机概览:显示一个或多个数据中心当前的物理主机数量以及对应的状态 + +- 最近7天实例数量和物理主机数量:显示一个或多个数据中心最近7天实例和物理机的数量以及对应的状态 + +# 资源申请趋势 + +在资源申请页面,用户可以看到当前租户下业务组的资源申请情况,这个页面包含四个图表,分别对应为云主机申请/卸除量(个)、服务部署申请/卸除量(个)、CPU申请量(个)、内存申请量(GB)、硬盘申请量(GB)。 + +在页面上方选择筛选项:业务组、类型(各云平台)、时间跨度。用户通过设置时间跨度来改变图表的统计方式,从而更直观的获取资源申请信息。 + +# 业务组资源占用 + +在业务组资源占用页面,用户可以看到当前系统中,每个业务组的资源占用情况。业务组资源占用页面中显示了四种信息,分别对应四个图表,分别是:CPU使用情况(个)、内存使用情况(GB)、存储使用情况(GB)、虚机使用个数(个)。 + +用户可以选择类型下拉列表中的云平台,图表会显示当前选中的云平台的相应信息,同时也可以设置时间跨度,来更改图表统计方式。如果当前系统中有多个业务组,用户可从业务组下拉列表中选择某个业务组,则会显示对应业务组的数据统计页面,查看相应的图表,获取信息。 + +# 报表 + +您可以在「资源分析」-「报表」中,查看相关的计费报表以及云主机总体情况报表或其他自定义报表。在「系统管理」-「报表配置」中,可针对不同用户角色,选择启用或禁用某一报表。支持对报表的多个维度的筛选条件以及表头的展示列选择,可导出Excel。 diff --git "a/AdminDoc/07\344\272\221\350\265\204\346\272\220\345\210\206\346\236\220/index.html" "b/AdminDoc/07\344\272\221\350\265\204\346\272\220\345\210\206\346\236\220/index.html" new file mode 100644 index 0000000..ec571b8 --- /dev/null +++ "b/AdminDoc/07\344\272\221\350\265\204\346\272\220\345\210\206\346\236\220/index.html" @@ -0,0 +1,1067 @@ + + + + + + + 云资源分析 · 发行说明 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
                                                                  +
                                                                  + + + + + + + + +
                                                                  + +
                                                                  + +
                                                                  + + + + + + + + +
                                                                  +
                                                                  + +
                                                                  +
                                                                  + +
                                                                  + +

                                                                  云资源分析

                                                                  +

                                                                  1. 数据中心概览

                                                                  +

                                                                  对于拥有查看概览权限的用户,用户可以看到「资源分析」-「数据中心概览」菜单。概览视图用来查看数据中心的当前状态和最近7天的状态信息。在SmartCMP里,数据中心是指一个地理位置上的所有云平台的集合。在「数据中西概览」界面内,用户可以看到数据中心分布图,以及每个数据中心目前CPU、内存、存储、云主机和物理主机的状态和使用情况,点击右上角的「放大」图标,可进入全屏模式查看。

                                                                  +

                                                                  全屏展示界面,可按「Esc」可退出全屏状态:

                                                                  +

                                                                  图表说明:

                                                                  +
                                                                    +
                                                                  • 数据中心分布图:显示系统中所有数据中心的当前资源,包括CPU、内存、存储、虚拟机数量和物理主机数量。

                                                                    +
                                                                  • +
                                                                  • 当前资源使用情况:显示一个或多个数据中心中的资源使用情况,资源包括CPU、内存和存储,以及显示近7天的使用趋势图

                                                                    +
                                                                  • +
                                                                  • 云主机概览:显示一个或多个数据中心当前的云主机数量以及对应的状态

                                                                    +
                                                                  • +
                                                                  • 物理主机概览:显示一个或多个数据中心当前的物理主机数量以及对应的状态

                                                                    +
                                                                  • +
                                                                  • 最近7天实例数量和物理主机数量:显示一个或多个数据中心最近7天实例和物理机的数量以及对应的状态

                                                                    +
                                                                  • +
                                                                  +

                                                                  2. 资源申请趋势

                                                                  +

                                                                  在资源申请页面,用户可以看到当前租户下业务组的资源申请情况,这个页面包含四个图表,分别对应为云主机申请/卸除量(个)、服务部署申请/卸除量(个)、CPU申请量(个)、内存申请量(GB)、硬盘申请量(GB)。

                                                                  +

                                                                  在页面上方选择筛选项:业务组、类型(各云平台)、时间跨度。用户通过设置时间跨度来改变图表的统计方式,从而更直观的获取资源申请信息。

                                                                  +

                                                                  3. 业务组资源占用

                                                                  +

                                                                  在业务组资源占用页面,用户可以看到当前系统中,每个业务组的资源占用情况。业务组资源占用页面中显示了四种信息,分别对应四个图表,分别是:CPU使用情况(个)、内存使用情况(GB)、存储使用情况(GB)、虚机使用个数(个)。

                                                                  +

                                                                  用户可以选择类型下拉列表中的云平台,图表会显示当前选中的云平台的相应信息,同时也可以设置时间跨度,来更改图表统计方式。如果当前系统中有多个业务组,用户可从业务组下拉列表中选择某个业务组,则会显示对应业务组的数据统计页面,查看相应的图表,获取信息。

                                                                  +

                                                                  4. 报表

                                                                  +

                                                                  您可以在「资源分析」-「报表」中,查看相关的计费报表以及云主机总体情况报表或其他自定义报表。在「系统管理」-「报表配置」中,可针对不同用户角色,选择启用或禁用某一报表。支持对报表的多个维度的筛选条件以及表头的展示列选择,可导出Excel。

                                                                  + + +
                                                                  + +
                                                                  +
                                                                  +
                                                                  + +

                                                                  results matching ""

                                                                  +
                                                                    + +
                                                                    +
                                                                    + +

                                                                    No results matching ""

                                                                    + +
                                                                    +
                                                                    +
                                                                    + +
                                                                    +
                                                                    + +
                                                                    + + + + + + + + + + + + + + +
                                                                    + + +
                                                                    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git "a/AdminDoc/07\344\272\221\350\265\204\346\272\220\345\210\206\346\236\220/\345\256\271\351\207\217\347\256\241\347\220\206.html" "b/AdminDoc/07\344\272\221\350\265\204\346\272\220\345\210\206\346\236\220/\345\256\271\351\207\217\347\256\241\347\220\206.html" new file mode 100644 index 0000000..7fa834e --- /dev/null +++ "b/AdminDoc/07\344\272\221\350\265\204\346\272\220\345\210\206\346\236\220/\345\256\271\351\207\217\347\256\241\347\220\206.html" @@ -0,0 +1,1076 @@ + + + + + + + 容量管理 · 发行说明 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
                                                                    +
                                                                    + + + + + + + + +
                                                                    + +
                                                                    + +
                                                                    + + + + + + + + +
                                                                    +
                                                                    + +
                                                                    +
                                                                    + +
                                                                    + +

                                                                    容量管理

                                                                    +

                                                                    容量管理为租户、基础设施和业务组管理员等角色提供了资源池配额和IP池、IP地址使用情况的告警功能。 +SmartCMP支持对基础设施的容量使用进行检测、追踪,为您进行合理的规划提供决策依据。通过图形化的界面对数据中心整体状况的检测展示;对各种云资源的容量使用进行追踪,分析,告警; 资源池、IP池等基础设施资源使用的跟踪,根据制定的策略进行告警。

                                                                    +

                                                                    容量管理

                                                                    +

                                                                    在左边导航选择「容量管理」,「容量管理」下有2个二级菜单,依次是「资源告警」和「已触发警报」。

                                                                    +

                                                                    1. 资源告警

                                                                    +

                                                                    资源告警监控资源配额的使用情况,达到预设的条件会触发警报。点击左侧导航「容量管理」下的二级菜单「资源告警」,显示资源告警列表,列表中包括警报级别、告警名称、告警类别、告警类型、范围、对象、状态、创建时间以及创建人等。可对资源告警进行添加、编辑、启用、禁用、删除以及筛选、搜索等操作。

                                                                    +

                                                                    1.1. 添加资源告警

                                                                    +
                                                                      +
                                                                    1. 选择「资源告警」,点击「添加」按钮,进入添加资源告警页面

                                                                      +
                                                                    2. +
                                                                    3. 在添加资源告警页面,定义告警的基本信息。依次输入告警的名字,选择告警类别、以及告警类型。支持对IP池、资源池的阈值告警和预测告警

                                                                      +
                                                                    4. +
                                                                    5. 根据选择的不同告警类别和类型,定义告警触发条件和对象

                                                                      +
                                                                    6. +
                                                                    7. 点击「保存」返回资源告警列表界面

                                                                      +
                                                                    8. +
                                                                    +

                                                                    1.2. 编辑告警

                                                                    +

                                                                    点击「资源告警」,选择一行已添加的告警,工具栏「编辑」按钮变成可用,点击「编辑」按钮,或者直接点击告警名称,进入告警编辑界面。

                                                                    +

                                                                    1.3. 启用/禁用告警

                                                                    +

                                                                    点击「资源告警」,选择一行状态为启用/禁用的告警,工具栏「禁用」/「启用」按钮变成可用,点击,提示该告警状态更新成功。

                                                                    +

                                                                    1.4. 删除告警

                                                                    +

                                                                    点击「资源告警」,选择一行已添加的告警,工具栏「删除」按钮变成可用,点击「删除」按钮,确认删除提示后,提示告警删除成功。

                                                                    +

                                                                    2. 已触发警报

                                                                    +

                                                                    点击左侧导航「容量管理」-「已触发警报」,显示已触发警报列表,包括警报级别、告警名称、触发告警对象、告警类型、第一次触发时间、最后一次触发时间以及告警状态。告警状态分为已触发、已暂停、已解除。还可对列表中的触发警报进行恢复、暂停、解除操作。

                                                                    +
                                                                      +
                                                                    1. 选择「已触发警报」,任意选择一条「已触发」的警报,工具栏中的「暂停」和「解除」将变为可用,点击「暂停」,将会有提示,确认后,提示操作成功。

                                                                      +
                                                                    2. +
                                                                    3. 点击列表中的告警名称,可查看该警报的详细信息以及历史数据。该页显示了告警触发的对象、警报的级别,触发的条件、业务组、类型、资源池配额总体情况(vCPU、内存、存储、虚机数量)或IP池使用情况、警报图表(可调控时间范围灵活查看各个时间段的警报数据)、以及该告警的后续操作历史。

                                                                      +
                                                                    4. +
                                                                    5. 告警触发的对象可链接,资源池链接至「资源池管理」-「资源使用趋势」、IP池链接至「IP地址管理」-「IP地址使用趋势」

                                                                      +
                                                                    6. +
                                                                    + + +
                                                                    + +
                                                                    +
                                                                    +
                                                                    + +

                                                                    results matching ""

                                                                    +
                                                                      + +
                                                                      +
                                                                      + +

                                                                      No results matching ""

                                                                      + +
                                                                      +
                                                                      +
                                                                      + +
                                                                      +
                                                                      + +
                                                                      + + + + + + + + + + + + + + +
                                                                      + + +
                                                                      + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git "a/AdminDoc/07\344\272\221\350\265\204\346\272\220\345\210\206\346\236\220/\345\256\271\351\207\217\347\256\241\347\220\206.md" "b/AdminDoc/07\344\272\221\350\265\204\346\272\220\345\210\206\346\236\220/\345\256\271\351\207\217\347\256\241\347\220\206.md" new file mode 100644 index 0000000..0fb6cc0 --- /dev/null +++ "b/AdminDoc/07\344\272\221\350\265\204\346\272\220\345\210\206\346\236\220/\345\256\271\351\207\217\347\256\241\347\220\206.md" @@ -0,0 +1,46 @@ +**容量管理** + + +容量管理为租户、基础设施和业务组管理员等角色提供了资源池配额和IP池、IP地址使用情况的告警功能。 +SmartCMP支持对基础设施的容量使用进行检测、追踪,为您进行合理的规划提供决策依据。通过图形化的界面对数据中心整体状况的检测展示;对各种云资源的容量使用进行追踪,分析,告警; 资源池、IP池等基础设施资源使用的跟踪,根据制定的策略进行告警。 + +![容量管理](../../picture/Admin/容量管理.png) + + +在左边导航选择「容量管理」,「容量管理」下有2个二级菜单,依次是「资源告警」和「已触发警报」。 + +# 资源告警 + +资源告警监控资源配额的使用情况,达到预设的条件会触发警报。点击左侧导航「容量管理」下的二级菜单「资源告警」,显示资源告警列表,列表中包括警报级别、告警名称、告警类别、告警类型、范围、对象、状态、创建时间以及创建人等。可对资源告警进行添加、编辑、启用、禁用、删除以及筛选、搜索等操作。 + +## 添加资源告警 {#添加资源告警 .afff6} + +1. 选择「资源告警」,点击「添加」按钮,进入添加资源告警页面 + +2. 在添加资源告警页面,定义告警的基本信息。依次输入告警的名字,选择告警类别、以及告警类型。支持对IP池、资源池的阈值告警和预测告警 + +3. 根据选择的不同告警类别和类型,定义告警触发条件和对象 + +4. 点击「保存」返回资源告警列表界面 + +## 编辑告警 {#编辑告警 .afff6} + +点击「资源告警」,选择一行已添加的告警,工具栏「编辑」按钮变成可用,点击「编辑」按钮,或者直接点击告警名称,进入告警编辑界面。 + +## 启用/禁用告警 {#启用禁用告警 .afff6} + +点击「资源告警」,选择一行状态为启用/禁用的告警,工具栏「禁用」/「启用」按钮变成可用,点击,提示该告警状态更新成功。 + +## 删除告警 {#删除告警 .afff6} + +点击「资源告警」,选择一行已添加的告警,工具栏「删除」按钮变成可用,点击「删除」按钮,确认删除提示后,提示告警删除成功。 + +#已触发警报 + +点击左侧导航「容量管理」-「已触发警报」,显示已触发警报列表,包括警报级别、告警名称、触发告警对象、告警类型、第一次触发时间、最后一次触发时间以及告警状态。告警状态分为已触发、已暂停、已解除。还可对列表中的触发警报进行恢复、暂停、解除操作。 + +1. 选择「已触发警报」,任意选择一条「已触发」的警报,工具栏中的「暂停」和「解除」将变为可用,点击「暂停」,将会有提示,确认后,提示操作成功。 + +2. 点击列表中的告警名称,可查看该警报的详细信息以及历史数据。该页显示了告警触发的对象、警报的级别,触发的条件、业务组、类型、资源池配额总体情况(vCPU、内存、存储、虚机数量)或IP池使用情况、警报图表(可调控时间范围灵活查看各个时间段的警报数据)、以及该告警的后续操作历史。 + +3. 告警触发的对象可链接,资源池链接至「资源池管理」-「资源使用趋势」、IP池链接至「IP地址管理」-「IP地址使用趋势」 diff --git "a/AdminDoc/07\344\272\221\350\265\204\346\272\220\345\210\206\346\236\220/\350\256\241\351\207\217\350\256\241\350\264\271.html" "b/AdminDoc/07\344\272\221\350\265\204\346\272\220\345\210\206\346\236\220/\350\256\241\351\207\217\350\256\241\350\264\271.html" new file mode 100644 index 0000000..5ed018d --- /dev/null +++ "b/AdminDoc/07\344\272\221\350\265\204\346\272\220\345\210\206\346\236\220/\350\256\241\351\207\217\350\256\241\350\264\271.html" @@ -0,0 +1,1126 @@ + + + + + + + 计量计费 · 发行说明 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
                                                                      +
                                                                      + + + + + + + + +
                                                                      + +
                                                                      + +
                                                                      + + + + + + + + +
                                                                      +
                                                                      + +
                                                                      +
                                                                      + +
                                                                      + +

                                                                      计量计费

                                                                      +
                                                                        +
                                                                      • 资源使用分析:发现和分析多云环境的使用情况和利用率,让所有资源可追踪、可追溯。通过自定义成本核算,公有云成本可见性,洞察多云环境的花费,提高ROI。可为计算、存储、网络、PaaS服务等数据中心资源,按照不同时间维度设置计费规则;自动按照部门、项目等维度进行分账;多维度展现费用使用情况和趋势;欢迎页一览资源总体情况;丰富的开箱即用的图表,多维度展示资源状况;仪表盘、报表可按需自定义,为不同角色配置不同视图。
                                                                      • +
                                                                      • 费用优化:费用可视化,结合资源使用率,帮助优化工作负载部署,合理化配置。申请时候预估整体服务价格,进行不同云平台的比价;结合资源使用率和成本,提出优化建议,降低过高配置。
                                                                      • +
                                                                      • 支持自定义计费模型,以实现私有云的计量计费;并且支持按照策略定时同步公有云账单,结合全新的费用分析模块,统一公有云和私有云的费用管理和分析。
                                                                      • +
                                                                      +

                                                                      计量计费

                                                                      +

                                                                      1. 费用分析

                                                                      +

                                                                      1.1. 费用展示

                                                                      +

                                                                      点击左侧导航「计量计费」-「费用分析」,显示费用展示:该页面显示各业务组的费用占比,以时间为跨度的费用趋势,可根据时间、云平台、资源类型、业务组、项目和所有者进行筛选查看。

                                                                      +

                                                                      1.2. TOP排行

                                                                      +

                                                                      TOP排行展示了云平台费用使用TOP5、资源类型费用使用TOP5、业务组费用使用TOP5、项目费用使用TOP5、服务部署费用使用TOP5、所有者费用使用TOP5。可根据时间、云平台、资源类型、业务组、项目和所有者进行筛选查看

                                                                      +

                                                                      2. 优化建议

                                                                      +

                                                                      优化建议功能列表展现了云资源的使用情况,以及费用情况,帮助您找出使用率较低的资源,并可以直接进行配置调整。

                                                                      +

                                                                      使用率分数是综合了CPU、内存以及磁盘的平均使用情况。根据使用率分数的排序找出闲置资源分布情况(使用率分数越小表示闲置资源越多),并能够一键重新进行配置,从而及时调整低效使用的资源,节省费用。

                                                                      +
                                                                        +
                                                                      1. 点击左侧导航「计量计费」-「优化建议」,展示所有虚拟机的使用情况:该页面显示各云主机的名称、状态、使用率分数、CPU使用率、内存使用率、磁盘使用率、费用(参考值)、配置(CPU/内存/磁盘)、业务组 +、项目、所有者。

                                                                        +
                                                                      2. +
                                                                      3. 详细使用情况参数请看下表介绍:

                                                                        +
                                                                          +
                                                                        • 业务组 所属业务组
                                                                        • +
                                                                        • 名称 名称(若业务组已设定命名规则,名称将按照规则自动生成,无需填写)
                                                                        • +
                                                                        • 项目 所属项目
                                                                        • +
                                                                        • 所有者 部署的所有者
                                                                        • +
                                                                        • 状态 三种状态:已启用、已停止、遗失
                                                                        • +
                                                                        • CPU使用率 一段时间CPU的平均使用率(上周、上个月、上三个月、上半年)
                                                                        • +
                                                                        • 内存使用率 过去一段时间内存的平均使用率(上周、上个月、上三个月、上半年)
                                                                        • +
                                                                        • 磁盘使用率 过去一段时间磁盘的平均使用率(时上周、上个月、上三个月、上半年)
                                                                        • +
                                                                        • 使用率分数 过去一段时间磁盘的平均使用率和内存的使用率和CPU的使用率,三者的平均数(上周、上个月、上三个月、上半年)
                                                                        • +
                                                                        • 分数越小代表使用率越低,闲置资源越多
                                                                        • +
                                                                        • 费用 按照上个月部署资源的花费预计下个月的部署虚拟机的费用(数值统一了公有云和私有云的费用)
                                                                        • +
                                                                        +
                                                                      4. +
                                                                      +
                                                                        +
                                                                      1. 平台考虑了计算、网络、存储的使用率,基于数据监控,算出过去一个星期 +、一个月、三个月或半年的磁盘使用率、内存使用率、CPU使用率的平均值,三者平均值之和得到使用率分数。根据以上展示的所有数据,找出闲置资源,排序分析得出费用比较高的虚拟机,使用率比较低的虚拟机,进行一键重新配置,优化资源配置,提高资源使用率。

                                                                        +
                                                                      2. +
                                                                      3. 重新配置资源的方法:

                                                                        +

                                                                        点击左侧导航「计量计费」-「优化建议」,选择某一个云主机,进入云主机详情页,显示云主机基本信息、操作历史、快照信息、监控、已触发警报、定时任务等,在云主机详情页可重新配置资源,可进行如下操作: +重新启动、挂起、停止、远程终端、调整虚机配置、添加新磁盘、扩展磁盘、添加网卡、删除网卡、创建快照、恢复至快照、vMotion迁移等。

                                                                        +

                                                                        使用情况

                                                                        +
                                                                          +
                                                                        • 重新启动 重新启动(关机状态的)虚拟机,也可以通过设置「定时」,定时(在将来某一时刻)触发此项任务。
                                                                        • +
                                                                        • 挂起 挂起(开机状态的)虚拟机,可以通过设置「定时」,定时(在将来某一时刻)触发此项任务
                                                                        • +
                                                                        • 停止 停止(即关机)(开机状态的)虚拟机,可以通过设置「定时」,定时(在将来某一时刻)触发此项任务。
                                                                        • +
                                                                        • 远程终端 进入远程终端页面。输入要执行的命令,单击确认
                                                                        • +
                                                                        • 调整虚机配置 调整虚拟机或容器节点的配置(vCPU,内存)
                                                                        • +
                                                                        • 添加新磁盘 给虚拟机添加一块新的磁盘,可以通过设置「定时」,定时(在将来某一时刻)触发此项任务
                                                                        • +
                                                                        • 扩展磁盘 给虚拟机扩展一块已有的磁盘,可以通过设置「定时」,定时(在将来某一时刻)触发此项任务。
                                                                        • +
                                                                        • 添加网卡 添加一个新网卡,针对该计算节点的所有实例生效,选择网络标签和IP分配方式
                                                                        • +
                                                                        • 删除网卡 删除网卡,该操作会影响该节点的所有云主机
                                                                        • +
                                                                        • 创建快照 给虚拟机创建一个快照,可以通过设置「定时」,定时(在将来某一时刻)触发此项任务。
                                                                        • +
                                                                        • 恢复至快照 把虚拟机恢复到之前的某一个快照,可以通过设置「定时」,定时(在将来某一时刻)触发此项任务
                                                                        • +
                                                                        • vMotion迁移 计算资源迁移和存储迁移
                                                                        • +
                                                                        +
                                                                      4. +
                                                                      +
                                                                      +

                                                                      「Note」如您需要查看更多关于云主机操作的详细内容,请您参考:云主机操作

                                                                      +
                                                                      +

                                                                      3. 计费规则

                                                                      +

                                                                      SmartCMP允许自定义计费规则,对私有云的资源进行计费;并能够同步公有云的费用账单(详见「账单同步」小节),统一公有云和私有云的费用管理和分析。

                                                                      +

                                                                      按单价计费,是指当前的计费规格都是对单种资源来计费的,列表中列出了已经创建的资源类型及价格等信息。系统管理员和租户管理员可以对已创建的计费规格进行编辑和删除,同时可以添加新的计费规格。

                                                                      +

                                                                      点击左侧菜单栏「计量计费」-「计费规则」,将看到已创建好的计费规则列表,显示云平台、资源类别、存储类别、计价单位、价格、货币单位、周期等。

                                                                      +
                                                                        +
                                                                      1. 添加计费规则:进入菜单「计量计费」-「计费规则」,点击「添加」,在弹出页面中选择云平台管理、资源池、资源类别(CPU、内存、存储组件、浮动IP、负载均衡器、负载均衡监听器),计价单位、价格,货币单位(人民币)、周期(小时、天、周、月),点击「提交」,添加计算资源价格成功,计费管理列表显示刚才添加的信息。

                                                                        +
                                                                      2. +
                                                                      3. 编辑计费规则:选中列表中某个项目,点击「编辑」,修改信息后点击「提交」

                                                                        +
                                                                      4. +
                                                                      5. 删除计费规则:选中列表中某个项目,点击「删除」,弹出确认提示框,点击「是」

                                                                        +
                                                                      6. +
                                                                      +

                                                                      4. 账单同步

                                                                      +

                                                                      支持定时同步公有云的账单数据。点击左侧菜单栏「计量计费」-「账单同步」,将看到账单同步列表,显示名称、云平台、状态(禁用/启用)、最近执行记录、最近执行时间等。可进行添加、编辑、删除、启用和禁用操作。

                                                                      +
                                                                        +
                                                                      1. 添加同步策略:点击「添加」,输入同步策略名称、选择一个要同步的云平台、选择状态(启用/禁用)、填写执行时间(cron表达式),点击「保存」

                                                                        +
                                                                      2. +
                                                                      3. 编辑同步策略:在列表中选择一项同步策略,点击「编辑」,进入编辑界面,可更改名称、云平台、对象存储、状态、执行时间等,页面下方显示该同步历史信息

                                                                        +
                                                                      4. +
                                                                      5. 启用/禁用同步策略:在列表界面选择某项已启用/禁用的同步策略,上方的禁用/启用操作将可用

                                                                        +
                                                                      6. +
                                                                      + + +
                                                                      + +
                                                                      +
                                                                      +
                                                                      + +

                                                                      results matching ""

                                                                      +
                                                                        + +
                                                                        +
                                                                        + +

                                                                        No results matching ""

                                                                        + +
                                                                        +
                                                                        +
                                                                        + +
                                                                        +
                                                                        + +
                                                                        + + + + + + + + + + + + + + +
                                                                        + + +
                                                                        + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git "a/AdminDoc/07\344\272\221\350\265\204\346\272\220\345\210\206\346\236\220/\350\256\241\351\207\217\350\256\241\350\264\271.md" "b/AdminDoc/07\344\272\221\350\265\204\346\272\220\345\210\206\346\236\220/\350\256\241\351\207\217\350\256\241\350\264\271.md" new file mode 100644 index 0000000..936df51 --- /dev/null +++ "b/AdminDoc/07\344\272\221\350\265\204\346\272\220\345\210\206\346\236\220/\350\256\241\351\207\217\350\256\241\350\264\271.md" @@ -0,0 +1,91 @@ +**计量计费** + ++ 资源使用分析:发现和分析多云环境的使用情况和利用率,让所有资源可追踪、可追溯。通过自定义成本核算,公有云成本可见性,洞察多云环境的花费,提高ROI。可为计算、存储、网络、PaaS服务等数据中心资源,按照不同时间维度设置计费规则;自动按照部门、项目等维度进行分账;多维度展现费用使用情况和趋势;欢迎页一览资源总体情况;丰富的开箱即用的图表,多维度展示资源状况;仪表盘、报表可按需自定义,为不同角色配置不同视图。 ++ 费用优化:费用可视化,结合资源使用率,帮助优化工作负载部署,合理化配置。申请时候预估整体服务价格,进行不同云平台的比价;结合资源使用率和成本,提出优化建议,降低过高配置。 ++ 支持自定义计费模型,以实现私有云的计量计费;并且支持按照策略定时同步公有云账单,结合全新的费用分析模块,统一公有云和私有云的费用管理和分析。 + +![计量计费](../../picture/Admin/计量计费.png) + +# 费用分析 + +## 费用展示 + +点击左侧导航「计量计费」-「费用分析」,显示费用展示:该页面显示各业务组的费用占比,以时间为跨度的费用趋势,可根据时间、云平台、资源类型、业务组、项目和所有者进行筛选查看。 + +## TOP排行 + +TOP排行展示了云平台费用使用TOP5、资源类型费用使用TOP5、业务组费用使用TOP5、项目费用使用TOP5、服务部署费用使用TOP5、所有者费用使用TOP5。可根据时间、云平台、资源类型、业务组、项目和所有者进行筛选查看 + +# 优化建议 + +优化建议功能列表展现了云资源的使用情况,以及费用情况,帮助您找出使用率较低的资源,并可以直接进行配置调整。 + +使用率分数是综合了CPU、内存以及磁盘的平均使用情况。根据使用率分数的排序找出闲置资源分布情况(使用率分数越小表示闲置资源越多),并能够一键重新进行配置,从而及时调整低效使用的资源,节省费用。 + +1. 点击左侧导航「计量计费」-「优化建议」,展示所有虚拟机的使用情况:该页面显示各云主机的名称、状态、使用率分数、CPU使用率、内存使用率、磁盘使用率、费用(参考值)、配置(CPU/内存/磁盘)、业务组 + 、项目、所有者。 + +2. 详细使用情况参数请看下表介绍: + + + 业务组 所属业务组 + + 名称 名称(若业务组已设定命名规则,名称将按照规则自动生成,无需填写) + + 项目 所属项目 + + 所有者 部署的所有者 + + 状态 三种状态:已启用、已停止、遗失 + + CPU使用率 一段时间CPU的平均使用率(上周、上个月、上三个月、上半年) + + 内存使用率 过去一段时间内存的平均使用率(上周、上个月、上三个月、上半年) + + 磁盘使用率 过去一段时间磁盘的平均使用率(时上周、上个月、上三个月、上半年) + + 使用率分数 过去一段时间磁盘的平均使用率和内存的使用率和CPU的使用率,三者的平均数(上周、上个月、上三个月、上半年) + + 分数越小代表使用率越低,闲置资源越多 + + 费用 按照上个月部署资源的花费预计下个月的部署虚拟机的费用(数值统一了公有云和私有云的费用) + + + +1. 平台考虑了计算、网络、存储的使用率,基于数据监控,算出过去一个星期 + 、一个月、三个月或半年的磁盘使用率、内存使用率、CPU使用率的平均值,三者平均值之和得到使用率分数。根据以上展示的所有数据,找出闲置资源,排序分析得出费用比较高的虚拟机,使用率比较低的虚拟机,进行一键重新配置,优化资源配置,提高资源使用率。 + +2. 重新配置资源的方法: + + 点击左侧导航「计量计费」-「优化建议」,选择某一个云主机,进入云主机详情页,显示云主机基本信息、操作历史、快照信息、监控、已触发警报、定时任务等,在云主机详情页可重新配置资源,可进行如下操作: + 重新启动、挂起、停止、远程终端、调整虚机配置、添加新磁盘、扩展磁盘、添加网卡、删除网卡、创建快照、恢复至快照、vMotion迁移等。 + + 使用情况 + + + 重新启动 重新启动(关机状态的)虚拟机,也可以通过设置「定时」,定时(在将来某一时刻)触发此项任务。 + + 挂起 挂起(开机状态的)虚拟机,可以通过设置「定时」,定时(在将来某一时刻)触发此项任务 + + 停止 停止(即关机)(开机状态的)虚拟机,可以通过设置「定时」,定时(在将来某一时刻)触发此项任务。 + + 远程终端 进入远程终端页面。输入要执行的命令,单击确认 + + 调整虚机配置 调整虚拟机或容器节点的配置(vCPU,内存) + + 添加新磁盘 给虚拟机添加一块新的磁盘,可以通过设置「定时」,定时(在将来某一时刻)触发此项任务 + + 扩展磁盘 给虚拟机扩展一块已有的磁盘,可以通过设置「定时」,定时(在将来某一时刻)触发此项任务。 + + 添加网卡 添加一个新网卡,针对该计算节点的所有实例生效,选择网络标签和IP分配方式 + + 删除网卡 删除网卡,该操作会影响该节点的所有云主机 + + 创建快照 给虚拟机创建一个快照,可以通过设置「定时」,定时(在将来某一时刻)触发此项任务。 + + 恢复至快照 把虚拟机恢复到之前的某一个快照,可以通过设置「定时」,定时(在将来某一时刻)触发此项任务 + + vMotion迁移 计算资源迁移和存储迁移 + +>「Note」如您需要查看更多关于云主机操作的详细内容,请您参考:[云主机操作](https://cloudchef.github.io/doc/AdminDoc/06云资源的全生命周期管理/我的部署.html) + +# 计费规则 + +SmartCMP允许自定义计费规则,对私有云的资源进行计费;并能够同步公有云的费用账单(详见「账单同步」小节),统一公有云和私有云的费用管理和分析。 + +按单价计费,是指当前的计费规格都是对单种资源来计费的,列表中列出了已经创建的资源类型及价格等信息。系统管理员和租户管理员可以对已创建的计费规格进行编辑和删除,同时可以添加新的计费规格。 + +点击左侧菜单栏「计量计费」-「计费规则」,将看到已创建好的计费规则列表,显示云平台、资源类别、存储类别、计价单位、价格、货币单位、周期等。 + +1. 添加计费规则:进入菜单「计量计费」-「计费规则」,点击「添加」,在弹出页面中选择云平台管理、资源池、资源类别(CPU、内存、存储组件、浮动IP、负载均衡器、负载均衡监听器),计价单位、价格,货币单位(人民币)、周期(小时、天、周、月),点击「提交」,添加计算资源价格成功,计费管理列表显示刚才添加的信息。 + +2. 编辑计费规则:选中列表中某个项目,点击「编辑」,修改信息后点击「提交」 + +3. 删除计费规则:选中列表中某个项目,点击「删除」,弹出确认提示框,点击「是」 + +# 账单同步 + +支持定时同步公有云的账单数据。点击左侧菜单栏「计量计费」-「账单同步」,将看到账单同步列表,显示名称、云平台、状态(禁用/启用)、最近执行记录、最近执行时间等。可进行添加、编辑、删除、启用和禁用操作。 + +1. 添加同步策略:点击「添加」,输入同步策略名称、选择一个要同步的云平台、选择状态(启用/禁用)、填写执行时间(cron表达式),点击「保存」 + +2. 编辑同步策略:在列表中选择一项同步策略,点击「编辑」,进入编辑界面,可更改名称、云平台、对象存储、状态、执行时间等,页面下方显示该同步历史信息 + +3. 启用/禁用同步策略:在列表界面选择某项已启用/禁用的同步策略,上方的禁用/启用操作将可用 diff --git "a/AdminDoc/07\344\272\221\350\265\204\346\272\220\345\210\206\346\236\220/\350\265\204\346\272\220\346\262\273\347\220\206.html" "b/AdminDoc/07\344\272\221\350\265\204\346\272\220\345\210\206\346\236\220/\350\265\204\346\272\220\346\262\273\347\220\206.html" new file mode 100644 index 0000000..1f5085c --- /dev/null +++ "b/AdminDoc/07\344\272\221\350\265\204\346\272\220\345\210\206\346\236\220/\350\265\204\346\272\220\346\262\273\347\220\206.html" @@ -0,0 +1,1074 @@ + + + + + + + 资源治理 · 发行说明 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
                                                                        +
                                                                        + + + + + + + + +
                                                                        + +
                                                                        + +
                                                                        + + + + + + + + +
                                                                        +
                                                                        + +
                                                                        +
                                                                        + +
                                                                        + +

                                                                        资源治理

                                                                        +

                                                                        1. 事件配置

                                                                        +

                                                                        事件配置功能用来定义事件应用到的范围以及触发的通知和操作。使用场景:

                                                                        +
                                                                          +
                                                                        • 当检测到IP地址被未知机器占用时,能够检测到冲突并触发告警,具体配置包括,针对IP冲突检测设置通知,通知/邮件的标题:<时间,精确到秒> 检测到IP地址冲突:x.x.x.x;通知/邮件的内容:<时间,精确到秒> 检测到IP地址冲突,x.x.x.x已被未知机器占用,请检查原因。该IP地址不会再被分配。
                                                                        • +
                                                                        • 针对云主机部署成功设置通知(云主机部署成功)
                                                                        • +
                                                                        • 支持扩展其他类型,比如云主机名称修改通知,云主机IP地址修改通知等等。
                                                                        • +
                                                                        • 支持在“操作配置”功能区,灵活的自定义触发的事件的名称,类型,应用的范围,触发的操作。
                                                                        • +
                                                                        +

                                                                        具体操作步骤:

                                                                        +

                                                                        点击左侧菜单栏「资源治理」-「事件配置」,将看到事件配置列表,显示名称、类型、范围、对象、状态、创建者、创建时间。

                                                                        +
                                                                          +
                                                                        1. 添加事件配置:点击「添加」,输入事件名称,选择类型(检测到IP冲突、VM部署完成),选择针对的范围(租户),选择对某对象触发通知。通知配置选择用户/角色/邮箱,如果事件触发将收到系统通知和邮件通知

                                                                          +
                                                                        2. +
                                                                        3. 编辑事件配置:在列表中选择一项事件,点击「编辑」,进入编辑界面,可针对新建中的所有项进行编辑更改

                                                                          +
                                                                        4. +
                                                                        5. 启用/禁用事件:在列表界面选择某项已启用/禁用的事件,上方的禁用/启用操作将可用

                                                                          +
                                                                        6. +
                                                                        +

                                                                        操作配置

                                                                        +

                                                                        提供通用的任务配置,事件,告警发生后,能够触发操作,例如:云资源部署完成之后不仅是可以发送邮件通知,同时也可以进行云资源的运维操作,通知和操作可以同时配置,不配置具体操作就不会触发后续的运维操作。(具体的操作配置步骤与流水线的流程设计任务配置相似,请参考:配置任务

                                                                        +
                                                                          +
                                                                        • 其他常见使用场景包括:VM部署后,需要注册到跳板机; VM删除后,能够注销跳板机;告警场景发生后,能够创建工单流程。
                                                                        • +
                                                                        +

                                                                        2. 事件历史

                                                                        +

                                                                        列出触发的事件以及执行的任务状态。事件历史页面显示:

                                                                        +
                                                                          +
                                                                        • 展示事件编号(事件_时间戳),事件名称,事件类型,触发对象,触发时间,通知对象(没有通知就显示无),触发操作(没有操作就显示无),操作执行状态
                                                                        • +
                                                                        • 触发的对象显示实际的对象名称,例如,检测到IP冲突,则触发对象显示具体的某个IP地址;部署完成或更新,则触发的对象是该部署
                                                                        • +
                                                                        • 可根据筛选条件(事件类型,操作状态,起止时间)快速定位事件
                                                                        • +
                                                                        • 点击任意事件进入事件详情页面:包括事件本身的信息,通知信息,触发的操作信息。(事件的信息:什么时间、针对哪个对象、触发了什么事。通知:发送通知给到了谁(将角色名、用户名、邮件地址放在一起显示。触发的操作信息:触发了什么操作,操作的状态,执行结果和输出)
                                                                        • +
                                                                        + + +
                                                                        + +
                                                                        +
                                                                        +
                                                                        + +

                                                                        results matching ""

                                                                        +
                                                                          + +
                                                                          +
                                                                          + +

                                                                          No results matching ""

                                                                          + +
                                                                          +
                                                                          +
                                                                          + +
                                                                          +
                                                                          + +
                                                                          + + + + + + + + + + + + + + +
                                                                          + + +
                                                                          + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git "a/AdminDoc/07\344\272\221\350\265\204\346\272\220\345\210\206\346\236\220/\350\265\204\346\272\220\346\262\273\347\220\206.md" "b/AdminDoc/07\344\272\221\350\265\204\346\272\220\345\210\206\346\236\220/\350\265\204\346\272\220\346\262\273\347\220\206.md" new file mode 100644 index 0000000..9dfa1ff --- /dev/null +++ "b/AdminDoc/07\344\272\221\350\265\204\346\272\220\345\210\206\346\236\220/\350\265\204\346\272\220\346\262\273\347\220\206.md" @@ -0,0 +1,36 @@ +**资源治理** + +# 事件配置 + +事件配置功能用来定义事件应用到的范围以及触发的通知和操作。使用场景: ++ 当检测到IP地址被未知机器占用时,能够检测到冲突并触发告警,具体配置包括,针对IP冲突检测设置通知,通知/邮件的标题:<时间,精确到秒> 检测到IP地址冲突:x.x.x.x;通知/邮件的内容:<时间,精确到秒> 检测到IP地址冲突,x.x.x.x已被未知机器占用,请检查原因。该IP地址不会再被分配。 ++ 针对云主机部署成功设置通知(云主机部署成功) ++ 支持扩展其他类型,比如云主机名称修改通知,云主机IP地址修改通知等等。 ++ 支持在“操作配置”功能区,灵活的自定义触发的事件的名称,类型,应用的范围,触发的操作。 + +具体操作步骤: + +点击左侧菜单栏「资源治理」-「事件配置」,将看到事件配置列表,显示名称、类型、范围、对象、状态、创建者、创建时间。 + +1. 添加事件配置:点击「添加」,输入事件名称,选择类型(检测到IP冲突、VM部署完成),选择针对的范围(租户),选择对某对象触发通知。通知配置选择用户/角色/邮箱,如果事件触发将收到系统通知和邮件通知 + +2. 编辑事件配置:在列表中选择一项事件,点击「编辑」,进入编辑界面,可针对新建中的所有项进行编辑更改 + +3. 启用/禁用事件:在列表界面选择某项已启用/禁用的事件,上方的禁用/启用操作将可用 + + +操作配置 + +提供通用的任务配置,事件,告警发生后,能够触发操作,例如:云资源部署完成之后不仅是可以发送邮件通知,同时也可以进行云资源的运维操作,通知和操作可以同时配置,不配置具体操作就不会触发后续的运维操作。(具体的操作配置步骤与流水线的流程设计任务配置相似,请参考:[配置任务](https://cloudchef.github.io/doc/AdminDoc/11集成与发布管理/#配置阶段和任务)) ++ 其他常见使用场景包括:VM部署后,需要注册到跳板机; VM删除后,能够注销跳板机;告警场景发生后,能够创建工单流程。 + + + +# 事件历史 +列出触发的事件以及执行的任务状态。事件历史页面显示: ++ 展示事件编号(事件_时间戳),事件名称,事件类型,触发对象,触发时间,通知对象(没有通知就显示无),触发操作(没有操作就显示无),操作执行状态 ++ 触发的对象显示实际的对象名称,例如,检测到IP冲突,则触发对象显示具体的某个IP地址;部署完成或更新,则触发的对象是该部署 ++ 可根据筛选条件(事件类型,操作状态,起止时间)快速定位事件 ++ 点击任意事件进入事件详情页面:包括事件本身的信息,通知信息,触发的操作信息。(事件的信息:什么时间、针对哪个对象、触发了什么事。通知:发送通知给到了谁(将角色名、用户名、邮件地址放在一起显示。触发的操作信息:触发了什么操作,操作的状态,执行结果和输出) + + diff --git "a/AdminDoc/08\345\267\245\345\215\225\346\234\215\345\212\241\347\256\241\347\220\206/README.md" "b/AdminDoc/08\345\267\245\345\215\225\346\234\215\345\212\241\347\256\241\347\220\206/README.md" new file mode 100644 index 0000000..c4aeba5 --- /dev/null +++ "b/AdminDoc/08\345\267\245\345\215\225\346\234\215\345\212\241\347\256\241\347\220\206/README.md" @@ -0,0 +1,157 @@ + + +**工单服务管理** + +工单服务场景: +工单是用户提交多种类型服务请求的方式,支持提交云资源蓝图服务工单和手工服务工单。 + +租户管理员可自定义和发布标准的工单服务,用户可通过服务目录进行自服务申请与通过服务请求跟踪工单处理状态。 + +具体工单服务场景请参照以下步骤: + +1. [设置服务团队](#设置服务团队):租户管理员自定义关联用户。 + +2. [定义手工工单服务流程](#定义手工工单服务流程):平台提供开箱即用的默认流程(标准手工工单、标准事件管理流程),当租户管理员有额外需求可通过「服务建模」-「流程配置」-「流程设计」通过可视化的流程设计器,自定义设计服务处理的方法和策略,添加到SmartCMP中使用。 + +3. [手工工单服务配置](#手工工单服务配置):租户管理员定义服务流程和处理工单任务的服务团队角色或用户。配置完成后,发布到服务目录,使得业务组中的用户可在服务目录进行工单的申请。 + +4. [申请工单和跟踪进度](#申请和处理工单):用户申请工单完成后,根据预先配置的流程,系统根据服务团队与工单的关系,派发工单给相应的服务团队。服务团队中的指定用户或角色收到工单请求之后,可以进行转派,也可以进行线下处理,完成之后更新工单状态,系统通过邮件通知用户,用户可进行关闭操作或申请重新处理工单操作。 + +# 设置服务团队{#设置服务团队} + + +服务团队是工单服务管理过程中处理工单任务的服务人员集合,支持租户管理员自定义关联用户。 + +>「Note」组织架构管理已经对服务团队进行了详细的介绍,如您需要设置服务团队,请您参考[服务团队](https://cloudchef.github.io/doc/AdminDoc/04组织架构管理/服务团队.html) + +# 定义手工工单服务流程{#定义手工工单服务流程} + + +服务团队建立完成之后,通过服务配置创建工单,将工单发布到服务目录,完成服务卡片的发布和服务目录的管理。以下内容将为您详细介绍配置手工工单服务流程、配置手工工单服务和发布手工工单服务的具体步骤。 + +### 自定义添加手工工单服务流程 + +在左侧导航栏点击「服务建模」-「服务流程管理」,点击添加,输入名称(手工工单服务流程)、描述、选择类别(手工工单服务)、上传流程配置文件。 + +### 内置的手工工单服务流程 + +平台内置的手工工单服务流程包括标准手工工单,标准事件管理流程、自动化服务流程。 + ++ 标准事件管理流程,用来解决出现IT资源相关的问题,例如:服务器意外关闭,网络出现中断问题等等,网络IP地址冲突等等。流程类型属于手工工单服务。 ++ 标准手工工单:需要IT人工介入的服务,例如:申请重新设置密码的手工工单服务。 ++ 自动化服务流程:用户申请手工工单服务,服务通过审批之后,自动化创建用户申请的资源,例如:创建项目,创建IP池,等等。 + +>「Note」内置的手工工单服务流程,不支持修改和删除,只支持查看和使用,用户自定义添加的手工工单服务流程支持修改和删除 + +# 手工工单服务配置{#手工工单服务配置} + + +管理员可以将设计好的工单发布为服务,管理员可以将服务与企业内部的流程集成之后发布到服务目录。服务项主要功能有: + +服务与指定服务团队关联,服务请求由团队关联的用户来处理,即指定服务团队,发布工单到不同部门服务与流程配置相关联,平台支持管员自定义服务流程,同时支持使用内置的服务流程 + +### 添加手工工单服务配置 {#添加手工工单服务配置 .afff6} + +您可以根据下面步骤添加手工工单服务配置: + +1. 在左边导航栏选择「服务建模」-「服务配置」,点击「添加」 + + 填写服务名称、服务描述(选填)、选择业务组,服务类型为手工工单服务时,增选一项服务流程,点击「提交」,进入服务配置「概况」页面 + + + 在「基本信息」标签页填入下列信息:名称,描述,logo图像,服务分组,顺序 + + + 在「审批配置」页面指定审批流程,例如,申请创建新项目的手工工单服务,您可以指定租户管理员审批的审批流程。 + + 在「流程配置」页面指定服务处理阶段需要指派合适的人去完成任务,指定服务确认关闭阶段需要申请人判断问题是否得到解决,配置处理人类型并根据类型选择处理人的详细信息(例如:处理人类型选择服务团队,并进一步选择具体哪一个服务团队) + + + 在「表单配置」页面指定创建的表单,例如,申请创建新项目的手工工单服务,您可选择创建项目的表单。 + +2. 点击保存按钮,服务将被保存不发布,点击保存并发布按钮,服务将被发布到服务目录页面。 + +### 编辑、删除手工工单服务配置 {#编辑删除手工工单服务配置 .afff6} + +在左侧导航栏点击「服务建模」-「服务配置」,选择一个服务配置,点击「编辑」按钮,输入需要修改的内容,点击「保存」。 + +在左侧导航栏点击「服务建模」-「服务配置」,选择一个服务配置,点击「删除」按钮,提示删除服务配置成功。 + +### 发布、取消发布手工工单服务配置 {#发布取消发布手工工单服务配置 .afff6} + +在左侧导航栏点击「服务建模」-「服务配置」,选择一个服务配置,点击「发布」按钮,提示发布成功。 + +在左侧导航栏点击「服务建模」-「服务配置」,选择一个服务配置,点击「取消发布」按钮,提示取消发布服务配置成功。 + +# 申请和处理工单{#申请和处理工单} + + +工单的全生命周期可以管控和记录工单全过程,包括工单服务配置、工单申请、工单处理和实时查看服务进展。 + +当用户在服务目录申请工单完成后,根据预先配置的流程,系统将根据工单与服务团队的关联关系,派发工单给相应的服务团队进行处理。 + +服务团队中的指定人员收到工单请求之后,可以进行转派,也可以进行线下处理,完成之后更新工单状态,系统自动通知用户,也支持用户查看处理进程。 + +用户可在服务目录申请业务组发布的、已配置好的服务和共享的服务,其中服务类型包括两种类型:其一是手工工单服务,其二是云资源蓝图服务。服务申请完成,该服务信息可进入我的请求列表页面查看,稍后为您介绍我的请求详细信息。 + +### 我的请求 {#我的请求} + +选择某一个手工工单服务,点击进入手工工单服务信息详情页。输入服务基本信息:标题,描述,优先级,紧急程度,申请者信息必填项的手机号,点击申请即可申请服务成功。服务申请成功之后,服务申请状态变更为处理中,申请进入我的请求当中。 + +用户可根据以下步骤查看用户自己已经申请的工单和跟踪工单处理进程: + +1. 在左侧导航栏点击「服务请求」-「我的请求」,我的请求页面显示我的请求的基本信息:请求编号,请求类型,标题,服务名称,业务组,项目,申请状态,申请时间,完成时间。 + +2. 选择任意手工工单服务的服务请求,点击「请求编号」链接,跳转到我的手工工单服务请求详情页面,可查看该请求的基本信息,工单信息,处理记录,审批流程,审批记录等。 + +3. 审批流程:审批流程图,审批层级、审批人、角色;审批记录:审批流程信息、审批流程名称、状态、审批意见、审批人、审批角色、审批时间 + +4. 基本信息包括请求编号,申请时间,请求类型,申请者,联系方式,邮箱,业务组,项目等。 + +5. 工单信息包括标题,描述,优先级,紧急程度,表单配置的字段信息。 + +6. 处理记录信息:流程步骤,描述,处理结果描述、处理状态和处理人、处理时间。 + +### 所有请求 {#所有请求} + +租户管理员还可以根据以下步骤查看所有用户的服务工单: + +1. 在左侧导航栏点击「服务请求」-「所有请求」,所有请求页面显示所有请求的基本信息:请求编号,请求类型,部署名称、申请者、业务组,项目,申请状态,申请时间,完成时间、审批者。 + +2. 请求类型包括手工工单请求、云资源蓝图部署、Day2操作,不同请求类型展示的详情页面稍显不同,具体您参考:[我的请求](#我的请求)。 + +3. 在服务请求列表页面,支持您快速定位到您需要查看的服务请求,您可以通过状态(服务请求的审批状态:审批未开始、审批中、审批通过、拒绝、退回、错误、撤回),业务组、起止时间(服务请求的起止时间)或关键字搜索框快速定位。 + +### 待处理 {#待处理} + +此处显示等待服务团队处理的服务请求 + +1. 在左侧导航栏点击「服务请求」-「待处理」,待处理页面显示发起的所有处理请求其中待处理部分,其中显示处理请求的基本信息:请求编号,服务名称,请求类型,标题,业务组,项目,申请状态,申请时间,完成时间。 + +2. 选择一个待处理的服务请求,点击「请求编号」链接,跳转到请求详情页面,查看该请求的基本信息,工单信息,处理记录,流程步骤,服务处理信息等。 + +3. 基本信息包括申请编号,申请时间,申请类型,申请者,联系方式,邮箱,业务组,项目等。工单信息包括名称,描述,优先级,紧急程度和表单配置的字段信息。 + +4. 处理记录包括流程步骤、描述、处理结果描述、状态、处理人、处理时间。 + +5. 流程步骤: + + + 发起申请:服务申请者通过服务目录发起手工工单服务,等待服务团队处理 + + + 服务处理:需要指派合适的人去完成这项工单任务 + + + 重新处理:申请人判断问题没有得到圆满的解决,选择将服务返回给服务人员进行处理 + + + 确认关闭:申请人判断问题已经得到圆满的解决,则关闭服务 + +6. 处理方式:直接处理和转派处理 + + + 选择直接处理方式,点击直接处理,填上处理结果描述,即可点击提交处理,点击页面下方提交按钮即可处理完成此次服务请求,邮件通知服务申请者,申请者进行工单关闭操作,则服务请求状态变更为「已处理」。 + + + 选择转派处理方式,点击转派,选择服务团队,处理人和转派说明,点击页面下方提交按钮即可处理完成此次服务请求,服务请求状态「处理中」。 + +### 已处理 {#已处理} + +此处显示服务团队已经处理完成并且申请人已经确认关闭服务的请求。 + +1. 在左侧导航栏点击「服务请求」-「已处理」,页面显示发起的所有处理请求其中已处理部分 + +2. 显示处理请求的基本信息:请求编号,请求类型,服务名称,标题,申请者,业务组,项目,申请状态,申请时间,完成时间 + +3. 选择一个请求,点击「请求编号」链接,跳转到我的请求详情页面,可查看该请求的基本信息,工单信息,处理记录。 diff --git "a/AdminDoc/08\345\267\245\345\215\225\346\234\215\345\212\241\347\256\241\347\220\206/index.html" "b/AdminDoc/08\345\267\245\345\215\225\346\234\215\345\212\241\347\256\241\347\220\206/index.html" new file mode 100644 index 0000000..cdbc393 --- /dev/null +++ "b/AdminDoc/08\345\267\245\345\215\225\346\234\215\345\212\241\347\256\241\347\220\206/index.html" @@ -0,0 +1,1178 @@ + + + + + + + 工单服务管理 · 发行说明 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
                                                                          +
                                                                          + + + + + + + + +
                                                                          + +
                                                                          + +
                                                                          + + + + + + + + +
                                                                          +
                                                                          + +
                                                                          +
                                                                          + +
                                                                          + +

                                                                          工单服务管理

                                                                          +

                                                                          工单服务场景: +工单是用户提交多种类型服务请求的方式,支持提交云资源蓝图服务工单和手工服务工单。

                                                                          +

                                                                          租户管理员可自定义和发布标准的工单服务,用户可通过服务目录进行自服务申请与通过服务请求跟踪工单处理状态。

                                                                          +

                                                                          具体工单服务场景请参照以下步骤:

                                                                          +
                                                                            +
                                                                          1. 设置服务团队:租户管理员自定义关联用户。

                                                                            +
                                                                          2. +
                                                                          3. 定义手工工单服务流程:平台提供开箱即用的默认流程(标准手工工单、标准事件管理流程),当租户管理员有额外需求可通过「服务建模」-「流程配置」-「流程设计」通过可视化的流程设计器,自定义设计服务处理的方法和策略,添加到SmartCMP中使用。

                                                                            +
                                                                          4. +
                                                                          5. 手工工单服务配置:租户管理员定义服务流程和处理工单任务的服务团队角色或用户。配置完成后,发布到服务目录,使得业务组中的用户可在服务目录进行工单的申请。

                                                                            +
                                                                          6. +
                                                                          7. 申请工单和跟踪进度:用户申请工单完成后,根据预先配置的流程,系统根据服务团队与工单的关系,派发工单给相应的服务团队。服务团队中的指定用户或角色收到工单请求之后,可以进行转派,也可以进行线下处理,完成之后更新工单状态,系统通过邮件通知用户,用户可进行关闭操作或申请重新处理工单操作。

                                                                            +
                                                                          8. +
                                                                          +

                                                                          1. 设置服务团队

                                                                          +

                                                                          服务团队是工单服务管理过程中处理工单任务的服务人员集合,支持租户管理员自定义关联用户。

                                                                          +
                                                                          +

                                                                          「Note」组织架构管理已经对服务团队进行了详细的介绍,如您需要设置服务团队,请您参考服务团队

                                                                          +
                                                                          +

                                                                          2. 定义手工工单服务流程

                                                                          +

                                                                          服务团队建立完成之后,通过服务配置创建工单,将工单发布到服务目录,完成服务卡片的发布和服务目录的管理。以下内容将为您详细介绍配置手工工单服务流程、配置手工工单服务和发布手工工单服务的具体步骤。

                                                                          +

                                                                          2.1.1. 自定义添加手工工单服务流程

                                                                          +

                                                                          在左侧导航栏点击「服务建模」-「服务流程管理」,点击添加,输入名称(手工工单服务流程)、描述、选择类别(手工工单服务)、上传流程配置文件。

                                                                          +

                                                                          2.1.2. 内置的手工工单服务流程

                                                                          +

                                                                          平台内置的手工工单服务流程包括标准手工工单,标准事件管理流程、自动化服务流程。

                                                                          +
                                                                            +
                                                                          • 标准事件管理流程,用来解决出现IT资源相关的问题,例如:服务器意外关闭,网络出现中断问题等等,网络IP地址冲突等等。流程类型属于手工工单服务。
                                                                          • +
                                                                          • 标准手工工单:需要IT人工介入的服务,例如:申请重新设置密码的手工工单服务。
                                                                          • +
                                                                          • 自动化服务流程:用户申请手工工单服务,服务通过审批之后,自动化创建用户申请的资源,例如:创建项目,创建IP池,等等。
                                                                          • +
                                                                          +
                                                                          +

                                                                          「Note」内置的手工工单服务流程,不支持修改和删除,只支持查看和使用,用户自定义添加的手工工单服务流程支持修改和删除

                                                                          +
                                                                          +

                                                                          3. 手工工单服务配置

                                                                          +

                                                                          管理员可以将设计好的工单发布为服务,管理员可以将服务与企业内部的流程集成之后发布到服务目录。服务项主要功能有:

                                                                          +

                                                                          服务与指定服务团队关联,服务请求由团队关联的用户来处理,即指定服务团队,发布工单到不同部门服务与流程配置相关联,平台支持管员自定义服务流程,同时支持使用内置的服务流程

                                                                          +

                                                                          3.1.1. 添加手工工单服务配置

                                                                          +

                                                                          您可以根据下面步骤添加手工工单服务配置:

                                                                          +
                                                                            +
                                                                          1. 在左边导航栏选择「服务建模」-「服务配置」,点击「添加」

                                                                            +

                                                                            填写服务名称、服务描述(选填)、选择业务组,服务类型为手工工单服务时,增选一项服务流程,点击「提交」,进入服务配置「概况」页面

                                                                            +
                                                                              +
                                                                            • 在「基本信息」标签页填入下列信息:名称,描述,logo图像,服务分组,顺序

                                                                              +
                                                                            • +
                                                                            • 在「审批配置」页面指定审批流程,例如,申请创建新项目的手工工单服务,您可以指定租户管理员审批的审批流程。

                                                                              +
                                                                            • +
                                                                            • 在「流程配置」页面指定服务处理阶段需要指派合适的人去完成任务,指定服务确认关闭阶段需要申请人判断问题是否得到解决,配置处理人类型并根据类型选择处理人的详细信息(例如:处理人类型选择服务团队,并进一步选择具体哪一个服务团队)

                                                                              +
                                                                            • +
                                                                            • 在「表单配置」页面指定创建的表单,例如,申请创建新项目的手工工单服务,您可选择创建项目的表单。

                                                                              +
                                                                            • +
                                                                            +
                                                                          2. +
                                                                          3. 点击保存按钮,服务将被保存不发布,点击保存并发布按钮,服务将被发布到服务目录页面。

                                                                            +
                                                                          4. +
                                                                          +

                                                                          3.1.2. 编辑、删除手工工单服务配置

                                                                          +

                                                                          在左侧导航栏点击「服务建模」-「服务配置」,选择一个服务配置,点击「编辑」按钮,输入需要修改的内容,点击「保存」。

                                                                          +

                                                                          在左侧导航栏点击「服务建模」-「服务配置」,选择一个服务配置,点击「删除」按钮,提示删除服务配置成功。

                                                                          +

                                                                          3.1.3. 发布、取消发布手工工单服务配置

                                                                          +

                                                                          在左侧导航栏点击「服务建模」-「服务配置」,选择一个服务配置,点击「发布」按钮,提示发布成功。

                                                                          +

                                                                          在左侧导航栏点击「服务建模」-「服务配置」,选择一个服务配置,点击「取消发布」按钮,提示取消发布服务配置成功。

                                                                          +

                                                                          4. 申请和处理工单

                                                                          +

                                                                          工单的全生命周期可以管控和记录工单全过程,包括工单服务配置、工单申请、工单处理和实时查看服务进展。

                                                                          +

                                                                          当用户在服务目录申请工单完成后,根据预先配置的流程,系统将根据工单与服务团队的关联关系,派发工单给相应的服务团队进行处理。

                                                                          +

                                                                          服务团队中的指定人员收到工单请求之后,可以进行转派,也可以进行线下处理,完成之后更新工单状态,系统自动通知用户,也支持用户查看处理进程。

                                                                          +

                                                                          用户可在服务目录申请业务组发布的、已配置好的服务和共享的服务,其中服务类型包括两种类型:其一是手工工单服务,其二是云资源蓝图服务。服务申请完成,该服务信息可进入我的请求列表页面查看,稍后为您介绍我的请求详细信息。

                                                                          +

                                                                          4.1.1. 我的请求

                                                                          +

                                                                          选择某一个手工工单服务,点击进入手工工单服务信息详情页。输入服务基本信息:标题,描述,优先级,紧急程度,申请者信息必填项的手机号,点击申请即可申请服务成功。服务申请成功之后,服务申请状态变更为处理中,申请进入我的请求当中。

                                                                          +

                                                                          用户可根据以下步骤查看用户自己已经申请的工单和跟踪工单处理进程:

                                                                          +
                                                                            +
                                                                          1. 在左侧导航栏点击「服务请求」-「我的请求」,我的请求页面显示我的请求的基本信息:请求编号,请求类型,标题,服务名称,业务组,项目,申请状态,申请时间,完成时间。

                                                                            +
                                                                          2. +
                                                                          3. 选择任意手工工单服务的服务请求,点击「请求编号」链接,跳转到我的手工工单服务请求详情页面,可查看该请求的基本信息,工单信息,处理记录,审批流程,审批记录等。

                                                                            +
                                                                          4. +
                                                                          5. 审批流程:审批流程图,审批层级、审批人、角色;审批记录:审批流程信息、审批流程名称、状态、审批意见、审批人、审批角色、审批时间

                                                                            +
                                                                          6. +
                                                                          7. 基本信息包括请求编号,申请时间,请求类型,申请者,联系方式,邮箱,业务组,项目等。

                                                                            +
                                                                          8. +
                                                                          9. 工单信息包括标题,描述,优先级,紧急程度,表单配置的字段信息。

                                                                            +
                                                                          10. +
                                                                          11. 处理记录信息:流程步骤,描述,处理结果描述、处理状态和处理人、处理时间。

                                                                            +
                                                                          12. +
                                                                          +

                                                                          4.1.2. 所有请求

                                                                          +

                                                                          租户管理员还可以根据以下步骤查看所有用户的服务工单:

                                                                          +
                                                                            +
                                                                          1. 在左侧导航栏点击「服务请求」-「所有请求」,所有请求页面显示所有请求的基本信息:请求编号,请求类型,部署名称、申请者、业务组,项目,申请状态,申请时间,完成时间、审批者。

                                                                            +
                                                                          2. +
                                                                          3. 请求类型包括手工工单请求、云资源蓝图部署、Day2操作,不同请求类型展示的详情页面稍显不同,具体您参考:我的请求

                                                                            +
                                                                          4. +
                                                                          5. 在服务请求列表页面,支持您快速定位到您需要查看的服务请求,您可以通过状态(服务请求的审批状态:审批未开始、审批中、审批通过、拒绝、退回、错误、撤回),业务组、起止时间(服务请求的起止时间)或关键字搜索框快速定位。

                                                                            +
                                                                          6. +
                                                                          +

                                                                          4.1.3. 待处理

                                                                          +

                                                                          此处显示等待服务团队处理的服务请求

                                                                          +
                                                                            +
                                                                          1. 在左侧导航栏点击「服务请求」-「待处理」,待处理页面显示发起的所有处理请求其中待处理部分,其中显示处理请求的基本信息:请求编号,服务名称,请求类型,标题,业务组,项目,申请状态,申请时间,完成时间。

                                                                            +
                                                                          2. +
                                                                          3. 选择一个待处理的服务请求,点击「请求编号」链接,跳转到请求详情页面,查看该请求的基本信息,工单信息,处理记录,流程步骤,服务处理信息等。

                                                                            +
                                                                          4. +
                                                                          5. 基本信息包括申请编号,申请时间,申请类型,申请者,联系方式,邮箱,业务组,项目等。工单信息包括名称,描述,优先级,紧急程度和表单配置的字段信息。

                                                                            +
                                                                          6. +
                                                                          7. 处理记录包括流程步骤、描述、处理结果描述、状态、处理人、处理时间。

                                                                            +
                                                                          8. +
                                                                          9. 流程步骤:

                                                                            +
                                                                              +
                                                                            • 发起申请:服务申请者通过服务目录发起手工工单服务,等待服务团队处理

                                                                              +
                                                                            • +
                                                                            • 服务处理:需要指派合适的人去完成这项工单任务

                                                                              +
                                                                            • +
                                                                            • 重新处理:申请人判断问题没有得到圆满的解决,选择将服务返回给服务人员进行处理

                                                                              +
                                                                            • +
                                                                            • 确认关闭:申请人判断问题已经得到圆满的解决,则关闭服务

                                                                              +
                                                                            • +
                                                                            +
                                                                          10. +
                                                                          11. 处理方式:直接处理和转派处理

                                                                            +
                                                                              +
                                                                            • 选择直接处理方式,点击直接处理,填上处理结果描述,即可点击提交处理,点击页面下方提交按钮即可处理完成此次服务请求,邮件通知服务申请者,申请者进行工单关闭操作,则服务请求状态变更为「已处理」。

                                                                              +
                                                                            • +
                                                                            • 选择转派处理方式,点击转派,选择服务团队,处理人和转派说明,点击页面下方提交按钮即可处理完成此次服务请求,服务请求状态「处理中」。

                                                                              +
                                                                            • +
                                                                            +
                                                                          12. +
                                                                          +

                                                                          4.1.4. 已处理

                                                                          +

                                                                          此处显示服务团队已经处理完成并且申请人已经确认关闭服务的请求。

                                                                          +
                                                                            +
                                                                          1. 在左侧导航栏点击「服务请求」-「已处理」,页面显示发起的所有处理请求其中已处理部分

                                                                            +
                                                                          2. +
                                                                          3. 显示处理请求的基本信息:请求编号,请求类型,服务名称,标题,申请者,业务组,项目,申请状态,申请时间,完成时间

                                                                            +
                                                                          4. +
                                                                          5. 选择一个请求,点击「请求编号」链接,跳转到我的请求详情页面,可查看该请求的基本信息,工单信息,处理记录。

                                                                            +
                                                                          6. +
                                                                          + + +
                                                                          + +
                                                                          +
                                                                          +
                                                                          + +

                                                                          results matching ""

                                                                          +
                                                                            + +
                                                                            +
                                                                            + +

                                                                            No results matching ""

                                                                            + +
                                                                            +
                                                                            +
                                                                            + +
                                                                            +
                                                                            + +
                                                                            + + + + + + + + + + + + + + +
                                                                            + + +
                                                                            + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git "a/AdminDoc/09\347\263\273\347\273\237\347\256\241\347\220\206/README.md" "b/AdminDoc/09\347\263\273\347\273\237\347\256\241\347\220\206/README.md" new file mode 100644 index 0000000..2992393 --- /dev/null +++ "b/AdminDoc/09\347\263\273\347\273\237\347\256\241\347\220\206/README.md" @@ -0,0 +1,166 @@ +**系统管理** + + +# 系统配置 +在左侧菜单栏选择「系统管理」-「系统配置」,进入「概况」页面: + + +## 用户登录类型 +可配置多种登录方式,包括: 本地登录, 直接使用SmartCMP配置的用户名和密码登录。 + ### LDAP/Microsoft Active Directory + ++ 不论大小企业,无论企业性质,都需要一个集中式的帐号管理系统,员工只需要设置一次帐号密码,就可以方便地使用各个不同的系统。(例如:行政层面的OA系统、邮件系统、会议室预订系统等等。研发团队内部又可能有代码管理、项目进度管理、Bug追踪、依赖管理、Wiki等等。) + ++ 当选用经典的LDAP (Lightweight Directory Access Protocol)作为帐号管理服务器,LDAP是一个开放的,中立的,工业标准的应用协议,通过IP协议提供访问控制和维护分布式信息的目录信息。将OA系统、代码服务器、Jenkins等系统接入LDAP,实现“一套帐号,各系统共享”。 + ++ 「LDAP配置」中填入:LDAP Connection Name、LDAP URL即LDAP服务器地址、 Base DN、ROOT DN、Password + ++ 配置完成之后,在LDAP的登录UI中,输入 LDAP的 uid/password, 进行登录,验证成功之后,可以进入到SmartCMP,但用户在第一次登录后没有任何的权限,管理员给这个User 配置ROLE和BG之后,用户需要重新登录,然后正常进行其它的操作。 + + + +### OAuth2 + +OAuth2 是一个开放授权标准,它允许用户让第三方应用访问该用户在某服务的特定私有资源,但是不提供账号密码信息给第三方应用。例如:用户小明希望通过github账号来登录SmartCMP +下面为您介绍SmartCMP如何使用 OAuth2 登录的具体步骤。 + ++ 选择登录类型为 OAuth2 进行具体的参数配置,以github为例,获取授权信息: ++ 登陆giuhub,点击个人头像,一次点击 Settings --> Developer Settings --> OAuth,点击 New OAuth App +![github配置](../../picture/Admin/github1.png) + +创建成功后如下: +![github配置](../../picture/Admin/github2.png) + ++ 配置完成后,在浏览器中输入:http://<服务器域名或地址>端口号/login/oauth2/租户id,将会自动跳转到用户授权页面,输入gitHub用户名和密码,验证通过后直接跳转到SmartCMP平台,以此实现通过github账号来登录SmartCMP的功能需求。 + +### CAS_SSO + ++ 当选择登录方式为 CAS_SSO时,UI界面没有任何配置信息,后台会提前配置,具体配置方法请咨询交付工程师。 ++ 用户的访问方式:SmartCMP的每个租户在对接Cas的时候需要使用每个租户定制的登录方式, 例如: 租户 "default", 那么Cas的登录地址就是 custlogin/cas/default, 在浏览器下输入,http://192.168.12.34/custlogin/cas/default , 就是cas的登录方式,后缀“default”,是当前租户的id。在实际常见中,default替换为实际id,ip(192.168.12.34)以实际ip为准 + + + + +## DNS配置 +如果需要配置和发布DNS服务,请在此处设置DNS根域名,并在资源池中根据不同环境的需要设置子域名,从而在服务配置中进行选择 + ++ DNS域(OpenStack) 新增DNS域,可新增一个或多个(选填) ++ 域名由根域名、顶级域、二级、三级等多级域名构成,每级域名由字母、数字和连字符(-)构成(第一个字符不能是连字符),不区分大小写,长度不超过63个字符。一个完整域名总长度不超过255个字符,必须以点结尾。配置成功后,可在OpenStack资源池中配置二级、三级域名。 + + +>「Note」DNS域名需在DNS服务器上配置,如无,在申请服务时将报错 + + +# 界面配置{#界面配置} + +通过"「系统配置」-「界面配置」"来确定品牌和服务申请信息包括,配色、页眉、浏览器标签、登录页面、关于页面和是否显示帮助文档,以及调整服务目录的显示方式。 + +配置品牌的具体步骤: +选择亮色系或暗色系风格,控制左边导航栏区域的配色风格; +可选择是否隐藏页面,当选择不隐藏时,使用调色面板选择页面配色和文字颜色,上传图标、自定义文字内容; +上传浏览器图标,自定义浏览器标题; +上传登录页面背景图片,定义登录页左边文字,自定义文字样式,文字支持使用Markdown 语法格式; +可选择是否隐藏关于页面,当选择不隐藏时,上传图片,定义产品名称和版权声明; +定义是否显示帮助文档,选择隐藏时,导航栏右上角的问号按钮将被隐藏。 + + + +配置服务申请的具体步骤:目前服务目录支持2种视图。在「服务申请」标签页, + ++ 租户管理员可以配置 在服务目录中,分组与服务的展现方式:标签页展示或层级展示 + ++ 具体展现方式:标签页展示:即分组按照标签页展示。层级展示的方式,按照卡片的模式,先展示服务分组,服务分组的具体操作步骤,请参考:[服务分组](https://cloudchef.github.io/doc/AdminDoc/05服务建模/服务分组.html) 在服务目录视图界面,可查看服务分组的图标、名称、描述和文件夹的显示方式,点击一个分组,展现此服务分组的所有卡片。 + + + +# 通知配置 + +## SMTP配置 + +进入菜单「系统管理」-「系统配置」,在SMTP配置标签页,用户可以配置当前租户能够访问的SMTP配置。 + +在SMTP配置中可以填入下列信息: + + 基本信息 |说明 + :------------:|: ------------: + 使用SSL | 当前SMTP是否适用了SSL + SMTP服务器 | SMTP服务器地址 + 端口 | SMTP端口号 + 用户名 | 用户名 + 密码 | 密码 + 发件人 | 默认的邮件发件人 + +配置完成后,可点击「验证设置」,系统将会根据配置自动发送一封测试邮件到当前账户的邮箱地址,以验证SMTP服务器是否工作。 + +## SMS配置 + +进入菜单「系统管理」-「系统配置」,在「SMS配置」标签页中,可以填入当前租户能够访问的SMS(短消息)配置。 + + 基本信息 |说明 + :---:|:---: + 用户名 | 用户名 + 密码 | 密码 + SMS服务器 | SMS服务器地址 + 端口 | SMS端口 + +## 企业微信配置 + +进入菜单「系统管理」-「系统配置」,在「企业微信配置」标签页中,租户管理员可以配置当前租户企业微信的相关信息。 + + 基本信息 | 说明 + :---:|:---: + 企业ID | 在企业微信管理后台“我的企业”->“企业信息”下查看 + 应用ID | 每一个应用的唯一AgentID,请在企业微信管理后台“应用与小程序”->“应用”下查看 + 应用密钥 | 每一个应用都有一个独立的访问密钥,请在企业微信管理后台“应用与小程序”->“应用”下查看 + +## 钉钉配置 +进入菜单「系统管理」-「系统配置」,在「钉钉配置」标签页中,租户管理员可以配置当前租户钉钉的相关信息。 + + 基本信息 | 说明 + :---:|:---: + 应用ID |创建应用时,系统自动生成的AgentId,可用于发送企业会话消息等场景 + 应用Key |创建应用时,与应用Key一起同时由系统自动生成 + 应用密钥 |创建应用时,系统自动分配,是应用开发过程中的唯一性标识 + +# 菜单配置 + + +当您接入第三方系统或扩展系统(如接入百度、京东、Azure账单、仪表盘)时,菜单配置使接入的菜单能够更加灵活。 + +在菜单配置中您可以定义多种仪表盘,您也可以接入外部系统,并自由灵活的选择扩展菜单,下文为您介绍具体的操作方法。 + +## 添加菜单配置 + +菜单配置可定义多种仪表盘和接入多种不同第三方系统,定义好的仪表盘和扩展系统将根据定义的权限分配给不同的角色查看,并根据定义的位置灵活的展现。 + +点击「系统管理」-「菜单配置」,点击添加,在「添加菜单配置」标签页中,输入名称、描述、类型(选择Metabase代表接入的是仪表盘,选择外部URL为接入第三方系统)、位置、URL参数、角色(选择能够访问此菜单的角色)、状态(选择启用还是禁用该菜单)。 + +您可以灵活选择扩展菜单的位置,例如: + +添加扩展菜单百度,位置选择 + +- 前于系统管理(系统管理是一级菜单),则百度也是一级菜单在系统管理菜单前面 + +- 位于系统管理(系统管理是一级菜单),则百度是二级菜单内置在系统管理菜单中 + +- 后于系统管理(系统管理是一级菜单),则百度也是一级菜单在系统管理菜单后面 + +2. 点击「提交」,菜单配置列表中显示目前添加的所有仪表盘,显示仪表盘名称、描述、ULR来源、URL参数、角色(可查看该仪表盘的角色)、状态、创建时间等。 + +## 编辑、删除菜单配置 + +点击「系统管理」-「菜单配置」,点击编辑,在「编辑菜单配置」标签页中,二次编辑扩展菜单信息。 + +点击「系统管理」-「菜单配置」,点击删除,即可删除扩展菜单 + +# 报表配置 + +报表配置功能为用户提供更多各种类型的报表,形成一个可扩展的报表模块,支持管理员自由灵活地定义报表功能。 + ++ 在「系统管理」-「报表配置」配置不同角色的报表查看权限,设置报表的状态(启用、禁用),并选择将报表赋予给某角色进行查看,如租户成员、业务组管理员、软件架构师以及自定义角色。 + ++ 配置完成后,在「资源分析」-「报表」可以查看相应的报表,支持将报表导出为常用的Excel和PDF格式文件。 + + + + diff --git "a/AdminDoc/09\347\263\273\347\273\237\347\256\241\347\220\206/index.html" "b/AdminDoc/09\347\263\273\347\273\237\347\256\241\347\220\206/index.html" new file mode 100644 index 0000000..b510ad7 --- /dev/null +++ "b/AdminDoc/09\347\263\273\347\273\237\347\256\241\347\220\206/index.html" @@ -0,0 +1,1245 @@ + + + + + + + 系统管理 · 发行说明 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
                                                                            +
                                                                            + + + + + + + + +
                                                                            + +
                                                                            + +
                                                                            + + + + + + + + +
                                                                            +
                                                                            + +
                                                                            +
                                                                            + +
                                                                            + +

                                                                            系统管理

                                                                            +

                                                                            1. 系统配置

                                                                            +

                                                                            在左侧菜单栏选择「系统管理」-「系统配置」,进入「概况」页面:

                                                                            +

                                                                            1.1. 用户登录类型

                                                                            +

                                                                            可配置多种登录方式,包括: 本地登录, 直接使用SmartCMP配置的用户名和密码登录。

                                                                            +

                                                                            1.1.1. LDAP/Microsoft Active Directory

                                                                            +
                                                                              +
                                                                            • 不论大小企业,无论企业性质,都需要一个集中式的帐号管理系统,员工只需要设置一次帐号密码,就可以方便地使用各个不同的系统。(例如:行政层面的OA系统、邮件系统、会议室预订系统等等。研发团队内部又可能有代码管理、项目进度管理、Bug追踪、依赖管理、Wiki等等。)

                                                                              +
                                                                            • +
                                                                            • 当选用经典的LDAP (Lightweight Directory Access Protocol)作为帐号管理服务器,LDAP是一个开放的,中立的,工业标准的应用协议,通过IP协议提供访问控制和维护分布式信息的目录信息。将OA系统、代码服务器、Jenkins等系统接入LDAP,实现“一套帐号,各系统共享”。

                                                                              +
                                                                            • +
                                                                            • 「LDAP配置」中填入:LDAP Connection Name、LDAP URL即LDAP服务器地址、 Base DN、ROOT DN、Password

                                                                              +
                                                                            • +
                                                                            • 配置完成之后,在LDAP的登录UI中,输入 LDAP的 uid/password, 进行登录,验证成功之后,可以进入到SmartCMP,但用户在第一次登录后没有任何的权限,管理员给这个User 配置ROLE和BG之后,用户需要重新登录,然后正常进行其它的操作。

                                                                              +
                                                                            • +
                                                                            +

                                                                            1.1.2. OAuth2

                                                                            +

                                                                            OAuth2 是一个开放授权标准,它允许用户让第三方应用访问该用户在某服务的特定私有资源,但是不提供账号密码信息给第三方应用。例如:用户小明希望通过github账号来登录SmartCMP +下面为您介绍SmartCMP如何使用 OAuth2 登录的具体步骤。

                                                                            +
                                                                              +
                                                                            • 选择登录类型为 OAuth2 进行具体的参数配置,以github为例,获取授权信息:
                                                                            • +
                                                                            • 登陆giuhub,点击个人头像,一次点击 Settings --> Developer Settings --> OAuth,点击 New OAuth App +github配置
                                                                            • +
                                                                            +

                                                                            创建成功后如下: +github配置

                                                                            +
                                                                              +
                                                                            • 配置完成后,在浏览器中输入:http://<服务器域名或地址>端口号/login/oauth2/租户id,将会自动跳转到用户授权页面,输入gitHub用户名和密码,验证通过后直接跳转到SmartCMP平台,以此实现通过github账号来登录SmartCMP的功能需求。
                                                                            • +
                                                                            +

                                                                            1.1.3. CAS_SSO

                                                                            +
                                                                              +
                                                                            • 当选择登录方式为 CAS_SSO时,UI界面没有任何配置信息,后台会提前配置,具体配置方法请咨询交付工程师。
                                                                            • +
                                                                            • 用户的访问方式:SmartCMP的每个租户在对接Cas的时候需要使用每个租户定制的登录方式, 例如: 租户 "default", 那么Cas的登录地址就是 custlogin/cas/default, 在浏览器下输入,http://192.168.12.34/custlogin/cas/default , 就是cas的登录方式,后缀“default”,是当前租户的id。在实际常见中,default替换为实际id,ip(192.168.12.34)以实际ip为准
                                                                            • +
                                                                            +

                                                                            1.2. DNS配置

                                                                            +

                                                                            如果需要配置和发布DNS服务,请在此处设置DNS根域名,并在资源池中根据不同环境的需要设置子域名,从而在服务配置中进行选择

                                                                            +
                                                                              +
                                                                            • DNS域(OpenStack) 新增DNS域,可新增一个或多个(选填)
                                                                            • +
                                                                            • 域名由根域名、顶级域、二级、三级等多级域名构成,每级域名由字母、数字和连字符(-)构成(第一个字符不能是连字符),不区分大小写,长度不超过63个字符。一个完整域名总长度不超过255个字符,必须以点结尾。配置成功后,可在OpenStack资源池中配置二级、三级域名。
                                                                            • +
                                                                            +
                                                                            +

                                                                            「Note」DNS域名需在DNS服务器上配置,如无,在申请服务时将报错

                                                                            +
                                                                            +

                                                                            2. 界面配置

                                                                            +

                                                                            通过"「系统配置」-「界面配置」"来确定品牌和服务申请信息包括,配色、页眉、浏览器标签、登录页面、关于页面和是否显示帮助文档,以及调整服务目录的显示方式。

                                                                            +

                                                                            配置品牌的具体步骤: +选择亮色系或暗色系风格,控制左边导航栏区域的配色风格; +可选择是否隐藏页面,当选择不隐藏时,使用调色面板选择页面配色和文字颜色,上传图标、自定义文字内容; +上传浏览器图标,自定义浏览器标题; +上传登录页面背景图片,定义登录页左边文字,自定义文字样式,文字支持使用Markdown 语法格式; +可选择是否隐藏关于页面,当选择不隐藏时,上传图片,定义产品名称和版权声明; +定义是否显示帮助文档,选择隐藏时,导航栏右上角的问号按钮将被隐藏。

                                                                            +

                                                                            配置服务申请的具体步骤:目前服务目录支持2种视图。在「服务申请」标签页,

                                                                            +
                                                                              +
                                                                            • 租户管理员可以配置 在服务目录中,分组与服务的展现方式:标签页展示或层级展示

                                                                              +
                                                                            • +
                                                                            • 具体展现方式:标签页展示:即分组按照标签页展示。层级展示的方式,按照卡片的模式,先展示服务分组,服务分组的具体操作步骤,请参考:服务分组 在服务目录视图界面,可查看服务分组的图标、名称、描述和文件夹的显示方式,点击一个分组,展现此服务分组的所有卡片。

                                                                              +
                                                                            • +
                                                                            +

                                                                            3. 通知配置

                                                                            +

                                                                            3.1. SMTP配置

                                                                            +

                                                                            进入菜单「系统管理」-「系统配置」,在SMTP配置标签页,用户可以配置当前租户能够访问的SMTP配置。

                                                                            +

                                                                            在SMTP配置中可以填入下列信息:

                                                                            + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
                                                                            基本信息说明
                                                                            使用SSL当前SMTP是否适用了SSL
                                                                            SMTP服务器SMTP服务器地址
                                                                            端口SMTP端口号
                                                                            用户名用户名
                                                                            密码密码
                                                                            发件人默认的邮件发件人
                                                                            +

                                                                            配置完成后,可点击「验证设置」,系统将会根据配置自动发送一封测试邮件到当前账户的邮箱地址,以验证SMTP服务器是否工作。

                                                                            +

                                                                            3.2. SMS配置

                                                                            +

                                                                            进入菜单「系统管理」-「系统配置」,在「SMS配置」标签页中,可以填入当前租户能够访问的SMS(短消息)配置。

                                                                            + + + + + + + + + + + + + + + + + + + + + + + + + +
                                                                            基本信息说明
                                                                            用户名用户名
                                                                            密码密码
                                                                            SMS服务器SMS服务器地址
                                                                            端口SMS端口
                                                                            +

                                                                            3.3. 企业微信配置

                                                                            +

                                                                            进入菜单「系统管理」-「系统配置」,在「企业微信配置」标签页中,租户管理员可以配置当前租户企业微信的相关信息。

                                                                            + + + + + + + + + + + + + + + + + + + + + +
                                                                            基本信息说明
                                                                            企业ID在企业微信管理后台“我的企业”->“企业信息”下查看
                                                                            应用ID每一个应用的唯一AgentID,请在企业微信管理后台“应用与小程序”->“应用”下查看
                                                                            应用密钥每一个应用都有一个独立的访问密钥,请在企业微信管理后台“应用与小程序”->“应用”下查看
                                                                            +

                                                                            3.4. 钉钉配置

                                                                            +

                                                                            进入菜单「系统管理」-「系统配置」,在「钉钉配置」标签页中,租户管理员可以配置当前租户钉钉的相关信息。

                                                                            + + + + + + + + + + + + + + + + + + + + + +
                                                                            基本信息说明
                                                                            应用ID创建应用时,系统自动生成的AgentId,可用于发送企业会话消息等场景
                                                                            应用Key创建应用时,与应用Key一起同时由系统自动生成
                                                                            应用密钥创建应用时,系统自动分配,是应用开发过程中的唯一性标识
                                                                            +

                                                                            4. 菜单配置

                                                                            +

                                                                            当您接入第三方系统或扩展系统(如接入百度、京东、Azure账单、仪表盘)时,菜单配置使接入的菜单能够更加灵活。

                                                                            +

                                                                            在菜单配置中您可以定义多种仪表盘,您也可以接入外部系统,并自由灵活的选择扩展菜单,下文为您介绍具体的操作方法。

                                                                            +

                                                                            4.1. 添加菜单配置

                                                                            +

                                                                            菜单配置可定义多种仪表盘和接入多种不同第三方系统,定义好的仪表盘和扩展系统将根据定义的权限分配给不同的角色查看,并根据定义的位置灵活的展现。

                                                                            +

                                                                            点击「系统管理」-「菜单配置」,点击添加,在「添加菜单配置」标签页中,输入名称、描述、类型(选择Metabase代表接入的是仪表盘,选择外部URL为接入第三方系统)、位置、URL参数、角色(选择能够访问此菜单的角色)、状态(选择启用还是禁用该菜单)。

                                                                            +

                                                                            您可以灵活选择扩展菜单的位置,例如:

                                                                            +

                                                                            添加扩展菜单百度,位置选择

                                                                            +
                                                                              +
                                                                            • 前于系统管理(系统管理是一级菜单),则百度也是一级菜单在系统管理菜单前面

                                                                              +
                                                                            • +
                                                                            • 位于系统管理(系统管理是一级菜单),则百度是二级菜单内置在系统管理菜单中

                                                                              +
                                                                            • +
                                                                            • 后于系统管理(系统管理是一级菜单),则百度也是一级菜单在系统管理菜单后面

                                                                              +
                                                                            • +
                                                                            • 点击「提交」,菜单配置列表中显示目前添加的所有仪表盘,显示仪表盘名称、描述、ULR来源、URL参数、角色(可查看该仪表盘的角色)、状态、创建时间等。

                                                                              +
                                                                            • +
                                                                            +

                                                                            4.2. 编辑、删除菜单配置

                                                                            +

                                                                            点击「系统管理」-「菜单配置」,点击编辑,在「编辑菜单配置」标签页中,二次编辑扩展菜单信息。

                                                                            +

                                                                            点击「系统管理」-「菜单配置」,点击删除,即可删除扩展菜单

                                                                            +

                                                                            5. 报表配置

                                                                            +

                                                                            报表配置功能为用户提供更多各种类型的报表,形成一个可扩展的报表模块,支持管理员自由灵活地定义报表功能。

                                                                            +
                                                                              +
                                                                            • 在「系统管理」-「报表配置」配置不同角色的报表查看权限,设置报表的状态(启用、禁用),并选择将报表赋予给某角色进行查看,如租户成员、业务组管理员、软件架构师以及自定义角色。

                                                                              +
                                                                            • +
                                                                            • 配置完成后,在「资源分析」-「报表」可以查看相应的报表,支持将报表导出为常用的Excel和PDF格式文件。

                                                                              +
                                                                            • +
                                                                            + + +
                                                                            + +
                                                                            +
                                                                            +
                                                                            + +

                                                                            results matching ""

                                                                            +
                                                                              + +
                                                                              +
                                                                              + +

                                                                              No results matching ""

                                                                              + +
                                                                              +
                                                                              +
                                                                              + +
                                                                              +
                                                                              + +
                                                                              + + + + + + + + + + + + + + +
                                                                              + + +
                                                                              + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git "a/AdminDoc/10\347\247\237\346\210\267\347\256\241\347\220\206/README.md" "b/AdminDoc/10\347\247\237\346\210\267\347\256\241\347\220\206/README.md" new file mode 100644 index 0000000..d784e45 --- /dev/null +++ "b/AdminDoc/10\347\247\237\346\210\267\347\256\241\347\220\206/README.md" @@ -0,0 +1,40 @@ + +**租户管理** + +# 租户管理概述 + + +SmartCMP支持多租户混合云计费管理模式,在系统管理租户的「租户中心」页面中,系统管理员可以对租户进行管理。 + ++ 通过URLhttp://(server-address)/login?tenant=admin ++ 登录系统管理租户,在菜单中点击「租户中心」-「租户」 + +- 添加租户:在菜单中点击「租户中心」-「租户」,租户页面点击「添加」按钮,创建租户页面「基本信息」输入ID和名称,可设置该租户的logo图像和主题颜色,点击「保存」 + +- 编辑租户:在菜单中点击「租户中心」-「租户」,租户页面选择一个租户,点击「编辑」按钮,输入需要修改的租户信息;编辑租户时可为租户设置主题颜色,可选择默认的3种主题,也可自定义,「确定」后点击「保存」 + +- 删除租户:在菜单中点击「租户中心」-「租户」,租户页面选择一个租户,点击「删除」按钮,删除提示框点击「是」,提示租户删除成功 + +>「Note」admin租户不能被删除。 + +# 许可证管理 + + +登录系统管理租户,在菜单中点击「系统管理 +」-「许可证管理」。许可证管理页面将显示云主机总个数以及已使用的云主机个数,以及授权的物理CPU总个数以及已使用的物理CPU个数。 + +产品许可证控制软件的发型许可,包括以下内容: + + + 注册名:系统许可证所有者 + + 许可类型:控制软件的功能属性,例如包含哪些系统自带组件,支持哪些云平台管理等信息。 + + 版本:系统版本 + + 有效期至:软件使用时间限制,过期如需继续使用,需进行更新 + + 授权云主机个数:使用本系统创建虚拟机上限。超过上限将不允许部署新的虚拟机 + + 授权物理CPU数(个):使用本系统创建虚拟机总物理CPU上限,如本项已设置,则授权云主机个数视为不设限。混合云的环境中,如果按照CPU采购,公有云上的虚拟机,按照15台虚拟机等于1个物理CPU计算。超过上限将不允许部署新的虚拟机。 + + 状态:显示许可证的状态:有效和到期。 + +1. 点击添加按钮可进入许可证添加页面,输入许可证,点击「添加」 + +2. 选择一个许可证,点击更新,进入更新许可证界面,输入新的许可证,点击「更新」即可更新许可证 + +3. 选择一个许可证,点击「删除」,即可删除许可证,系统还有15天内过期时,用户将会在页面顶部看到提示信息,目前支持多种许可证(License)的组合。 diff --git "a/AdminDoc/10\347\247\237\346\210\267\347\256\241\347\220\206/index.html" "b/AdminDoc/10\347\247\237\346\210\267\347\256\241\347\220\206/index.html" new file mode 100644 index 0000000..843f753 --- /dev/null +++ "b/AdminDoc/10\347\247\237\346\210\267\347\256\241\347\220\206/index.html" @@ -0,0 +1,1080 @@ + + + + + + + 租户管理 · 发行说明 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
                                                                              +
                                                                              + + + + + + + + +
                                                                              + +
                                                                              + +
                                                                              + + + + + + + + +
                                                                              +
                                                                              + +
                                                                              +
                                                                              + +
                                                                              + +

                                                                              租户管理

                                                                              +

                                                                              1. 租户管理概述

                                                                              +

                                                                              SmartCMP支持多租户混合云计费管理模式,在系统管理租户的「租户中心」页面中,系统管理员可以对租户进行管理。

                                                                              +
                                                                                +
                                                                              • 通过URLhttp://(server-address)/login?tenant=admin
                                                                              • +
                                                                              • 登录系统管理租户,在菜单中点击「租户中心」-「租户」

                                                                                +
                                                                              • +
                                                                              • 添加租户:在菜单中点击「租户中心」-「租户」,租户页面点击「添加」按钮,创建租户页面「基本信息」输入ID和名称,可设置该租户的logo图像和主题颜色,点击「保存」

                                                                                +
                                                                              • +
                                                                              • 编辑租户:在菜单中点击「租户中心」-「租户」,租户页面选择一个租户,点击「编辑」按钮,输入需要修改的租户信息;编辑租户时可为租户设置主题颜色,可选择默认的3种主题,也可自定义,「确定」后点击「保存」

                                                                                +
                                                                              • +
                                                                              • 删除租户:在菜单中点击「租户中心」-「租户」,租户页面选择一个租户,点击「删除」按钮,删除提示框点击「是」,提示租户删除成功

                                                                                +
                                                                              • +
                                                                              +
                                                                              +

                                                                              「Note」admin租户不能被删除。

                                                                              +
                                                                              +

                                                                              2. 许可证管理

                                                                              +

                                                                              登录系统管理租户,在菜单中点击「系统管理 +」-「许可证管理」。许可证管理页面将显示云主机总个数以及已使用的云主机个数,以及授权的物理CPU总个数以及已使用的物理CPU个数。

                                                                              +

                                                                              产品许可证控制软件的发型许可,包括以下内容:

                                                                              +
                                                                                +
                                                                              • 注册名:系统许可证所有者
                                                                              • +
                                                                              • 许可类型:控制软件的功能属性,例如包含哪些系统自带组件,支持哪些云平台管理等信息。
                                                                              • +
                                                                              • 版本:系统版本
                                                                              • +
                                                                              • 有效期至:软件使用时间限制,过期如需继续使用,需进行更新
                                                                              • +
                                                                              • 授权云主机个数:使用本系统创建虚拟机上限。超过上限将不允许部署新的虚拟机
                                                                              • +
                                                                              • 授权物理CPU数(个):使用本系统创建虚拟机总物理CPU上限,如本项已设置,则授权云主机个数视为不设限。混合云的环境中,如果按照CPU采购,公有云上的虚拟机,按照15台虚拟机等于1个物理CPU计算。超过上限将不允许部署新的虚拟机。
                                                                              • +
                                                                              • 状态:显示许可证的状态:有效和到期。
                                                                              • +
                                                                              +
                                                                                +
                                                                              1. 点击添加按钮可进入许可证添加页面,输入许可证,点击「添加」

                                                                                +
                                                                              2. +
                                                                              3. 选择一个许可证,点击更新,进入更新许可证界面,输入新的许可证,点击「更新」即可更新许可证

                                                                                +
                                                                              4. +
                                                                              5. 选择一个许可证,点击「删除」,即可删除许可证,系统还有15天内过期时,用户将会在页面顶部看到提示信息,目前支持多种许可证(License)的组合。

                                                                                +
                                                                              6. +
                                                                              + + +
                                                                              + +
                                                                              +
                                                                              +
                                                                              + +

                                                                              results matching ""

                                                                              +
                                                                                + +
                                                                                +
                                                                                + +

                                                                                No results matching ""

                                                                                + +
                                                                                +
                                                                                +
                                                                                + +
                                                                                +
                                                                                + +
                                                                                + + + + + + + + + + + + + + +
                                                                                + + +
                                                                                + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git "a/AdminDoc/11\351\233\206\346\210\220\344\270\216\345\217\221\345\270\203\347\256\241\347\220\206/README.md" "b/AdminDoc/11\351\233\206\346\210\220\344\270\216\345\217\221\345\270\203\347\256\241\347\220\206/README.md" new file mode 100644 index 0000000..244fdb0 --- /dev/null +++ "b/AdminDoc/11\351\233\206\346\210\220\344\270\216\345\217\221\345\270\203\347\256\241\347\220\206/README.md" @@ -0,0 +1,128 @@ +**持续发布与部署** + +SmartCMP应用持续发布和部署功能是通过软件组件、蓝图和全新引进的流水线来构建,具体包括: ++ 定义应用软件:接入主流的制品仓库对软件组件进行存放管理和版本控制,软件组件关联制品仓库并自定义应用的部署方式和相关参数。 ++ 定义应用服务:通过蓝图建模,编排应用架构;通过服务配置,指定资源参数和相关应用的版本。 ++ 定义流水线:配置流水线的阶段和多种类型的任务,实现应用的测试、部署、更新、运维、回收的的全生命周期管理。 + + + +![持续发布与部署](../../picture/Admin/持续发布和部署.png) + + + +# 制品管理 +SmartCMP配置应用软件,通过接入主流的制品仓库对软件组件进行存放管理和版本控制,软件组件关联制品仓库并自定义应用的部署方式和相关参数。 +制品仓库管理是对软件研发过程中生成的产物的管理, 制品一般作为最终交付物完成发布和交付。所有的制品包,依赖组件均能够纳入制品库中统一管理。 + + ++ 制品仓库在SmartCMP平台中是通过入口来接入的,具体的操作步骤,请参考, +[入口](#入口) + ++ SmartCMP支持通过软件组件功能实现定义应用软件,将制品仓库与软件组件关联,制品仓库对软件组件进行存放关联和版本控制管理。软件组件与主流制品库关联,具体的操作步骤如下:1. 在软件组件列表点击软件名称,进入组件视图。2. 在「制品」视图,您可以选择 端点、仓库(Nexus)、组、名称、版本。3. 点击保存按钮,即可将组件与包管理平台进行关联。 + + ++ 定义应用服务,基于蓝图建模,设计应用架构,实现每一个应用拓扑蓝图的自动化部署。基于服务配置,配置软件组件的节点详细参数,让平台根据策略执行应用管理和自动化部署。 (蓝图设计是平台原有功能,此处不再写具体配置步骤,请您参考,[创建蓝图](https://cloudchef.github.io/doc/AdminDoc/05服务建模/蓝图设计.html))配置软件组件的节点详细参数,具体的操作步骤如下:1. 在左边导航选择「服务建模」-「服务配置」,出现服务列表,列表中显示服务名称,点击服务名称,进入详细配置视图,点击「组件配置」,选择软件组件。2. 「节点详细设置」视图,配置软件组件节点的组、名称、版本 + + + + +## 入口{#入口} +入口可以添加需要连接的软件制品仓库,为将要使用的软件组件提供部署时的制品来源,定义了软件包或任务调度的对接。流水线中执行归档或镜像推送操作的程序包,会统一存放一份在制品仓库中,支持在入口处接入Nexus等等制品仓库管理平台。 + +具体步骤:在左侧导航栏点击「集成与发布」-「入口」, ++ 点击添加Nexus入口,输入Nexus服务器端点名称、服务器详细的对接地址、用户名、密码 ++ 点击添加Jekins入口,输入Jekins服务器名称、地址,类型选择密码使输入用户名、密码;选择令牌时输入用户名和令牌。 ++ 点击验证、验证通过,点击提交即可接入软件制品仓库。 +>「Note」 先决条件: 确认Nexus或Jekins服务器可用并已配置。 + + + + +# 流水线{#流水线} + +SmartCMP的流水线,能够帮助用户建设自动化的、可重复利用、安全合规的应用持续交付和部署。流水线由一系列阶段构成,每个阶段由软件在发布到生产之前必须完成的多个任务和环境组成。目前支持多种阶段和任务的自定义和组装,能够在阶段中添加任意数量的执行任务,通过它们已经可以设计出各种场景适用的开发、部署、运维流水线。 + +具体步骤: + ++ 在左侧导航栏点击「集成与发布」-「流水线」,点击创建流水线,在基本信息页面输入名称、描述、绑定一个项目、通知到用户,并可添加全局参数,在后期任务中进行调用。例如:添加全局参数,定义master分支的全局信息,供配置调用,具体步骤:在基本信息页面,参数列表处,点击加号按钮,填写名称“Branch”,值“master”,选填描述,更多详情参考下图。 + +![创建流水线](../../picture/Admin/devops01.png) + ++ 当您创建流水线完成之后, 在左侧导航栏点击「集成与发布」-「流水线」,可二次编辑、删除、执行、禁用、锁定流水线。 + + +## 配置触发器 + +自定义流水线的触发条件,触发器定义何时自动运行流水线,可以手动触发流水线任务,也可以设定策略由触发器自动触发流水线任务。SmartCMP触发器类型包括:Webhook集成(支持Git,Gitlab等代码仓库改变触发)、Jenkins触发、定时触发、手工触发等等。 ++ 例如:添加定时触发器的具体步骤:输入触发器名称填写定时触发器、类型选择CRON、描述(选填),配置CRON的详细参数,选择重复的类型(自定义cron表达式 例如:0 0 0 * * ?、每周某天的某个时段、每月某天的某个时段、每天的某个时段)点击创建即可配置完成触发器。例如:每天/每周/每月的10点10分执行生成快照的操作。 ++ 例如:添加配置一个Webhook类型的触发器(当代码提交到Gitlab代码仓库时触发),当提交代码到Gitlab代码仓库时,仓库状态发生改变,触发流水线。具体步骤:在左侧导航栏点击「集成与发布」-「流水线」,点击创建,在触发器页面点击创建, 输入触发器名称、类型选择WEBHOOK、描述(选填),WEBHOOK详细参数配置如下: + ++ 以Gitlab为例,在流水线详情中添加一个webhook类型的触发器。在 "来源" 中自定义字段,例如:下图的"gitlab-test","gitlab-test"会自动拼接到"URL",形成完整的网址链接。注意:这个完整的URL( http://SmartCMP地址/ops-listener/webhook/gitlab-test ), 在Gitlab中配置时要用到。添加过滤条件,过滤条件的作用相当于密码验证。当管理员不配置过滤条件时,只要调用这个URL(http://SmartCMP地址/ops-listener/webhook/Gitlab-test ),就会触发流水线操作。添加过滤条件后,相当于给"webhook trigger"添加了密码。当回调URL时,只有密码匹配成功才能触发流水线操作。如果只支持Gitlab,Gitlee和Git,过滤条件只需要设置密码就可以生效,采用键值对的方式是为了兼容更多的场景。所以添加过滤条件时,如果回调方是Gitlab,Gitlee和Git,“名称”要固定写token,“值”支持自定义(输入password)。配置完毕后依次保存。 +![触发器](../../picture/Admin/trigger.png) + Gitlab具体配置步骤:打开Gitlab,如果Gitlab是新申请的环境,要调整下network配置,允许请求从本地回调。 +![Gitlab配置](../../picture/Admin/Gitlab01.png) + >「Note」 配置webhook,创建一个project,进入project详情,依次点开Setting–Integrations,在URL中输入WEBHOOK参数配置中提前设置的URL地址(http://SmartCMP地址/ops-listener/webhook/gitlab-test) ,在Secret Token中输入"条件过滤" 中配置的token对应的值(自定义的值password),注意,不要勾选Enable SSL verification 去掉,选择 Add Webhook,将实现当有代码提交时会触发流水线的功能。 + + + + + + +## 配置阶段和任务{#配置阶段和任务} + +阶段指根据业务的需要,定义不同的阶段,在每个阶段中定义需要完成的任务。任务指具体执行的活动。支持自定义任务类型、输入输出参数,其中输入输出参数指SmartCMP支持流水线各个任务之间的参数传递,例如将上一个任务新部署虚拟机的SmartCMP地址传给下一个任务进行调用。 ++ 例如,可定义软件打包、部署测试环境等不同的阶段。每个阶段的任务类型包括:Jenkins Job 任务、部署新应用任务、云资源变更任务、脚本执行任务等等。流水线的发布者可以定义每个任务的参数,在后续的任务中进行调用。 ++ 例如,通过一个蓝图部署任务,即可以自动化触发一个已发布的云资源服务,进行云资源的部署;而云资源任务则可以自动化进行云资源变更、运维操作,进行应用软件的升级、更新。 + +设计流水的阶段和任务的具体步骤: 在左侧导航栏点击「集成与发布」-「流水线」,点击创建,在流程页面点击添加按钮,输入阶段名称,点击添加。 点击添加串行任务,在任务的详情页填写:任务类型、名称、描述、通知到用户,填写输入参数,自定义输出参数(任务类型不同,输入输出参数相应变化) + ++ 选择等待任务,在输入参数处填写等待时间(s),例如:在等待15s之后,流水线自动执行脚本 + ++ 选择蓝图部署任务,在输入参数处填写服务(服务目录中发布的服务)和模板 +>「Note」 其中可选择的服务类型来源于服务目录中已发布的服务卡片,可选择的模板来源于,服务申请时保存申请信息的模板,具体步骤:点击左侧导航栏「服务目录」-「选择服务卡片」,进入「请求服务详情页面」,填写申请参数,点击下方「保存」按钮,填写模板名称,保存成功即可形成模板。 + ++ Jenkins任务,配置Jenkins的端点和Job,自定义构建软件包,例如,构建开发环境下master分支的软件包。在输入参数处填写仓库入口(选择在入口处添加的Nexus或Jekins仓库),任务类型,选择是否等待结果,如果不稳定时,标记为成功继续继续还是标记为失败,结束执行。 + + ++ 选择云资源任务,在输入参数处选择已有云资源,云资源类型、操作 +>「Note」 勾选已有云资源,则 可选择的云资源来源于平台已纳管的云资源(,云资源具体查看步骤:点击左侧导航栏「我的部署」-「云资源」,选择云资源类型,可查看已纳管的云资源。)例如:可选择资源类型为云主机,选择已经部署成功的云主机资源,在的操作处选择启动操作类型来源于云主机、服务部署的day2操作包括云主机的启动、停止,刷新服务部署状态、调整磁盘配置、自定义操作等等。不勾选已有云资源,例如:选择云资源类型为云主机,选择具体的云主机,云主机资源来源于此任务之前的部署虚拟机任务 + ++ 选择脚本任务 +>「Note」勾选已有脚本库,选择已经创建完成的脚本库,脚本配置的具体步骤,请参考:(https://cloudchef.github.io/doc/AdminDoc/05服务建模/脚本库.html) ;不勾选已有脚本,自定义脚本,填写相关配置参数:脚本名称、选择脚本支持的语法类型(Python、Ansible、Shell),填入脚本类型和脚本参数。 + +![自定义脚本](../../picture/Admin/自定义脚本.png) + ++ 堡垒机任务 + +通过标准的任务配置简化“SmartCMP与堡垒机对接的操作”,更多堡垒机信息请参考[堡垒机](https://cloudchef.github.io/doc/AdminDoc/12安全审计/#堡垒机),选择操作类型(注册/注销/更新) +注册堡垒机任务:虚拟机创建好后,将虚拟机注册到堡垒机; +注销堡垒机任务:虚拟机删除后,将虚拟机从堡垒机中注销; +更新堡垒机任务:虚拟机变更后,更新堡垒机,例如虚拟机变更了所有者,同步修改堡垒机中虚拟机的注册信息。 + + ++ Veeam备份任务 +通过标准的任务配置简化“SmartCMP与备份管理平台对接的备份操作”更多备份管理平台信息请参考[备份系统](https://cloudchef.github.io/doc/AdminDoc/12安全审计/#备份系统)。 +关联脚本,脚本定义备份操作具体的参数配置,通过选择云主机ID和名称,选择备份操作的目标云主机节点。 + ++ Veeam恢复任务 +通过标准的任务配置简化“SmartCMP与备份管理平台对接的备份操作”更多备份管理平台信息请参考[备份系统](https://cloudchef.github.io/doc/AdminDoc/12安全审计/#备份系统)。 +关联脚本,脚本定义恢复操作具体的参数配置,选择备份点即选择备份数据,以及恢复到当前目标云主机。 + + + +执行设置内填写超时时间(例如:设置超时时间为360s,该任务执行时间超过360s代表任务执行失败)执行选项(选择失败后继续执行表示当前任务失败继续执行下一个任务,或选择失败后结束流程表示当前任务失败结束该流水线流程,流水线执行失败)。 执行方式(选择默认执行,或选择条件执行时需要设置条件执行表达式,例如:您可以输入EL表达式,可参考下图 + +![执行配置](../../picture/Admin/devops02.png) + +## 执行流水线 + +流水线的执行历史 + + +查看流水线的执行历史,通过执行历史可以查看执行状态、执行人、执行时间、每个阶段任务执行的详细信息。 +1. 在左侧导航栏点击「集成与发布」-「执行历史」,可根据筛选条件(项目、状态、起止时间)快速定位流水线。 +2. 点击流水线,可查看流水执行状态(进行中、成功、失败)、执行人信息、开始时间、结束时间、耗时、流水线完整的可视化的流程图。 + + + diff --git "a/AdminDoc/11\351\233\206\346\210\220\344\270\216\345\217\221\345\270\203\347\256\241\347\220\206/index.html" "b/AdminDoc/11\351\233\206\346\210\220\344\270\216\345\217\221\345\270\203\347\256\241\347\220\206/index.html" new file mode 100644 index 0000000..c271826 --- /dev/null +++ "b/AdminDoc/11\351\233\206\346\210\220\344\270\216\345\217\221\345\270\203\347\256\241\347\220\206/index.html" @@ -0,0 +1,1156 @@ + + + + + + + 集成与发布管理 · 发行说明 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
                                                                                +
                                                                                + + + + + + + + +
                                                                                + +
                                                                                + +
                                                                                + + + + + + + + +
                                                                                +
                                                                                + +
                                                                                +
                                                                                + +
                                                                                + +

                                                                                持续发布与部署

                                                                                +

                                                                                SmartCMP应用持续发布和部署功能是通过软件组件、蓝图和全新引进的流水线来构建,具体包括:

                                                                                +
                                                                                  +
                                                                                • 定义应用软件:接入主流的制品仓库对软件组件进行存放管理和版本控制,软件组件关联制品仓库并自定义应用的部署方式和相关参数。
                                                                                • +
                                                                                • 定义应用服务:通过蓝图建模,编排应用架构;通过服务配置,指定资源参数和相关应用的版本。
                                                                                • +
                                                                                • 定义流水线:配置流水线的阶段和多种类型的任务,实现应用的测试、部署、更新、运维、回收的的全生命周期管理。
                                                                                • +
                                                                                +

                                                                                持续发布与部署

                                                                                +

                                                                                1. 制品管理

                                                                                +

                                                                                SmartCMP配置应用软件,通过接入主流的制品仓库对软件组件进行存放管理和版本控制,软件组件关联制品仓库并自定义应用的部署方式和相关参数。 +制品仓库管理是对软件研发过程中生成的产物的管理, 制品一般作为最终交付物完成发布和交付。所有的制品包,依赖组件均能够纳入制品库中统一管理。

                                                                                +
                                                                                  +
                                                                                • 制品仓库在SmartCMP平台中是通过入口来接入的,具体的操作步骤,请参考, +入口

                                                                                  +
                                                                                • +
                                                                                • SmartCMP支持通过软件组件功能实现定义应用软件,将制品仓库与软件组件关联,制品仓库对软件组件进行存放关联和版本控制管理。软件组件与主流制品库关联,具体的操作步骤如下:1. 在软件组件列表点击软件名称,进入组件视图。2. 在「制品」视图,您可以选择 端点、仓库(Nexus)、组、名称、版本。3. 点击保存按钮,即可将组件与包管理平台进行关联。

                                                                                  +
                                                                                • +
                                                                                +
                                                                                  +
                                                                                • 定义应用服务,基于蓝图建模,设计应用架构,实现每一个应用拓扑蓝图的自动化部署。基于服务配置,配置软件组件的节点详细参数,让平台根据策略执行应用管理和自动化部署。 (蓝图设计是平台原有功能,此处不再写具体配置步骤,请您参考,创建蓝图)配置软件组件的节点详细参数,具体的操作步骤如下:1. 在左边导航选择「服务建模」-「服务配置」,出现服务列表,列表中显示服务名称,点击服务名称,进入详细配置视图,点击「组件配置」,选择软件组件。2. 「节点详细设置」视图,配置软件组件节点的组、名称、版本
                                                                                • +
                                                                                +

                                                                                1.1. 入口

                                                                                +

                                                                                入口可以添加需要连接的软件制品仓库,为将要使用的软件组件提供部署时的制品来源,定义了软件包或任务调度的对接。流水线中执行归档或镜像推送操作的程序包,会统一存放一份在制品仓库中,支持在入口处接入Nexus等等制品仓库管理平台。

                                                                                +

                                                                                具体步骤:在左侧导航栏点击「集成与发布」-「入口」,

                                                                                +
                                                                                  +
                                                                                • 点击添加Nexus入口,输入Nexus服务器端点名称、服务器详细的对接地址、用户名、密码
                                                                                • +
                                                                                • 点击添加Jekins入口,输入Jekins服务器名称、地址,类型选择密码使输入用户名、密码;选择令牌时输入用户名和令牌。
                                                                                • +
                                                                                • 点击验证、验证通过,点击提交即可接入软件制品仓库。
                                                                                  +

                                                                                  「Note」 先决条件: 确认Nexus或Jekins服务器可用并已配置。

                                                                                  +
                                                                                  +
                                                                                • +
                                                                                +

                                                                                2. 流水线

                                                                                +

                                                                                SmartCMP的流水线,能够帮助用户建设自动化的、可重复利用、安全合规的应用持续交付和部署。流水线由一系列阶段构成,每个阶段由软件在发布到生产之前必须完成的多个任务和环境组成。目前支持多种阶段和任务的自定义和组装,能够在阶段中添加任意数量的执行任务,通过它们已经可以设计出各种场景适用的开发、部署、运维流水线。

                                                                                +

                                                                                具体步骤:

                                                                                +
                                                                                  +
                                                                                • 在左侧导航栏点击「集成与发布」-「流水线」,点击创建流水线,在基本信息页面输入名称、描述、绑定一个项目、通知到用户,并可添加全局参数,在后期任务中进行调用。例如:添加全局参数,定义master分支的全局信息,供配置调用,具体步骤:在基本信息页面,参数列表处,点击加号按钮,填写名称“Branch”,值“master”,选填描述,更多详情参考下图。
                                                                                • +
                                                                                +

                                                                                创建流水线

                                                                                +
                                                                                  +
                                                                                • 当您创建流水线完成之后, 在左侧导航栏点击「集成与发布」-「流水线」,可二次编辑、删除、执行、禁用、锁定流水线。
                                                                                • +
                                                                                +

                                                                                2.1. 配置触发器

                                                                                +

                                                                                自定义流水线的触发条件,触发器定义何时自动运行流水线,可以手动触发流水线任务,也可以设定策略由触发器自动触发流水线任务。SmartCMP触发器类型包括:Webhook集成(支持Git,Gitlab等代码仓库改变触发)、Jenkins触发、定时触发、手工触发等等。

                                                                                +
                                                                                  +
                                                                                • 例如:添加定时触发器的具体步骤:输入触发器名称填写定时触发器、类型选择CRON、描述(选填),配置CRON的详细参数,选择重复的类型(自定义cron表达式 例如:0 0 0 ?、每周某天的某个时段、每月某天的某个时段、每天的某个时段)点击创建即可配置完成触发器。例如:每天/每周/每月的10点10分执行生成快照的操作。
                                                                                • +
                                                                                • 例如:添加配置一个Webhook类型的触发器(当代码提交到Gitlab代码仓库时触发),当提交代码到Gitlab代码仓库时,仓库状态发生改变,触发流水线。具体步骤:在左侧导航栏点击「集成与发布」-「流水线」,点击创建,在触发器页面点击创建, 输入触发器名称、类型选择WEBHOOK、描述(选填),WEBHOOK详细参数配置如下:

                                                                                  +
                                                                                • +
                                                                                • 以Gitlab为例,在流水线详情中添加一个webhook类型的触发器。在 "来源" 中自定义字段,例如:下图的"gitlab-test","gitlab-test"会自动拼接到"URL",形成完整的网址链接。注意:这个完整的URL( http://SmartCMP地址/ops-listener/webhook/gitlab-test ), 在Gitlab中配置时要用到。添加过滤条件,过滤条件的作用相当于密码验证。当管理员不配置过滤条件时,只要调用这个URL(http://SmartCMP地址/ops-listener/webhook/Gitlab-test ),就会触发流水线操作。添加过滤条件后,相当于给"webhook trigger"添加了密码。当回调URL时,只有密码匹配成功才能触发流水线操作。如果只支持Gitlab,Gitlee和Git,过滤条件只需要设置密码就可以生效,采用键值对的方式是为了兼容更多的场景。所以添加过滤条件时,如果回调方是Gitlab,Gitlee和Git,“名称”要固定写token,“值”支持自定义(输入password)。配置完毕后依次保存。 +触发器 +Gitlab具体配置步骤:打开Gitlab,如果Gitlab是新申请的环境,要调整下network配置,允许请求从本地回调。 +Gitlab配置

                                                                                  +
                                                                                  +

                                                                                  「Note」 配置webhook,创建一个project,进入project详情,依次点开Setting–Integrations,在URL中输入WEBHOOK参数配置中提前设置的URL地址(http://SmartCMP地址/ops-listener/webhook/gitlab-test) ,在Secret Token中输入"条件过滤" 中配置的token对应的值(自定义的值password),注意,不要勾选Enable SSL verification 去掉,选择 Add Webhook,将实现当有代码提交时会触发流水线的功能。

                                                                                  +
                                                                                  +
                                                                                • +
                                                                                +

                                                                                2.2. 配置阶段和任务

                                                                                +

                                                                                阶段指根据业务的需要,定义不同的阶段,在每个阶段中定义需要完成的任务。任务指具体执行的活动。支持自定义任务类型、输入输出参数,其中输入输出参数指SmartCMP支持流水线各个任务之间的参数传递,例如将上一个任务新部署虚拟机的SmartCMP地址传给下一个任务进行调用。

                                                                                +
                                                                                  +
                                                                                • 例如,可定义软件打包、部署测试环境等不同的阶段。每个阶段的任务类型包括:Jenkins Job 任务、部署新应用任务、云资源变更任务、脚本执行任务等等。流水线的发布者可以定义每个任务的参数,在后续的任务中进行调用。
                                                                                • +
                                                                                • 例如,通过一个蓝图部署任务,即可以自动化触发一个已发布的云资源服务,进行云资源的部署;而云资源任务则可以自动化进行云资源变更、运维操作,进行应用软件的升级、更新。
                                                                                • +
                                                                                +

                                                                                设计流水的阶段和任务的具体步骤: 在左侧导航栏点击「集成与发布」-「流水线」,点击创建,在流程页面点击添加按钮,输入阶段名称,点击添加。 点击添加串行任务,在任务的详情页填写:任务类型、名称、描述、通知到用户,填写输入参数,自定义输出参数(任务类型不同,输入输出参数相应变化)

                                                                                +
                                                                                  +
                                                                                • 选择等待任务,在输入参数处填写等待时间(s),例如:在等待15s之后,流水线自动执行脚本

                                                                                  +
                                                                                • +
                                                                                • 选择蓝图部署任务,在输入参数处填写服务(服务目录中发布的服务)和模板

                                                                                  +
                                                                                  +

                                                                                  「Note」 其中可选择的服务类型来源于服务目录中已发布的服务卡片,可选择的模板来源于,服务申请时保存申请信息的模板,具体步骤:点击左侧导航栏「服务目录」-「选择服务卡片」,进入「请求服务详情页面」,填写申请参数,点击下方「保存」按钮,填写模板名称,保存成功即可形成模板。

                                                                                  +
                                                                                  +
                                                                                • +
                                                                                • Jenkins任务,配置Jenkins的端点和Job,自定义构建软件包,例如,构建开发环境下master分支的软件包。在输入参数处填写仓库入口(选择在入口处添加的Nexus或Jekins仓库),任务类型,选择是否等待结果,如果不稳定时,标记为成功继续继续还是标记为失败,结束执行。

                                                                                  +
                                                                                • +
                                                                                +
                                                                                  +
                                                                                • 选择云资源任务,在输入参数处选择已有云资源,云资源类型、操作

                                                                                  +
                                                                                  +

                                                                                  「Note」 勾选已有云资源,则 可选择的云资源来源于平台已纳管的云资源(,云资源具体查看步骤:点击左侧导航栏「我的部署」-「云资源」,选择云资源类型,可查看已纳管的云资源。)例如:可选择资源类型为云主机,选择已经部署成功的云主机资源,在的操作处选择启动操作类型来源于云主机、服务部署的day2操作包括云主机的启动、停止,刷新服务部署状态、调整磁盘配置、自定义操作等等。不勾选已有云资源,例如:选择云资源类型为云主机,选择具体的云主机,云主机资源来源于此任务之前的部署虚拟机任务

                                                                                  +
                                                                                  +
                                                                                • +
                                                                                • 选择脚本任务

                                                                                  +
                                                                                  +

                                                                                  「Note」勾选已有脚本库,选择已经创建完成的脚本库,脚本配置的具体步骤,请参考:(https://cloudchef.github.io/doc/AdminDoc/05服务建模/脚本库.html) ;不勾选已有脚本,自定义脚本,填写相关配置参数:脚本名称、选择脚本支持的语法类型(Python、Ansible、Shell),填入脚本类型和脚本参数。

                                                                                  +
                                                                                  +
                                                                                • +
                                                                                +

                                                                                自定义脚本

                                                                                +
                                                                                  +
                                                                                • 堡垒机任务
                                                                                • +
                                                                                +

                                                                                通过标准的任务配置简化“SmartCMP与堡垒机对接的操作”,更多堡垒机信息请参考堡垒机,选择操作类型(注册/注销/更新) +注册堡垒机任务:虚拟机创建好后,将虚拟机注册到堡垒机; +注销堡垒机任务:虚拟机删除后,将虚拟机从堡垒机中注销; +更新堡垒机任务:虚拟机变更后,更新堡垒机,例如虚拟机变更了所有者,同步修改堡垒机中虚拟机的注册信息。

                                                                                +
                                                                                  +
                                                                                • Veeam备份任务 +通过标准的任务配置简化“SmartCMP与备份管理平台对接的备份操作”更多备份管理平台信息请参考备份系统。 +关联脚本,脚本定义备份操作具体的参数配置,通过选择云主机ID和名称,选择备份操作的目标云主机节点。

                                                                                  +
                                                                                • +
                                                                                • Veeam恢复任务 +通过标准的任务配置简化“SmartCMP与备份管理平台对接的备份操作”更多备份管理平台信息请参考备份系统。 +关联脚本,脚本定义恢复操作具体的参数配置,选择备份点即选择备份数据,以及恢复到当前目标云主机。

                                                                                  +
                                                                                • +
                                                                                +

                                                                                执行设置内填写超时时间(例如:设置超时时间为360s,该任务执行时间超过360s代表任务执行失败)执行选项(选择失败后继续执行表示当前任务失败继续执行下一个任务,或选择失败后结束流程表示当前任务失败结束该流水线流程,流水线执行失败)。 执行方式(选择默认执行,或选择条件执行时需要设置条件执行表达式,例如:您可以输入EL表达式,可参考下图

                                                                                +

                                                                                执行配置

                                                                                +

                                                                                2.3. 执行流水线

                                                                                +

                                                                                流水线的执行历史

                                                                                +

                                                                                查看流水线的执行历史,通过执行历史可以查看执行状态、执行人、执行时间、每个阶段任务执行的详细信息。

                                                                                +
                                                                                  +
                                                                                1. 在左侧导航栏点击「集成与发布」-「执行历史」,可根据筛选条件(项目、状态、起止时间)快速定位流水线。
                                                                                2. +
                                                                                3. 点击流水线,可查看流水执行状态(进行中、成功、失败)、执行人信息、开始时间、结束时间、耗时、流水线完整的可视化的流程图。
                                                                                4. +
                                                                                + + +
                                                                                + +
                                                                                +
                                                                                +
                                                                                + +

                                                                                results matching ""

                                                                                +
                                                                                  + +
                                                                                  +
                                                                                  + +

                                                                                  No results matching ""

                                                                                  + +
                                                                                  +
                                                                                  +
                                                                                  + +
                                                                                  +
                                                                                  + +
                                                                                  + + + + + + + + + + + + + + +
                                                                                  + + +
                                                                                  + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git "a/AdminDoc/12\345\256\211\345\205\250\345\256\241\350\256\241/README.md" "b/AdminDoc/12\345\256\211\345\205\250\345\256\241\350\256\241/README.md" new file mode 100644 index 0000000..a49b739 --- /dev/null +++ "b/AdminDoc/12\345\256\211\345\205\250\345\256\241\350\256\241/README.md" @@ -0,0 +1,50 @@ + + + + +**备份与安全** + +# 堡垒机{#堡垒机} + +SmartCMP支持通过堡垒机访问虚拟机,通过统一的Http请求对各种堡垒机进行调度。 + +核心使用场景: +权限管理:整合堡垒机和平台的访问控制(平台和堡垒机做权限系统对接,设置用户权限,设定用户是否可以通过SSH或RDP连接虚拟机。 +用户管理:所有用户访问虚拟机,都需要经过堡垒机 +运维操作:虚拟机创建好后,将虚拟机注册到堡垒机;虚拟机删除后,将虚拟机从堡垒机中注销;虚拟机变更后,更新堡垒机,例如虚拟机变更了所有者,同步修改堡垒机中虚拟机的注册信息。 + +具体配置步骤: ++ 堡垒机入口接入GuacaMole(即Apache Guacamole)堡垒机的具体操作步骤:点击左侧导航栏「安全审计」-「堡垒机」点击添加,填入堡垒机信息,名称(虚拟机名称)、描述、Guacd地址(即堡垒机的URL链接)、Guacd端口(即堡垒机的访问端口),SmartCMP通过Cloudchef-Integration来验证登陆信息是否正确。 ++ 堡垒机与资源池进行绑定:点击左侧导航栏「基础设施」-「资源池管理」云平台资源信息标签页,指定已经接入的其中一个堡垒机。例如:在添加vSphere资源池时,绑定堡垒机Guacd,使用vSphere资源池部署的虚拟机将自动注册到堡垒机,使用vSphere资源池部署的虚拟机卸除时自动从堡垒机中取消注册。 ++ 堡垒机的使用,vSphere资源池与堡垒机进行绑定之后,使用vSphere资源池部署成功的云主机,点击左侧导航栏「我的部署」-「云主机」-「概况」标签页,选择远程协议类型,包括:基于云平台、RDP或VNC(选择基于RDP或VNC,需要选择远程协议端口),选择完成后,点击「远程终端」操作后能够直接通过 “RDP或VNC” 的方式,按照云主机的配置来打开云平台上的远程终端,可以通过远程终端修改协议信息的相关参数,例如,修改虚拟机的用户名和密码。 + + +# 备份管理平台{#备份管理平台} + +SmartCMP支持基于Veeam实现快速、可靠地备份vSphere云平台的所有云主机,配置备份管理平台,将资源池和备份管理平台进行绑定,则在这个资源池部署的云主机都可以通过Veeam来进行管理,支持恢复单个文件、整个虚拟机、应用程序等等,确保服务的安全性和高可用性。 + +核心使用场景: + +备份:是一个即时发生的备份(即手工备份), 点击这个操作, 触发一次备份操作, 备份的参数可能包含备份文件的名字即可, 参数需要配置表单。支持在操作历史中查看备份操作的执行过程和结果(备份成功或是失败)。 +例如:将当前整个云主机进行备份,类似于打快照 + + +恢复:即支持选择备份点,在当前的云主机中进行恢复(备份点是一个列表, 允许用户进行选择备份文件的名称, 时间信息,更多额外的参数需要配置表单,点击备份点之后, 触发一次恢复的过程把备份点的数据恢复到当前云主机)能够在操作历史中查看恢复操作的执行过程和结果(恢复成功或是失败)。 +例如:实施备份的云主机副本恢复到当前云端虚拟机 + +具体配置步骤: + ++ 备份管理入口配置:点击左侧导航栏「安全审计」-「备份管理平台」点击添加,填入Veeam信息,名称(Veeam系统平台的名称)、描述、Veeam地址(即Veeam平台的URL链接)、用户名和密码(即Veeam平台的登录用户名和密码) + ++ 与资源池进行绑定:点击左侧导航栏「基础设施」-「资源池管理」云平台资源信息标签页,指定已经接入的备份管理平台。例如:在添加vSphere资源池时,绑定备份管理平台Veeam,使用vSphere资源池部署的虚拟机将自动关联到Veeam,通过备份管理平台来管理云主机。 + ++ 备份恢复运维操作,vSphere资源池与备份管理平台Veeam进行绑定之后,使用vSphere资源池部署成功的云主机,点击左侧导航栏「我的部署」-「云主机」,支持进行基本的「备份」/「恢复」操作。 + + +# 操作审计 + + +支持对用户访问、操作信息的记录,租户管理员和sysadmin默认有该权限,若需要为其他角色增加该权限, +请新增角色并添加该权限,详见[角色](https://cloudchef.github.io/doc/AdminDoc/04组织架构管理/角色.html) + +点击左侧导航栏的「系统管理」-「操作审计」,可看到该租户下的操作记录。显示操作的者、操作对象、操作名称、操作参数、状态以及操作时间。可通过「高级搜索」进行快速筛选定位,支持操作者、状态、操作对象、起止时间的筛选,也可以使用普通搜索功能。 diff --git "a/AdminDoc/12\345\256\211\345\205\250\345\256\241\350\256\241/index.html" "b/AdminDoc/12\345\256\211\345\205\250\345\256\241\350\256\241/index.html" new file mode 100644 index 0000000..030c63e --- /dev/null +++ "b/AdminDoc/12\345\256\211\345\205\250\345\256\241\350\256\241/index.html" @@ -0,0 +1,1075 @@ + + + + + + + 备份与安全 · 发行说明 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
                                                                                  +
                                                                                  + + + + + + + + +
                                                                                  + +
                                                                                  + +
                                                                                  + + + + + + + + +
                                                                                  +
                                                                                  + +
                                                                                  +
                                                                                  + +
                                                                                  + +

                                                                                  备份与安全

                                                                                  +

                                                                                  1. 堡垒机

                                                                                  +

                                                                                  SmartCMP支持通过堡垒机访问虚拟机,通过统一的Http请求对各种堡垒机进行调度。

                                                                                  +

                                                                                  核心使用场景: +权限管理:整合堡垒机和平台的访问控制(平台和堡垒机做权限系统对接,设置用户权限,设定用户是否可以通过SSH或RDP连接虚拟机。 +用户管理:所有用户访问虚拟机,都需要经过堡垒机 +运维操作:虚拟机创建好后,将虚拟机注册到堡垒机;虚拟机删除后,将虚拟机从堡垒机中注销;虚拟机变更后,更新堡垒机,例如虚拟机变更了所有者,同步修改堡垒机中虚拟机的注册信息。

                                                                                  +

                                                                                  具体配置步骤:

                                                                                  +
                                                                                    +
                                                                                  • 堡垒机入口接入GuacaMole(即Apache Guacamole)堡垒机的具体操作步骤:点击左侧导航栏「安全审计」-「堡垒机」点击添加,填入堡垒机信息,名称(虚拟机名称)、描述、Guacd地址(即堡垒机的URL链接)、Guacd端口(即堡垒机的访问端口),SmartCMP通过Cloudchef-Integration来验证登陆信息是否正确。
                                                                                  • +
                                                                                  • 堡垒机与资源池进行绑定:点击左侧导航栏「基础设施」-「资源池管理」云平台资源信息标签页,指定已经接入的其中一个堡垒机。例如:在添加vSphere资源池时,绑定堡垒机Guacd,使用vSphere资源池部署的虚拟机将自动注册到堡垒机,使用vSphere资源池部署的虚拟机卸除时自动从堡垒机中取消注册。
                                                                                  • +
                                                                                  • 堡垒机的使用,vSphere资源池与堡垒机进行绑定之后,使用vSphere资源池部署成功的云主机,点击左侧导航栏「我的部署」-「云主机」-「概况」标签页,选择远程协议类型,包括:基于云平台、RDP或VNC(选择基于RDP或VNC,需要选择远程协议端口),选择完成后,点击「远程终端」操作后能够直接通过 “RDP或VNC” 的方式,按照云主机的配置来打开云平台上的远程终端,可以通过远程终端修改协议信息的相关参数,例如,修改虚拟机的用户名和密码。
                                                                                  • +
                                                                                  +

                                                                                  2. 备份管理平台

                                                                                  +

                                                                                  SmartCMP支持基于Veeam实现快速、可靠地备份vSphere云平台的所有云主机,配置备份管理平台,将资源池和备份管理平台进行绑定,则在这个资源池部署的云主机都可以通过Veeam来进行管理,支持恢复单个文件、整个虚拟机、应用程序等等,确保服务的安全性和高可用性。

                                                                                  +

                                                                                  核心使用场景:

                                                                                  +

                                                                                  备份:是一个即时发生的备份(即手工备份), 点击这个操作, 触发一次备份操作, 备份的参数可能包含备份文件的名字即可, 参数需要配置表单。支持在操作历史中查看备份操作的执行过程和结果(备份成功或是失败)。 +例如:将当前整个云主机进行备份,类似于打快照

                                                                                  +

                                                                                  恢复:即支持选择备份点,在当前的云主机中进行恢复(备份点是一个列表, 允许用户进行选择备份文件的名称, 时间信息,更多额外的参数需要配置表单,点击备份点之后, 触发一次恢复的过程把备份点的数据恢复到当前云主机)能够在操作历史中查看恢复操作的执行过程和结果(恢复成功或是失败)。 +例如:实施备份的云主机副本恢复到当前云端虚拟机

                                                                                  +

                                                                                  具体配置步骤:

                                                                                  +
                                                                                    +
                                                                                  • 备份管理入口配置:点击左侧导航栏「安全审计」-「备份管理平台」点击添加,填入Veeam信息,名称(Veeam系统平台的名称)、描述、Veeam地址(即Veeam平台的URL链接)、用户名和密码(即Veeam平台的登录用户名和密码)

                                                                                    +
                                                                                  • +
                                                                                  • 与资源池进行绑定:点击左侧导航栏「基础设施」-「资源池管理」云平台资源信息标签页,指定已经接入的备份管理平台。例如:在添加vSphere资源池时,绑定备份管理平台Veeam,使用vSphere资源池部署的虚拟机将自动关联到Veeam,通过备份管理平台来管理云主机。

                                                                                    +
                                                                                  • +
                                                                                  • 备份恢复运维操作,vSphere资源池与备份管理平台Veeam进行绑定之后,使用vSphere资源池部署成功的云主机,点击左侧导航栏「我的部署」-「云主机」,支持进行基本的「备份」/「恢复」操作。

                                                                                    +
                                                                                  • +
                                                                                  +

                                                                                  3. 操作审计

                                                                                  +

                                                                                  支持对用户访问、操作信息的记录,租户管理员和sysadmin默认有该权限,若需要为其他角色增加该权限, +请新增角色并添加该权限,详见角色

                                                                                  +

                                                                                  点击左侧导航栏的「系统管理」-「操作审计」,可看到该租户下的操作记录。显示操作的者、操作对象、操作名称、操作参数、状态以及操作时间。可通过「高级搜索」进行快速筛选定位,支持操作者、状态、操作对象、起止时间的筛选,也可以使用普通搜索功能。

                                                                                  + + +
                                                                                  + +
                                                                                  +
                                                                                  +
                                                                                  + +

                                                                                  results matching ""

                                                                                  +
                                                                                    + +
                                                                                    +
                                                                                    + +

                                                                                    No results matching ""

                                                                                    + +
                                                                                    +
                                                                                    +
                                                                                    + +
                                                                                    +
                                                                                    + +
                                                                                    + + + + + + + + + + + + + + +
                                                                                    + + +
                                                                                    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git "a/PDF/5.1.0\345\237\272\347\241\200\346\246\202\345\277\265.pdf" "b/PDF/5.1.0\345\237\272\347\241\200\346\246\202\345\277\265.pdf" new file mode 100644 index 0000000000000000000000000000000000000000..2fa62ea5d9378e6363d31b5ad2e3e5d61d415a36 GIT binary patch literal 1040213 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%0Did3yTg|QHelK_5qpQI-6gbxGb)2mv**? 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%0D~h#}{3}XqVs|x*j~Jpx)GPu7_^l;K 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