{"id":4616,"date":"2022-03-27T14:14:50","date_gmt":"2022-03-27T06:14:50","guid":{"rendered":"https:\/\/egonlin.com\/?p=4616"},"modified":"2022-03-27T14:14:50","modified_gmt":"2022-03-27T06:14:50","slug":"%e7%ac%ac%e4%b8%80%e7%ab%a0%ef%bc%9a%e4%b8%ba%e4%bb%80%e4%b9%88%e8%a6%81%e5%ad%a6cmdb","status":"publish","type":"post","link":"https:\/\/egonlin.com\/?p=4616","title":{"rendered":"\u7b2c\u4e00\u7ae0\uff1a\u4e3a\u4ec0\u4e48\u8981\u5b66CMDB"},"content":{"rendered":"<h4>\u4e3a\u5565\u8981\u505aCMDB<\/h4>\n<blockquote>\n<p>\u8fd0\u7ef4\u81ea\u52a8\u5316\u6700\u91cd\u8981\u7684\u5c31\u662f\u6807\u51c6\u5316\u4e00\u5207<\/p>\n<\/blockquote>\n<ul>\n<li>OS\u7684\u9009\u62e9\u7edf\u4e00\u5316\uff0c\u540c\u4e00\u4e2a\u9879\u76ee\u4f7f\u7528\u540c\u6837\u7684OS\u7cfb\u7edf\u90e8\u7f72\u5176\u6240\u9700\u8981\u7684\u5404\u7c7b\u8f6f\u4ef6<\/li>\n<li>\u8f6f\u4ef6\u5b89\u88c5\u6807\u51c6\u5316\uff0c\u4f8b\u5982JAVA\u865a\u62df\u673a\uff0cphp\uff0cnginx\uff0cmysql\u7b49\u5404\u7c7b\u5e94\u7528\u9700\u8981\u7684\u8f6f\u4ef6\u7248\u672c\uff0c\u5b89\u88c5- &#8211; \u76ee\u5f55\uff0c\u6570\u636e\u5b58\u653e\u76ee\u5f55\uff0c\u65e5\u5fd7\u5b58\u653e\u76ee\u5f55\u7b49<\/li>\n<li>\u5e94\u7528\u5305\u76ee\u5f55\u7edf\u4e00\u6807\u51c6\u5316\uff0c\u53ca\u5e94\u7528\u547d\u540d\u6807\u51c6\u5316<\/li>\n<li>\u542f\u52a8\u811a\u672c\u7edf\u4e00\u76ee\u5f55\u548c\u540d\u5b57\uff0c\u9700\u8981\u53d8\u5316\u7684\u90e8\u5206\u901a\u8fc7\u53c2\u6570\u4f20\u9012<\/li>\n<li>\u914d\u7f6e\u6587\u4ef6\u6807\u51c6\u5316\uff0c\u9700\u8981\u53d8\u5316\u7684\u90e8\u5206\u901a\u8fc7\u53c2\u6570\u4f20\u9012<\/li>\n<li>\u65e5\u5fd7\u8f93\u51fa\uff0c\u65e5\u5fd7\u76ee\u5f55\uff0c\u65e5\u5fd7\u540d\u5b57\u6807\u51c6\u5316<\/li>\n<li>\u5e94\u7528\u751f\u6210\u7684\u6570\u636e\u8981\u5b9e\u73b0\u7edf\u4e00\u7684\u76ee\u5f55\u5b58\u653e<\/li>\n<li>\u4e3b\u673a\/\u865a\u62df\u673a\u547d\u540d\u6807\u51c6\u5316\uff0c\u865a\u62df\u673a\u7ba1\u7406\u4f7f\u7528\u6807\u51c6\u5316\u6a21\u677f<\/li>\n<li>\u4f7f\u7528docker\u6bd4\u8f83\u5bb9\u6613\u5b9e\u73b0\u8f6f\u4ef6\u8fd0\u884c\u73af\u5883\u7684\u6807\u51c6\u5316<\/li>\n<\/ul>\n<h4>CMDB\u5b9e\u73b0\u7684\u56db\u79cd\u65b9\u5f0f<\/h4>\n<ul>\n<li>Agent\u5b9e\u73b0\u65b9\u5f0f<\/li>\n<\/ul>\n<p><div class='fancybox-wrapper lazyload-container-unload' data-fancybox='post-images' href='https:\/\/s2.ax1x.com\/2019\/10\/21\/KlJbZQ.png'><img class=\"lazyload lazyload-style-2\" src=\"data:image\/svg+xml;base64,PCEtLUFyZ29uTG9hZGluZy0tPgo8c3ZnIHdpZHRoPSIxIiBoZWlnaHQ9IjEiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgc3Ryb2tlPSIjZmZmZmZmMDAiPjxnPjwvZz4KPC9zdmc+\"  data-original=\"https:\/\/s2.ax1x.com\/2019\/10\/21\/KlJbZQ.png\" src=\"data:image\/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAABCAYAAAAfFcSJAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8YQUAAAAJcEhZcwAADsQAAA7EAZUrDhsAAAANSURBVBhXYzh8+PB\/AAffA0nNPuCLAAAAAElFTkSuQmCC\" alt=\"KlJbZQ.png\" \/><\/div><\/p>\n<blockquote>\n<p>\u5176\u672c\u8d28\u4e0a\u5c31\u662f\u5728\u5404\u4e2a\u670d\u52a1\u5668\u4e0a\u6267\u884csubprocess.getoutput()\u547d\u4ee4\uff0c\u7136\u540e\u5c06\u6bcf\u53f0\u673a\u5668\u4e0a\u6267\u884c\u7684\u7ed3\u679c\uff0c\u8fd4\u56de\u7ed9\u4e3b\u673aAPI\uff0c\u7136\u540e\u4e3b\u673aAPI\u6536\u5230\u8fd9\u4e9b\u6570\u636e\u4e4b\u540e\uff0c\u653e\u5165\u5230\u6570\u636e\u5e93\u4e2d\uff0c\u6700\u7ec8\u901a\u8fc7web\u754c\u9762\u5c55\u73b0\u7ed9\u7528\u6237<\/p>\n<\/blockquote>\n<ul>\n<li>ssh\u5b9e\u73b0\u65b9\u5f0f \uff08\u57fa\u4e8eParamiko\u6a21\u5757\uff09<\/li>\n<\/ul>\n<blockquote>\n<p>\u4e2d\u63a7\u673a\u901a\u8fc7Paramiko\uff08py\u6a21\u5757\uff09\u767b\u5f55\u5230\u5404\u4e2a\u670d\u52a1\u5668\u4e0a\uff0c\u7136\u540e\u6267\u884c\u547d\u4ee4\u7684\u65b9\u5f0f\u53bb\u83b7\u53d6\u5404\u4e2a\u670d\u52a1\u5668\u4e0a\u7684\u4fe1\u606f<\/p>\n<\/blockquote>\n<p><div class='fancybox-wrapper lazyload-container-unload' data-fancybox='post-images' href='https:\/\/s2.ax1x.com\/2019\/10\/21\/KlJqaj.png'><img class=\"lazyload lazyload-style-2\" src=\"data:image\/svg+xml;base64,PCEtLUFyZ29uTG9hZGluZy0tPgo8c3ZnIHdpZHRoPSIxIiBoZWlnaHQ9IjEiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgc3Ryb2tlPSIjZmZmZmZmMDAiPjxnPjwvZz4KPC9zdmc+\"  data-original=\"https:\/\/s2.ax1x.com\/2019\/10\/21\/KlJqaj.png\" src=\"data:image\/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAABCAYAAAAfFcSJAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8YQUAAAAJcEhZcwAADsQAAA7EAZUrDhsAAAANSURBVBhXYzh8+PB\/AAffA0nNPuCLAAAAAElFTkSuQmCC\" alt=\"KlJqaj.png\" \/><\/div><\/p>\n<pre><code class=\"language-python\">import paramiko\n\n# \u521b\u5efaSSH\u5bf9\u8c61\nssh = paramiko.SSHClient()\n# \u5141\u8bb8\u8fde\u63a5\u4e0d\u5728know_hosts\u6587\u4ef6\u4e2d\u7684\u4e3b\u673a\nssh.set_missing_host_key_policy(paramiko.AutoAddPolicy())\n# \u8fde\u63a5\u670d\u52a1\u5668\nssh.connect(hostname=&#039;c1.salt.com&#039;, port=22, username=&#039;root&#039;, password=&#039;123&#039;)\n\n# \u6267\u884c\u547d\u4ee4\nstdin, stdout, stderr = ssh.exec_command(&#039;df&#039;)\n# \u83b7\u53d6\u547d\u4ee4\u7ed3\u679c\nresult = stdout.read()\n\n# \u5173\u95ed\u8fde\u63a5\nssh.close()<\/code><\/pre>\n<ul>\n<li>saltstack\u65b9\u5f0f<\/li>\n<\/ul>\n<blockquote>\n<p>\u6b64\u65b9\u6848\u672c\u8d28\u4e0a\u548c\u7b2c\u4e8c\u79cd\u65b9\u6848\u5927\u81f4\u662f\u5dee\u4e0d\u591a\u7684\u6d41\u7a0b\uff0c\u4e2d\u63a7\u673a\u53d1\u9001\u547d\u4ee4\u7ed9\u670d\u52a1\u5668\u6267\u884c\u3002\u670d\u52a1\u5668\u5c06\u7ed3\u679c\u653e\u5165\u53e6\u4e00\u4e2a\u961f\u5217\u4e2d\uff0c\u4e2d\u63a7\u673a\u83b7\u53d6\u5c06\u670d\u52a1\u4fe1\u606f\u53d1\u9001\u5230API\u8fdb\u800c\u5f55\u5165\u6570\u636e\u5e93\u3002<\/p>\n<\/blockquote>\n<p><div class='fancybox-wrapper lazyload-container-unload' data-fancybox='post-images' href='https:\/\/s2.ax1x.com\/2019\/10\/21\/KlJXin.png'><img class=\"lazyload lazyload-style-2\" src=\"data:image\/svg+xml;base64,PCEtLUFyZ29uTG9hZGluZy0tPgo8c3ZnIHdpZHRoPSIxIiBoZWlnaHQ9IjEiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgc3Ryb2tlPSIjZmZmZmZmMDAiPjxnPjwvZz4KPC9zdmc+\"  data-original=\"https:\/\/s2.ax1x.com\/2019\/10\/21\/KlJXin.png\" src=\"data:image\/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAABCAYAAAAfFcSJAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8YQUAAAAJcEhZcwAADsQAAA7EAZUrDhsAAAANSURBVBhXYzh8+PB\/AAffA0nNPuCLAAAAAElFTkSuQmCC\" alt=\"KlJXin.png\" \/><\/div><\/p>\n<p>salstack\u7684\u5b89\u88c5\u548c\u914d\u7f6e<\/p>\n<p>1.\u5b89\u88c5\u548c\u914d\u7f6e<\/p>\n<pre><code class=\"language-python\">master\u7aef\uff1a\n1. \u5b89\u88c5salt-master\n    yum install salt-master\n2. \u4fee\u6539\u914d\u7f6e\u6587\u4ef6\uff1a\/etc\/salt\/master\n    interface: 0.0.0.0    # \u8868\u793aMaster\u7684IP \n3. \u542f\u52a8\n    service salt-master start\n\nslave\u7aef\uff1a\n1. \u5b89\u88c5salt-minion\n    yum install salt-minion\n2. \u4fee\u6539\u914d\u7f6e\u6587\u4ef6 \/etc\/salt\/minion\n    master: 10.211.55.4           # master\u7684\u5730\u5740\n    \u6216\n    master:\n        - 10.211.55.4\n        - 10.211.55.5\n    random_master: True\n    id: c2.salt.com                    # \u5ba2\u6237\u7aef\u5728salt-master\u4e2d\u663e\u793a\u7684\u552f\u4e00ID\n3. \u542f\u52a8\n    service salt-minion start<\/code><\/pre>\n<pre><code class=\"language-python\">2.\u6388\u6743\n&quot;&quot;&quot;\nsalt-key -L                    # \u67e5\u770b\u5df2\u6388\u6743\u548c\u672a\u6388\u6743\u7684slave\nsalt-key -a  salve_id      # \u63a5\u53d7\u6307\u5b9aid\u7684salve\nsalt-key -r  salve_id      # \u62d2\u7edd\u6307\u5b9aid\u7684salve\nsalt-key -d  salve_id      # \u5220\u9664\u6307\u5b9aid\u7684salve\n&quot;&quot;&quot;\n3.\u6267\u884c\u547d\u4ee4\n\n\u5728master\u670d\u52a1\u5668\u4e0a\u5bf9salve\u8fdb\u884c\u8fdc\u7a0b\u64cd\u4f5c\n\nsalt &#039;c2.salt.com&#039; cmd.run  &#039;ifconfig&#039;<\/code><\/pre>\n<p>\u57fa\u4e8eAPI\u7684\u65b9\u5f0f<\/p>\n<pre><code class=\"language-python\">import salt.client\nlocal = salt.client.LocalClient()\nresult = local.cmd(&#039;c2.salt.com&#039;, &#039;cmd.run&#039;, [&#039;ifconfig&#039;])<\/code><\/pre>\n","protected":false},"excerpt":{"rendered":"<p>\u4e3a\u5565\u8981\u505aCMDB \u8fd0\u7ef4\u81ea\u52a8\u5316\u6700\u91cd\u8981\u7684\u5c31\u662f\u6807\u51c6\u5316\u4e00\u5207 OS\u7684\u9009\u62e9\u7edf\u4e00\u5316\uff0c\u540c\u4e00\u4e2a\u9879\u76ee\u4f7f\u7528\u540c\u6837\u7684OS\u7cfb\u7edf\u90e8\u7f72\u5176\u6240\u9700\u8981 [&hellip;]<\/p>\n","protected":false},"author":3,"featured_media":0,"comment_status":"closed","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":[],"categories":[354,351],"tags":[],"_links":{"self":[{"href":"https:\/\/egonlin.com\/index.php?rest_route=\/wp\/v2\/posts\/4616"}],"collection":[{"href":"https:\/\/egonlin.com\/index.php?rest_route=\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/egonlin.com\/index.php?rest_route=\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/egonlin.com\/index.php?rest_route=\/wp\/v2\/users\/3"}],"replies":[{"embeddable":true,"href":"https:\/\/egonlin.com\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=4616"}],"version-history":[{"count":0,"href":"https:\/\/egonlin.com\/index.php?rest_route=\/wp\/v2\/posts\/4616\/revisions"}],"wp:attachment":[{"href":"https:\/\/egonlin.com\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=4616"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/egonlin.com\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=4616"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/egonlin.com\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=4616"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}