{"id":75558,"date":"2026-02-12T15:11:15","date_gmt":"2026-02-12T07:11:15","guid":{"rendered":"https:\/\/www.wsisp.com\/helps\/75558.html"},"modified":"2026-02-12T15:11:15","modified_gmt":"2026-02-12T07:11:15","slug":"sre-ai-agent-%e5%bc%80%e5%8f%91%e5%a4%8d%e7%9b%98%e5%8f%8a%e5%b0%8f%e7%99%bd%e5%90%91%e6%95%99%e7%a8%8b-%e4%b8%80-%e9%a1%b9%e7%9b%ae%e7%8e%af%e5%a2%83%e6%90%ad%e5%bb%ba","status":"publish","type":"post","link":"https:\/\/www.wsisp.com\/helps\/75558.html","title":{"rendered":"SRE AI Agent \u5f00\u53d1\u590d\u76d8\u53ca\u5c0f\u767d\u5411\u6559\u7a0b (\u4e00) \u9879\u76ee\u73af\u5883\u642d\u5efa"},"content":{"rendered":"<h2 id=\"%E5%85%88%E5%AF%BC%EF%BC%9A\">\u5148\u5bfc&#xff1a;<\/h2>\n<p id=\"main-toc\">\u76ee\u5f55<\/p>\n<p id=\"%E5%85%88%E5%AF%BC%EF%BC%9A-toc\" style=\"margin-left:0px\">\u5148\u5bfc&#xff1a;<\/p>\n<p id=\"%E6%9C%AC%E6%9C%9F%E7%9B%AE%E6%A0%87%EF%BC%9A-toc\" style=\"margin-left:40px\">\u672c\u671f\u76ee\u6807&#xff1a;<\/p>\n<p id=\"%E6%8F%90%E5%89%8D%E5%87%86%E5%A4%87%EF%BC%9A-toc\" style=\"margin-left:40px\">\u63d0\u524d\u51c6\u5907&#xff1a;<\/p>\n<p id=\"%E9%AB%98%E4%BA%AE%E6%8F%90%E7%A4%BA%EF%BC%9A-toc\" style=\"margin-left:40px\">\u9ad8\u4eae\u63d0\u793a&#xff1a;<\/p>\n<p id=\"%E4%B8%80%E3%80%81%E9%85%8D%E7%BD%AE%E8%99%9A%E6%8B%9F%E6%9C%BA-toc\" style=\"margin-left:0px\">\u4e00\u3001\u914d\u7f6e\u865a\u62df\u673a<\/p>\n<p id=\"%C2%A0%20%C2%A0%20%C2%A0%20%C2%A0%201.%20%E5%AE%89%E8%A3%85%E8%99%9A%E6%8B%9F%E6%9C%BA-toc\" style=\"margin-left:40px\">\u00a0 \u00a0 \u00a0 \u00a0 1. \u5b89\u88c5\u865a\u62df\u673a<\/p>\n<p id=\"%C2%A0%20%C2%A0%20%C2%A0%20%C2%A0%202.%20%E9%85%8D%E7%BD%AE%E7%BD%91%E7%BB%9C%E5%8F%8A%E8%99%9A%E6%8B%9F%E6%9C%BA%E5%8F%82%E6%95%B0-toc\" style=\"margin-left:40px\">\u00a0 \u00a0 \u00a0 \u00a0 2. \u914d\u7f6e\u7f51\u7edc\u53ca\u865a\u62df\u673a\u53c2\u6570<\/p>\n<p id=\"%E2%80%8B%E7%BC%96%E8%BE%91%E4%BA%8C%E3%80%81Ansible%E7%8E%AF%E5%A2%83%E7%9A%84%E9%83%A8%E7%BD%B2%E5%8F%8A%E9%9B%86%E7%BE%A4SSH%E5%85%8D%E5%AF%86-toc\" style=\"margin-left:0px\">\u200b\u7f16\u8f91\u4e8c\u3001Ansible\u73af\u5883\u7684\u90e8\u7f72\u53ca\u96c6\u7fa4SSH\u514d\u5bc6<\/p>\n<p id=\"1.%20%E7%BD%91%E7%BB%9C%E6%B5%8B%E8%AF%95-toc\" style=\"margin-left:40px\">1. \u7f51\u7edc\u6d4b\u8bd5<\/p>\n<p id=\"2.%20%E5%AE%89%E8%A3%85%E5%9F%BA%E7%A1%80%E5%8C%85%E5%92%8C%E9%85%8D%E7%BD%AESSH%E4%BA%92%E4%BF%A1-toc\" style=\"margin-left:40px\">2. \u5b89\u88c5\u57fa\u7840\u5305\u548c\u914d\u7f6eSSH\u4e92\u4fe1<\/p>\n<p id=\"%E4%B8%89%E3%80%81%C2%A0%E5%88%9B%E5%BB%BAAnsible%E9%A1%B9%E7%9B%AE%E6%96%87%E4%BB%B6-toc\" style=\"margin-left:0px\">\u4e09\u3001\u00a0\u521b\u5efaAnsible\u9879\u76ee\u6587\u4ef6<\/p>\n<p id=\"%C2%A0%20%C2%A0%20%C2%A0%20%C2%A0%201.%20%E5%88%9B%E5%BB%BAAnsible%20Playbook%E7%9B%AE%E5%BD%95%E5%8F%8A%E5%9F%BA%E6%9C%AC%E6%96%87%E4%BB%B6%EF%BC%9A-toc\" style=\"margin-left:80px\">\u00a0 \u00a0 \u00a0 \u00a0 1. \u521b\u5efaAnsible Playbook\u76ee\u5f55\u53ca\u57fa\u672c\u6587\u4ef6&#xff1a;<\/p>\n<p id=\"%C2%A0%202.%20%E5%88%9B%E5%BB%BAAnsible%E8%A7%92%E8%89%B2%E7%9B%B8%E5%85%B3%E6%96%87%E4%BB%B6-toc\" style=\"margin-left:80px\">\u00a0 2. \u521b\u5efaAnsible\u89d2\u8272\u76f8\u5173\u6587\u4ef6<\/p>\n<p id=\"%E2%80%8B%E7%BC%96%E8%BE%91-toc\" style=\"margin-left:40px\">\u200b\u7f16\u8f91<\/p>\n<p id=\"3.%E6%97%B6%E9%92%9F%E5%90%8C%E6%AD%A5-toc\" style=\"margin-left:80px\">3.\u65f6\u949f\u540c\u6b65<\/p>\n<p id=\"%E5%9B%9B%E3%80%81%E6%A3%80%E6%9F%A5%E5%B9%B6%E9%85%8D%E7%BD%AEk8s-toc\" style=\"margin-left:0px\">\u56db\u3001\u68c0\u67e5\u5e76\u914d\u7f6ek8s<\/p>\n<hr id=\"hr-toc\" \/>\n<h3>\u672c\u671f\u76ee\u6807&#xff1a;<\/h3>\n<p>\u00a0 \u00a0 \u00a0 \u00a0 \u5b8c\u6210SRE AI Agent\u865a\u62df\u673a\u53cak8s\u57fa\u7840\u73af\u5883\u7684\u642d\u5efa\u548c\u914d\u7f6e\u3002<\/p>\n<h3 id=\"%E6%8F%90%E5%89%8D%E5%87%86%E5%A4%87%EF%BC%9A\">\u63d0\u524d\u51c6\u5907&#xff1a;<\/h3>\n<p>\u00a0 \u00a0 \u00a0 \u00a0 \u4e0b\u8f7d\u5e76\u5b89\u88c5VMworkstation&#xff0c;\u4e0b\u8f7drocky 9.6 linux\u955c\u50cf&#xff0c;\u4e0b\u8f7dMobaXterm\u8f6f\u4ef6&#xff08;\u53ef\u9009&#xff09;&#xff0c;\u914d\u7f6e\u8fc7\u7a0b\u4e2d\u9700\u5168\u7a0b\u8054\u7f51&#xff0c;\u4e14\u6709\u5305\u4e0b\u8f7d&#xff0c;\u8bf7\u6ce8\u610f\u6d41\u91cf\u6d88\u8017\u3002<\/p>\n<h3 id=\"%E9%AB%98%E4%BA%AE%E6%8F%90%E7%A4%BA%EF%BC%9A\">\u9ad8\u4eae\u63d0\u793a&#xff1a;<\/h3>\n<p>\u00a0 \u00a0 \u00a0 \u00a0 <span style=\"color:#1c7331\">\u7eff\u8272<\/span>&#xff1a;\u68c0\u67e5\u70b9&#xff0c;\u4f60\u5e94\u8be5\u4fdd\u8bc1\u81ea\u5df1\u7684\u72b6\u6001\u4e0e\u622a\u56fe\u4e00\u81f4\u3002<\/p>\n<p>\u00a0 \u00a0 \u00a0 \u00a0 <span style=\"color:#ff9900\">\u6a59\u8272&#xff1a;<\/span>\u4fee\u6b63\u914d\u7f6e\u95ee\u9898&#xff0c;\u5982\u679c\u4f60\u786e\u8ba4\u6ca1\u6709\u8be5\u95ee\u9898&#xff0c;\u53ef\u4ee5\u8df3\u8fc7<\/p>\n<p>\u00a0 \u00a0 \u00a0 \u00a0 <span style=\"color:#fe2c24\">\u7ea2\u8272&#xff1a;<\/span>\u91cd\u8981\u7684\u914d\u7f6e&#xff0c;\u5728\u540e\u7eed\u64cd\u4f5c\u4e2d\u9700\u8981\u7528\u5230&#xff0c;\u8bf7\u5728\u914d\u7f6e\u65f6\u8bb0\u5f55\u3002<\/p>\n<h2 id=\"%E4%B8%80%E3%80%81%E9%85%8D%E7%BD%AE%E8%99%9A%E6%8B%9F%E6%9C%BA\">\u4e00\u3001\u914d\u7f6e\u865a\u62df\u673a<\/h2>\n<h3 id=\"%C2%A0%20%C2%A0%20%C2%A0%20%C2%A0%201.%20%E5%AE%89%E8%A3%85%E8%99%9A%E6%8B%9F%E6%9C%BA\"> \u00a0 \u00a0 \u00a0 \u00a0 1. \u5b89\u88c5\u865a\u62df\u673a<\/h3>\n<p>\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a01.\u3000\u5728VM\u4e3b\u754c\u9762\u70b9\u51fb\u521b\u5efa\u65b0\u7684\u865a\u62df\u673a\u00a0 \u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0<img loading=\"lazy\" decoding=\"async\" alt=\"\" height=\"364\" src=\"https:\/\/www.wsisp.com\/helps\/wp-content\/uploads\/2026\/02\/20260212071103-698d7d071f58f.png\" width=\"620\" \/><\/p>\n<p>\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a02.\u3000\u9009\u62e9\u5bf9\u5e94\u7684\u865a\u62df\u673a\u955c\u50cf\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0<\/p>\n<p>\u00a0<img loading=\"lazy\" decoding=\"async\" alt=\"\" height=\"551\" src=\"https:\/\/www.wsisp.com\/helps\/wp-content\/uploads\/2026\/02\/20260212071103-698d7d07d9e9c.png\" width=\"570\" \/><\/p>\n<p>\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a03.\u3000\u8bbe\u7f6e\u865a\u62df\u673a\u540d\u79f0\u548c\u4f4d\u7f6e<\/p>\n<p><img loading=\"lazy\" decoding=\"async\" alt=\"\" height=\"551\" src=\"https:\/\/www.wsisp.com\/helps\/wp-content\/uploads\/2026\/02\/20260212071104-698d7d080624e.png\" width=\"570\" \/><\/p>\n<p>\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a04.\u3000\u8bbe\u7f6e\u78c1\u76d8\u5bb9\u91cf\u4e3a200GB\u5355\u6587\u4ef6<\/p>\n<p><img loading=\"lazy\" decoding=\"async\" alt=\"\" height=\"551\" src=\"https:\/\/www.wsisp.com\/helps\/wp-content\/uploads\/2026\/02\/20260212071104-698d7d082365d.png\" width=\"570\" \/><\/p>\n<p>\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0&#xff15;.\u3000\u4fee\u6539\u865a\u62df\u673a\u914d\u7f6e\u4e3a4\u6838&#xff14;&#xff27;&#xff22;\u5185\u5b58<\/p>\n<p><img loading=\"lazy\" decoding=\"async\" alt=\"\" height=\"551\" src=\"https:\/\/www.wsisp.com\/helps\/wp-content\/uploads\/2026\/02\/20260212071104-698d7d083b82c.png\" width=\"570\" \/><\/p>\n<h3 id=\"%C2%A0%20%C2%A0%20%C2%A0%20%C2%A0%202.%20%E9%85%8D%E7%BD%AE%E7%BD%91%E7%BB%9C%E5%8F%8A%E8%99%9A%E6%8B%9F%E6%9C%BA%E5%8F%82%E6%95%B0\">\u00a0 \u00a0 \u00a0 \u00a0 2. \u914d\u7f6e\u7f51\u7edc\u53ca\u865a\u62df\u673a\u53c2\u6570<\/h3>\n<p>\u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 1.\u91cd\u65b0\u542f\u52a8\u865a\u62df\u673a\u540e\u9009\u7b2c\u4e00\u9879\u5e76\u56de\u8f66\u786e\u8ba4 <img loading=\"lazy\" decoding=\"async\" alt=\"\" height=\"337\" src=\"https:\/\/www.wsisp.com\/helps\/wp-content\/uploads\/2026\/02\/20260212071104-698d7d08535a9.png\" width=\"574\" \/><\/p>\n<p>\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a02. \u9009\u4e2d\u6587\u5c31\u884c<\/p>\n<p><img loading=\"lazy\" decoding=\"async\" alt=\"\" height=\"1080\" src=\"https:\/\/www.wsisp.com\/helps\/wp-content\/uploads\/2026\/02\/20260212071105-698d7d090e802.png\" width=\"1840\" \/><\/p>\n<p>\u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 3. \u6b64\u5904\u6709\u56db\u4e2a\u672a\u5b8c\u6210\u914d\u7f6e&#xff1a;<\/p>\n<p><img loading=\"lazy\" decoding=\"async\" alt=\"\" height=\"1080\" src=\"https:\/\/www.wsisp.com\/helps\/wp-content\/uploads\/2026\/02\/20260212071105-698d7d09c3f07.png\" width=\"1840\" \/><\/p>\n<p>\u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 4. \u5148\u914d\u7f6e\u8d85\u7ea7\u7528\u6237&#xff08;Root Password&#xff09;\u586b\u5199<span style=\"color:#fe2c24\">\u7528\u6237\u5bc6\u7801<\/span>&#xff0c;\u5e76\u4e14<span style=\"color:#fe2c24\">\u6253\u5f00ssh\u8fdc\u7a0b\u767b\u5f55&#xff08;\u7b2c\u4e8c\u4e2a\u52fe\u9009\u9879&#xff09;<\/span>&#xff0c;\u5728\u586b\u5199\u5b8c\u6210\u540e\u70b9\u51fb\u5de6\u4e0a\u89d2Done\u6309\u94ae&#xff0c;\u6b64\u5904\u5982\u679c\u5bc6\u7801\u6bd4\u8f83\u7b80\u5355&#xff0c;\u9700\u8981\u6309\u4e24\u6b21\u6309\u94ae\u4ee5\u786e\u8ba4\u3002<\/p>\n<p><img loading=\"lazy\" decoding=\"async\" alt=\"\" height=\"1080\" src=\"https:\/\/www.wsisp.com\/helps\/wp-content\/uploads\/2026\/02\/20260212071106-698d7d0a9e3b5.png\" width=\"1840\" \/><\/p>\n<p>\u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 5. \u518d\u914d\u7f6e\u4e00\u4e2a\u666e\u901a\u7528\u6237&#xff0c;\u586b\u5199\u7528\u6237\u540d\u548c\u5bc6\u7801&#xff08;\u53ef\u4ee5\u8df3\u8fc7&#xff09;<\/p>\n<p><img loading=\"lazy\" decoding=\"async\" alt=\"\" height=\"1080\" src=\"https:\/\/www.wsisp.com\/helps\/wp-content\/uploads\/2026\/02\/20260212071107-698d7d0b833a2.png\" width=\"1840\" \/><\/p>\n<p>\u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 6. \u9009\u62e9\u5b89\u88c5\u78c1\u76d8,\u52fe\u9009\u552f\u4e00\u7684\u78c1\u76d8\u5c31\u884c <img loading=\"lazy\" decoding=\"async\" alt=\"\" height=\"1080\" src=\"https:\/\/www.wsisp.com\/helps\/wp-content\/uploads\/2026\/02\/20260212071108-698d7d0c4ca59.png\" width=\"1840\" \/><\/p>\n<p>\u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 7.\u914d\u7f6e\u7f51\u7edc&#xff1a;\u5728\u4e0b\u65b9\u4e3b\u673a\u540d\u5904\u4fee\u6539\u4e3b\u673a\u540d\u4e3ak8s-node1&#xff0c;\u5e76\u5e94\u7528&#xff0c;\u518d\u70b9\u51fb\u53f3\u4fa7\u914d\u7f6e\u6309\u94ae\u00a0\u00a0<img loading=\"lazy\" decoding=\"async\" alt=\"\" height=\"1080\" src=\"https:\/\/www.wsisp.com\/helps\/wp-content\/uploads\/2026\/02\/20260212071109-698d7d0d0fc0e.png\" width=\"1840\" \/><\/p>\n<p>\u9009ipv4\u914d\u7f6e&#xff0c;\u70b9\u51fbAdd\u6309\u94ae\u65b0\u589e\u8fde\u63a5&#xff0c;\u6b64\u5904\u7684ip\u5e94\u5f53\u53c2\u7167\u4f60\u7684\u8ba1\u7b97\u673a\u8bbe\u7f6e&#xff0c;\u70b9\u51fbVM\u5de6\u4e0a\u89d2\u7684\u7f16\u8f91&#xff0c;\u9009\u62e9\u865a\u62df\u7f51\u7edc\u7f16\u8f91\u5668&#xff0c;\u4f60\u5e94\u8be5\u6709\u4e00\u4e2aNAT\u7c7b\u578b\u7684\u8fde\u63a5&#xff0c;\u5982\u679c\u6ca1\u6709\u53ef\u4ee5\u901a\u8fc7\u6dfb\u52a0\u7f51\u7edc\u521b\u5efa&#xff0c;\u9009\u4e2d\u6b64\u8fde\u63a5\u70b9\u51fbNAT \u8bbe\u7f6e&#xff0c;\u67e5\u770b\u4f60\u7684Vmware\u7f51\u7edc\u914d\u7f6e<\/p>\n<p><img loading=\"lazy\" decoding=\"async\" alt=\"\" height=\"659\" src=\"https:\/\/www.wsisp.com\/helps\/wp-content\/uploads\/2026\/02\/20260212071109-698d7d0dc5911.png\" width=\"714\" \/><\/p>\n<p>\u5982\u56fe&#xff0c;\u8fd9\u662f\u6211\u7684\u8bbe\u7f6e&#xff0c;\u6b64\u5904\u7684\u7f51\u5173\u548c\u5b50\u7f51\u63a9\u7801\u5c31\u662f\u4e0b\u6587\u586b\u5199\u7684\u6570\u503c&#xff0c;ip\u5219\u586b\u5199\u8be5\u5b50\u7f51\u4e0b\u7684<span style=\"color:#fe2c24\">\u4efb\u610fip<\/span><\/p>\n<p><img loading=\"lazy\" decoding=\"async\" alt=\"\" height=\"925\" src=\"https:\/\/www.wsisp.com\/helps\/wp-content\/uploads\/2026\/02\/20260212071109-698d7d0de1e6c.png\" width=\"1484\" \/><\/p>\n<p>\u56de\u5230\u865a\u62df\u673a\u5185\u7684\u914d\u7f6e\u9875\u9762&#xff0c;\u586b\u5199\u6570\u503c&#xff0c;\u5982\u6211\u7684\u914d\u7f6e\u4e3a192.168.30.11&#xff0c;\u63a9\u780124&#xff0c;\u7f51\u5173192.168.30.2&#xff0c;\u7136\u540e\u70b9\u51fbDone\u56de\u5230\u4e3b\u9875\u9762 <img loading=\"lazy\" decoding=\"async\" alt=\"\" height=\"1080\" src=\"https:\/\/www.wsisp.com\/helps\/wp-content\/uploads\/2026\/02\/20260212071110-698d7d0e56fae.png\" width=\"1840\" \/><\/p>\n<p>\u70b9\u51fbRestart\u6309\u94ae\u91cd\u542f\u865a\u62df\u673a<\/p>\n<h2 id=\"%E2%80%8B%E7%BC%96%E8%BE%91%E4%BA%8C%E3%80%81Ansible%E7%8E%AF%E5%A2%83%E7%9A%84%E9%83%A8%E7%BD%B2%E5%8F%8A%E9%9B%86%E7%BE%A4SSH%E5%85%8D%E5%AF%86\"><img loading=\"lazy\" decoding=\"async\" alt=\"\" height=\"944\" src=\"https:\/\/www.wsisp.com\/helps\/wp-content\/uploads\/2026\/02\/20260212071111-698d7d0f19f59.png\" width=\"1483\" \/>  \u4e8c\u3001Ansible\u73af\u5883\u7684\u90e8\u7f72\u53ca\u96c6\u7fa4SSH\u514d\u5bc6<\/h2>\n<p>\u5728\u5f00\u59cb\u524d&#xff0c;\u8bf7\u5148\u5b89\u88c5\u4e0a\u9762\u7684\u65b9\u5f0f\u914d\u7f6e\u4e09\u53f0\u865a\u62df\u673a<\/p>\n<p><span style=\"color:#fe2c24\">\u4e3b\u673a\u540d\u4e0d\u540c<\/span>&#xff1a;k8s_node1\u3001k8s_node2\u3001k8s_node3&#xff0c;<\/p>\n<p><span style=\"color:#fe2c24\">Ip\u4e0d\u540c<\/span>&#xff1a;\u6211\u7684\u914d\u7f6e\u662f192.168.30.11&#xff0c;192.168.30.12&#xff0c;192.168.30.13<\/p>\n<p>\u63a5\u4e0b\u6765\u7684\u64cd\u4f5c\u90fd\u5728<span style=\"color:#fe2c24\">k8s_node1<\/span>\u4e0a\u8fdb\u884c&#xff1a;<\/p>\n<h3 id=\"1.%20%E7%BD%91%E7%BB%9C%E6%B5%8B%E8%AF%95\">1. \u7f51\u7edc\u6d4b\u8bd5<\/h3>\n<p>\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a01.\u4f7f\u7528MobaXterm\u6216\u5176\u4ed6\u7ec8\u7aef\u8f6f\u4ef6\u8fde\u63a5\u5230<span style=\"color:#fe2c24\">k8s_node1<\/span>\u00a0&#xff0c;\u4fbf\u4e8e\u63a5\u4e0b\u6765\u7684\u64cd\u4f5c<\/p>\n<p>\u5728\u4e3b\u9875\u70b9\u51fb\u5de6\u4e0a\u89d2Sessions-&gt;new sessions.<\/p>\n<p><img loading=\"lazy\" decoding=\"async\" alt=\"\" height=\"1080\" src=\"https:\/\/www.wsisp.com\/helps\/wp-content\/uploads\/2026\/02\/20260212071111-698d7d0f95df4.png\" width=\"1831\" \/><\/p>\n<p>\u00a0 \u00a0 \u00a0 \u00a0 2. \u9009\u62e9SSH&#xff0c;\u5728remote host\u4e2d\u8f93\u5165\u865a\u62df\u673a\u7684IP&#xff08;\u4e0a\u6587\u914d\u7f6e\u7684ip&#xff0c;\u6211\u7684\u662f192.168.30.11&#xff09;&#xff0c;\u70b9\u51fbok<\/p>\n<p><img loading=\"lazy\" decoding=\"async\" alt=\"\" height=\"678\" src=\"https:\/\/www.wsisp.com\/helps\/wp-content\/uploads\/2026\/02\/20260212071112-698d7d108e9d1.png\" width=\"1007\" \/><\/p>\n<p>3.\u5728\u767b\u5f55\u7a97\u53e3\u4ee5root\u7528\u6237\u767b\u5f55&#xff0c;\u5982\u679c\u4f60\u65e0\u6cd5\u770b\u5230\u6b64\u9875\u9762&#xff0c;\u5219\u662f\u524d\u6587\u7684ip\u914d\u7f6e\u9519\u8bef&#xff0c;(\u7b2c\u4e00\u6b21\u767b\u5f55\u4f1a\u63d0\u793a\u8981\u4e0d\u8981\u63a5\u6536\u5bc6\u94a5&#xff0c;\u5168\u9009\u662f&#xff09;<\/p>\n<p><img loading=\"lazy\" decoding=\"async\" alt=\"\" height=\"1080\" src=\"https:\/\/www.wsisp.com\/helps\/wp-content\/uploads\/2026\/02\/20260212071112-698d7d10d6b4e.png\" width=\"1831\" \/><\/p>\n<p>4.\u767b\u5f55\u6210\u529f\u5982\u56fe&#xff0c;\u5982\u679c\u4f60\u8f93\u5165\u7684root\u5bc6\u7801\u88ab\u62d2\u7edd&#xff0c;\u5219\u662f\u524d\u6587root\u7528\u6237\u5904\u6ca1\u6709\u5f00\u542fssh\u8fde\u63a5\u5bfc\u81f4\u3002<\/p>\n<p><img loading=\"lazy\" decoding=\"async\" alt=\"\" height=\"1080\" src=\"https:\/\/www.wsisp.com\/helps\/wp-content\/uploads\/2026\/02\/20260212071113-698d7d11b32a0.png\" width=\"1831\" \/><\/p>\n<p>5.\u5148\u6d4b\u8bd5\u4e00\u4e0b\u7f51\u7edc\u914d\u7f6e\u662f\u5426\u6b63\u786e&#xff0c;\u8f93\u5165<\/p>\n<p>ping 8.8.8.8 <\/p>\n<p>\u5e94\u8be5\u6709\u8fd4\u56de\u503c&#xff0c;\u5982\u679c\u6ca1\u6709&#xff0c;\u5219\u662fip\u548c\u7f51\u5173\u914d\u7f6e\u6709\u95ee\u9898&#xff0c;\u5982\u679c\u6ca1\u95ee\u9898\u6309ctrl&#043;c\u9000\u51faping<img loading=\"lazy\" decoding=\"async\" alt=\"\" height=\"1080\" src=\"2026-02-12usub0uafars.png\" width=\"1831\" \/><\/p>\n<p><span style=\"color:#fe2c24\">\u5173\u95ed\u673a\u5668\u4e0a\u7684\u9632\u706b\u5899<\/span>&#xff0c;\u65b9\u4fbf\u540e\u7eed\u64cd\u4f5c&#xff08;\u4e0d\u8981\u50cf\u6211\u4e00\u6837\u5fd8\u8bb0\u5173&#xff0c;\u540e\u7eed\u7528\u4e24\u4e2a\u5c0f\u65f6\u7684\u65f6\u95f4\u6392\u67e5&#xff09;<\/p>\n<p>systemctl disable &#8211;now firewalld<br \/>\nsetenforce 0 <\/p>\n<p><span style=\"color:#1c7331\">\u8bf7\u5728\u6b64\u8fc7\u7a0b\u4e2d\u68c0\u67e5\u4e09\u53f0\u673a\u5668&#xff0c;\u786e\u8ba4\u767b\u5f55\u8fc7\u7a0b\u4e2dip\u548c\u4e3b\u673a\u540d\u4e00\u4e00\u5bf9\u5e94\u4e14\u80fdping\u901a<\/span><\/p>\n<h3 id=\"2.%20%E5%AE%89%E8%A3%85%E5%9F%BA%E7%A1%80%E5%8C%85%E5%92%8C%E9%85%8D%E7%BD%AESSH%E4%BA%92%E4%BF%A1\">2. \u5b89\u88c5\u57fa\u7840\u5305\u548c\u914d\u7f6eSSH\u4e92\u4fe1<\/h3>\n<p>\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a01.\u8f93\u5165\u5b89\u88c5\u547d\u4ee4\u5e76\u7b49\u5f85,\u5b89\u88c5ansible\u6838\u5fc3\u5305\u548cssh\u4e92\u4fe1\u5305<\/p>\n<p>dnf install -y ansible-core sshpass <\/p>\n<p>\u5b89\u88c5\u5b8c\u6bd5\u540e&#xff0c;\u6700\u540e\u4e00\u884c\u5e94\u8be5\u663e\u793a\u00a0\u00a0\u00a0\u00a0Complete!<\/p>\n<p>\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a02.\u914d\u7f6e\u96c6\u7fa4ssh&#xff0c;\u5148\u8f93\u5165\u547d\u4ee4&#xff0c;\u83b7\u53d6\u8ba4\u8bc1\u5bc6\u94a5\u5bf9<\/p>\n<p>ssh-keygen -t rsa -N &#034;&#034; -f ~\/.ssh\/id_rsa <\/p>\n<p>\u518d\u5206\u53d1\u5bc6\u94a5&#xff0c;\u6211\u4eec\u5c1d\u8bd5\u901a\u8fc7scp\u547d\u4ee4\u590d\u5236\u5bc6\u94a5\u5230\u5404\u4e2a\u8282\u70b9<\/p>\n<p>ssh-copy-id -o StrictHostKeyChecking&#061;no root&#064;k8s-node1<\/p>\n<p>ssh-copy-id -o StrictHostKeyChecking&#061;no root&#064;k8s-node2<\/p>\n<p>ssh-copy-id -o StrictHostKeyChecking&#061;no root&#064;k8s-node3 <\/p>\n<p>\u4f46\u662f\u53d1\u73b0<span style=\"color:#ff9900\">\u4e0d\u80fd\u6b63\u5e38\u5206\u53d1\u5230\u6307\u5b9a\u4e3b\u673a\u3002<\/span><\/p>\n<p><img loading=\"lazy\" decoding=\"async\" alt=\"\" height=\"134\" src=\"2026-02-12aoyibz1wq0g.png\" width=\"1282\" \/><\/p>\n<p>\u901a\u8fc7ping\u5bf9\u5e94\u4e3b\u673a\u53d1\u73b0\u4e3b\u673a\u7684ip\u662f\u9519\u8bef\u7684&#xff0c;\u5982\u56fe&#xff1a;<\/p>\n<p><img loading=\"lazy\" decoding=\"async\" alt=\"\" height=\"71\" src=\"2026-02-12lcozbucr3b1.png\" width=\"671\" \/><\/p>\n<p>\u8fd9\u662f\u56e0\u4e3a\u524d\u6587\u6211\u4eec\u867d\u7136\u914d\u7f6e\u4e86\u4e3b\u673a\u548c\u5bf9\u5e94\u7684ip&#xff0c;\u5374\u6ca1\u6709\u4e3a\u5404\u4e2a\u4e3b\u673a\u914d\u7f6e\u89e3\u6790&#xff0c;\u6362\u8a00\u4e4b&#xff0c;\u4e3b\u673a\u6839\u672c\u4e0d\u77e5\u9053\u6bcf\u4e2a\u4e3b\u673a\u540d\u5bf9\u5e94\u54ea\u4e2aip&#xff0c;\u6211\u4eec\u8f93\u5165<\/p>\n<p>vim \/etc\/hosts <\/p>\n<p>\u53d1\u73b0vim\u6ca1\u6709\u5b89\u88c5&#xff0c;\u4f7f\u7528\u547d\u4ee4\u5b89\u88c5&#xff08;\u4e5f\u53ef\u4ee5\u7528vi\u5c31\u4e0d\u7528\u5b89\u88c5\u4e86&#xff09;<\/p>\n<p>dnf install -y vim <\/p>\n<p>\u518d\u6b21\u4f7f\u7528vim\u6253\u5f00\/etc\/hosts,\u5982\u56fe<\/p>\n<p><img loading=\"lazy\" decoding=\"async\" alt=\"\" height=\"289\" src=\"2026-02-12bpqzviqi4dm.png\" width=\"444\" \/><\/p>\n<p>\u6211\u4eec\u6dfb\u52a0\u5bf9\u5e94\u7684\u89e3\u6790&#xff0c;\u5e76\u4fdd\u5b58\u9000\u51fa (\u6309i\u8fdb\u5165\u63d2\u5165\u6a21\u5f0f&#xff0c;\u8f93\u5165\u5b8c\u6bd5\u540e\u6309esc&#xff0c;\u8f93\u5165wq\u4fdd\u5b58\u9000\u51fa&#xff09;<\/p>\n<p><img loading=\"lazy\" decoding=\"async\" alt=\"\" height=\"324\" src=\"2026-02-12w2mv4tomw1w.png\" width=\"525\" \/><\/p>\n<p>\u5b8c\u6210\u540e\u518d\u8bd5\u7740\u5206\u53d1\u4e00\u904d<\/p>\n<p><span style=\"color:#fe2c24\">\u6ce8\u610f&#xff0c;\u4e92\u4fe1\u8981\u5728\u6bcf\u53f0\u673a\u5668\u4e0a\u90fd\u914d\u7f6e\u4e00\u904d<\/span><\/p>\n<p>\u5982\u56fe\u5206\u53d1\u5b8c\u6bd5&#xff0c;\u53ef\u4ee5\u5728\u5176\u4ed6\u673a\u5668\u4e0a\u5c1d\u8bd5ssh\u767b\u5f55\u80fd\u5426\u6210\u529f\u5224\u65ad\u5bf9\u9519<\/p>\n<p><img loading=\"lazy\" decoding=\"async\" alt=\"\" height=\"694\" src=\"2026-02-1255cp2zvt5gi.png\" width=\"1359\" \/><\/p>\n<p>\u5982\u56fe&#xff0c;\u767b\u5f55\u8fc7\u7a0b\u4e0d\u9700\u8981\u8f93\u5165\u5bc6\u7801\u5373\u4e3a\u6b63\u5e38&#xff0c;\u8bf7\u8bb0\u4f4f\u8f93\u5165exit\u8fd4\u56denode1&#xff0c;\u907f\u514d\u9519\u8bef<\/p>\n<p><img loading=\"lazy\" decoding=\"async\" alt=\"\" height=\"67\" src=\"2026-02-120pg1dm1g4n1.png\" width=\"1016\" \/><\/p>\n<p><span style=\"color:#1c7331\">\u4f60\u5e94\u8be5\u80fd\u5728\u6bcf\u53f0\u673a\u5668\u4e0a\u4f7f\u7528ssh\u514d\u5bc6\u767b\u5f55\u5230\u6bcf\u53f0\u673a\u5668<\/span><\/p>\n<h2 id=\"%E4%B8%89%E3%80%81%C2%A0%E5%88%9B%E5%BB%BAAnsible%E9%A1%B9%E7%9B%AE%E6%96%87%E4%BB%B6\">\u4e09\u3001\u00a0\u521b\u5efaAnsible\u9879\u76ee\u6587\u4ef6<\/h2>\n<p>\u00a0 \u00a0 \u00a0 \u00a0 \u901a\u8fc7\u4ee5\u4e0b\u547d\u4ee4&#xff0c;\u521b\u5efa\u5e76\u5207\u6362\u5230ansible\u7684\u9879\u76ee\u76ee\u5f55\u3002<\/p>\n<p>mkdir -p ~\/ansible-k8s-deployment<\/p>\n<p>cd ~\/ansible-k8s-deployment <\/p>\n<h4 id=\"%C2%A0%20%C2%A0%20%C2%A0%20%C2%A0%201.%20%E5%88%9B%E5%BB%BAAnsible%20Playbook%E7%9B%AE%E5%BD%95%E5%8F%8A%E5%9F%BA%E6%9C%AC%E6%96%87%E4%BB%B6%EF%BC%9A\">\u00a0 \u00a0 \u00a0 \u00a0 1. \u521b\u5efaAnsible Playbook\u76ee\u5f55\u53ca\u57fa\u672c\u6587\u4ef6&#xff1a;<\/h4>\n<p>&#xff08;1&#xff09;\u914d\u7f6e\u6587\u4ef6 ansible.cfg<\/p>\n<p>[defaults]<br \/>\ninventory      &#061; .\/inventory<br \/>\nhost_key_checking &#061; False<br \/>\nremote_user    &#061; root <\/p>\n<p>&#xff08;2&#xff09;\u6e05\u5355\u6587\u4ef6\u00a0inventory<\/p>\n<p>[masters]<br \/>\nk8s-node1 ansible_host&#061;192.168.30.11<\/p>\n<p>[workers]<br \/>\nk8s-node2 ansible_host&#061;192.168.30.12<br \/>\nk8s-node3 ansible_host&#061;192.168.30.13<\/p>\n<p>[all:vars]<br \/>\n# \u5728\u5355Master\u96c6\u7fa4\u9700\u8981\u660e\u786e\u6307\u5b9aMaster\u7684IP<br \/>\n# \u5982\u679c\u662f\u591aMaster\u9ad8\u53ef\u7528\u96c6\u7fa4&#xff0c;\u9700\u8981\u914d\u7f6eVIP<br \/>\nmaster_ip &#061; 192.168.30.11<br \/>\n# \u4e3aK8s Pod\u7f51\u7edc\u6307\u5b9aCIDR&#xff0c;Calico\u7f51\u7edc\u63d2\u4ef6\u9700\u8981<br \/>\npod_network_cidr &#061; &#034;10.244.0.0\/16&#034; <\/p>\n<p>&#xff08;3&#xff09;playbook\u5165\u53e3\u6587\u4ef6 deploy-k8s.yml<\/p>\n<p>&#8212;<br \/>\n&#8211; name: 1. Configure all nodes with common settings<br \/>\n  hosts: all<br \/>\n  become: true<br \/>\n  roles:<br \/>\n    &#8211; common<\/p>\n<p>&#8211; name: 2. Deploy Kubernetes master node<br \/>\n  hosts: masters<br \/>\n  become: true<br \/>\n  roles:<br \/>\n    &#8211; master<\/p>\n<p>&#8211; name: 3. Deploy Kubernetes worker nodes<br \/>\n  hosts: workers<br \/>\n  become: true<br \/>\n  roles:<br \/>\n    &#8211; worker<\/p>\n<p>&#8211; name: 4. Label worker nodes from master<br \/>\n  hosts: masters<br \/>\n  become: true<br \/>\n  tasks:<br \/>\n    &#8211; name: Apply worker role label to each worker node<br \/>\n      ansible.builtin.command: &#034;kubectl label node {{ item }} node-role.kubernetes.io\/worker&#061;worker &#8211;overwrite&#034;<br \/>\n      loop: &#034;{{ groups[&#039;workers&#039;] }}&#034;     <\/p>\n<h4 id=\"%C2%A0%202.%20%E5%88%9B%E5%BB%BAAnsible%E8%A7%92%E8%89%B2%E7%9B%B8%E5%85%B3%E6%96%87%E4%BB%B6\">\u00a0 2. \u521b\u5efaAnsible\u89d2\u8272\u76f8\u5173\u6587\u4ef6<\/h4>\n<p>1.\u521b\u5efa\u6bcf\u4e2a\u89d2\u8272\u7684\u5b50\u76ee\u5f55<\/p>\n<p>mkdir -p roles\/{common,master,worker}\/tasks <\/p>\n<p>&#xff08;1&#xff09;\u5728 roles\/common\/tasks\/main.yml\u4e2d\u7f16\u5199common\u89d2\u8272<\/p>\n<p>vim ~\/ansible-k8s-deployment\/roles\/common\/tasks\/main.yml <\/p>\n<p>\u793a\u4f8b&#xff1a;<\/p>\n<p>&#8212;<br \/>\n# tasks file for common role<br \/>\n&#8211; name: Disable SELinux<br \/>\n  ansible.posix.selinux:<br \/>\n    state: disabled<\/p>\n<p>&#8211; name: Disable Swap<br \/>\n  block:<br \/>\n    &#8211; name: Turn off swap<br \/>\n      ansible.builtin.command: swapoff -a<br \/>\n    &#8211; name: Comment out swap in fstab<br \/>\n      ansible.builtin.replace:<br \/>\n        path: \/etc\/fstab<br \/>\n        regexp: &#039;^(.*swap.*)$&#039;<br \/>\n        replace: &#039;# \\\\1&#039;<br \/>\n  when: ansible_swaptotal_mb &gt; 0<\/p>\n<p>&#8211; name: Configure kernel modules and sysctl for Kubernetes<br \/>\n  block:<br \/>\n    &#8211; name: Load overlay module<br \/>\n      community.general.modprobe: { name: overlay, state: present }<br \/>\n    &#8211; name: Load br_netfilter module<br \/>\n      community.general.modprobe: { name: br_netfilter, state: present }<br \/>\n    &#8211; name: Create k8s.conf for sysctl<br \/>\n      ansible.builtin.copy:<br \/>\n        dest: \/etc\/sysctl.d\/k8s.conf<br \/>\n        content: |<br \/>\n          net.bridge.bridge-nf-call-iptables  &#061; 1<br \/>\n          net.bridge.bridge-nf-call-ip6tables &#061; 1<br \/>\n          net.ipv4.ip_forward                 &#061; 1<br \/>\n    &#8211; name: Apply sysctl params<br \/>\n      ansible.builtin.command: sysctl &#8211;system<\/p>\n<p>&#8211; name: Install and configure containerd<br \/>\n  block:<br \/>\n    &#8211; name: Install required packages for containerd<br \/>\n      ansible.builtin.dnf:<br \/>\n        name: [dnf-utils, device-mapper-persistent-data, lvm2]<br \/>\n        state: present<br \/>\n    &#8211; name: Add Docker CE repository<br \/>\n      ansible.builtin.get_url:<br \/>\n        url: https:\/\/download.docker.com\/linux\/centos\/docker-ce.repo<br \/>\n        dest: \/etc\/yum.repos.d\/docker-ce.repo<br \/>\n    &#8211; name: Install containerd.io<br \/>\n      ansible.builtin.dnf:<br \/>\n        name: containerd.io<br \/>\n        state: present<br \/>\n    &#8211; name: Configure containerd to use systemd cgroup<br \/>\n      ansible.builtin.shell: |<br \/>\n        mkdir -p \/etc\/containerd<br \/>\n        containerd config default &gt; \/etc\/containerd\/config.toml<br \/>\n        sed -i &#039;s\/SystemdCgroup &#061; false\/SystemdCgroup &#061; true\/g&#039; \/etc\/containerd\/config.toml<br \/>\n    &#8211; name: Restart and enable containerd service<br \/>\n      ansible.builtin.systemd:<br \/>\n        name: containerd<br \/>\n        state: restarted<br \/>\n        enabled: yes<\/p>\n<p>&#8211; name: Add Kubernetes v1.32 yum repository<br \/>\n  ansible.builtin.yum_repository:<br \/>\n    name: kubernetes<br \/>\n    description: Kubernetes<br \/>\n    # &#8212; \u7248\u672c\u66f4\u65b0\u70b9 &#8212;<br \/>\n    baseurl: https:\/\/pkgs.k8s.io\/core:\/stable:\/v1.32\/rpm\/<br \/>\n    gpgkey: https:\/\/pkgs.k8s.io\/core:\/stable:\/v1.32\/rpm\/repodata\/repomd.xml.key<br \/>\n    gpgcheck: yes<br \/>\n    enabled: yes<br \/>\n    exclude: kubelet kubeadm kubectl cri-tools kubernetes-cni<\/p>\n<p>&#8211; name: Install Kubernetes components<br \/>\n  ansible.builtin.dnf:<br \/>\n    name: [kubelet, kubeadm, kubectl]<br \/>\n    state: present<br \/>\n    disable_excludes: kubernetes<\/p>\n<p>&#8211; name: Enable kubelet service<br \/>\n  ansible.builtin.systemd:<br \/>\n    name: kubelet<br \/>\n    enabled: yes <\/p>\n<p>&#xff08;2&#xff09;\u5728 roles\/master\/tasks\/main.yml\u7f16\u5199master\u89d2\u8272<\/p>\n<p>vim ~\/ansible-k8s-deployment\/roles\/master\/tasks\/main.yml<br \/>\n&#8212;<br \/>\n# tasks file for master role<br \/>\n&#8211; name: Initialize the Kubernetes cluster with kubeadm<br \/>\n  ansible.builtin.shell: &#034;kubeadm init &#8211;apiserver-advertise-address&#061;{{ master_ip }} &#8211;pod-network-cidr&#061;{{ pod_network_cidr }} &#8211;upload-certs&#034;<br \/>\n  args:<br \/>\n    creates: \/etc\/kubernetes\/admin.conf<\/p>\n<p>&#8211; name: Setup kubectl for the root user<br \/>\n  ansible.builtin.file:<br \/>\n    path: \/root\/.kube<br \/>\n    state: directory<br \/>\n    owner: root<br \/>\n    group: root<br \/>\n    mode: &#039;0755&#039;<\/p>\n<p>&#8211; name: Copy admin.conf to user&#039;s kube config<br \/>\n  ansible.builtin.copy:<br \/>\n    src: \/etc\/kubernetes\/admin.conf<br \/>\n    dest: \/root\/.kube\/config<br \/>\n    remote_src: yes<br \/>\n    owner: root<br \/>\n    group: root<br \/>\n    mode: &#039;0644&#039;<\/p>\n<p>&#8211; name: Install Calico network CNI<br \/>\n  ansible.builtin.shell: &#034;kubectl apply -f https:\/\/raw.githubusercontent.com\/projectcalico\/calico\/v3.27.3\/manifests\/calico.yaml&#034;<br \/>\n  args:<br \/>\n    creates: \/etc\/cni\/net.d\/10-calico.conflist<\/p>\n<p>&#8211; name: Generate join command<br \/>\n  ansible.builtin.command: kubeadm token create &#8211;print-join-command<br \/>\n  register: join_command_raw<\/p>\n<p>&#8211; name: Store join command<br \/>\n  ansible.builtin.set_fact:<br \/>\n    join_command: &#034;{{ join_command_raw.stdout }}&#034; <\/p>\n<p>&#xff08;3&#xff09;\u5728~\/ansible-k8s-deployment\/roles\/worker\/tasks\/main.yml\u7f16\u5199worker\u89d2\u8272<\/p>\n<p>vim ~\/ansible-k8s-deployment\/roles\/worker\/tasks\/main.yml<br \/>\n&#8212;<br \/>\n&#8211; name: Join the worker nodes to the cluster<br \/>\n  ansible.builtin.command: &#034;{{ hostvars[groups[&#039;masters&#039;][0]][&#039;join_command&#039;] }}&#034;<br \/>\n  args:<br \/>\n    creates: \/etc\/kubernetes\/kubelet.conf <\/p>\n<p><span style=\"color:#1c7331\">\u4f7f\u7528tree\u547d\u4ee4\u83b7\u53d6\u7684\u76ee\u5f55\u7ed3\u6784\u5982\u56fe&#xff08;\u4f60\u53ef\u80fd\u6ca1\u6709\u5b89\u88c5tree\u5305&#xff0c;\u4f7f\u7528dnf install\u00a0 -y tree\u5b89\u88c5&#xff09;<\/span><\/p>\n<h3 id=\"%E2%80%8B%E7%BC%96%E8%BE%91\"><img loading=\"lazy\" decoding=\"async\" alt=\"\" height=\"351\" src=\"2026-02-12cqxygireg0e.png\" width=\"1410\" \/><\/h3>\n<h4 id=\"3.%E6%97%B6%E9%92%9F%E5%90%8C%E6%AD%A5\">3.\u65f6\u949f\u540c\u6b65<\/h4>\n<p>\u8bbe\u7f6e\u65f6\u533a<\/p>\n<p>timedatectl set-timezone Asia\/Shanghai <\/p>\n<p>\u5b89\u88c5 chrony\u5e76\u624b\u52a8\u540c\u6b65<\/p>\n<p>sudo dnf install chrony<\/p>\n<p>sudo systemctl start chronyd<\/p>\n<p>sudo systemctl enable chronyd<\/p>\n<p>sudo chronyc makestep <\/p>\n<p><span style=\"color:#1c7331\">\u5728\u6211\u4eec\u8fdb\u4e00\u6b65\u524d&#xff0c;\u6211\u4eec\u5e94\u8be5\u786e\u8ba4\u96c6\u7fa4\u7684\u65f6\u95f4\u540c\u6b65\u72b6\u6001&#xff0c;<\/span><\/p>\n<p>\u5148\u8f93\u5165&#xff1a;<\/p>\n<p>for node in k8s-node{1..3}; do<br \/>\n    ssh &#034;$node&#034; &#039;date &#043;&#034;%Y-%m-%d %H:%M:%S.%N&#034;&#039; &amp;<br \/>\ndone<br \/>\nwait <\/p>\n<p>\u4f1a\u51fa\u73b0\u5f53\u524d\u5404\u8282\u70b9\u7684\u65f6\u95f4&#xff0c;\u5982\u56fe&#xff1a;<\/p>\n<p><img loading=\"lazy\" decoding=\"async\" alt=\"\" height=\"257\" src=\"2026-02-12pgacnd0mf4t.png\" width=\"793\" \/><\/p>\n<p>\u65f6\u5dee\u5e94\u8be5\u5728100ms\u4e4b\u5185&#xff0c;\u8bc1\u660e\u65f6\u949f\u670d\u52a1\u6b63\u5e38&#xff0c;<span style=\"color:#fe2c24\">\u5426\u5219\u8bf7\u68c0\u67e5\u5404\u8282\u70b9\u7684\u65f6\u949f\u540c\u6b65<\/span><\/p>\n<\/p>\n<p>\u5c1d\u8bd5\u6267\u884cplaybook&#xff0c;\u6b64\u4ee3\u7801\u4f1a\u62a5\u9519&#xff0c;\u8fd9\u662f\u6b63\u5e38\u7684&#xff0c;\u539f\u56e0\u5728\u4e8e\u4ee3\u7801\u4e2d\u8c03\u7528\u7684ansible.posix \u548c community.general\u7684\u4e24\u4e2a\u5185\u5bb9\u96c6\u5408\u6ca1\u6709\u5b89\u88c5\u3002<\/p>\n<p>cd ~\/ansible-k8s-deployment<\/p>\n<p>ansible-playbook deploy-k8s.yml <\/p>\n<p><img loading=\"lazy\" decoding=\"async\" alt=\"\" height=\"227\" src=\"2026-02-12d2gpqqbf31p.png\" width=\"1435\" \/><\/p>\n<p>\u521b\u5efa\u4f9d\u8d56\u9879\u6587\u4ef6\u00a0 ~\/ansible-k8s-deployment\/requirements.yml<\/p>\n<p>&#8212;<br \/>\ncollections:<br \/>\n  &#8211; name: ansible.posix<br \/>\n    version: &#034;&gt;&#061;1.5.4&#034;  # \u6307\u5b9a\u4e00\u4e2a\u7248\u672c\u8303\u56f4&#xff0c;\u4fdd\u8bc1\u7a33\u5b9a\u6027<br \/>\n  &#8211; name: community.general<br \/>\n    version: &#034;&gt;&#061;8.5.0&#034; <\/p>\n<p>\u5b89\u88c5\u4f9d\u8d56\u9879&#xff08;\u9700\u8981\u7b49\u5f85&#xff09;<\/p>\n<p>cd ~\/ansible-k8s-deployment<\/p>\n<p>ansible-galaxy install -r requirements.yml <\/p>\n<p>\u5b8c\u6210\u540e\u5c31\u53ef\u4ee5\u518d\u8bd5\u4e00\u904d\u4e86&#xff0c;\u8fd9\u4e5f\u9700\u8981\u7b49\u5f85\u5f88\u957f\u4e00\u6bb5\u65f6\u95f4&#xff08;\u7531\u4e8e\u4e0b\u8f7d\u6e90\u5728\u5916\u7f51&#xff0c;\u53ef\u80fd\u9700\u8981\u4e00\u4e9b\u7f51\u7edc\u5de5\u5177&#xff09;\u8fd9\u4e2a\u4ee3\u7801\u5728\u8fd0\u884c\u65f6\u4e5f\u53ef\u80fd\u62a5\u9519&#xff0c;\u5927\u591a\u662f\u7531\u4e8e\u7f51\u7edc\u539f\u56e0\u3002<\/p>\n<p>cd ~\/ansible-k8s-deployment<\/p>\n<p>ansible-playbook deploy-k8s.yml <\/p>\n<p><span style=\"color:#fe2c24\">\u8fd0\u884c\u540e\u68c0\u67e5\u6574\u4e2a\u8f93\u51fa&#xff0c;\u5e94\u8be5\u65e0\u660e\u663e\u62a5\u9519<\/span><\/p>\n<h2 id=\"%E5%9B%9B%E3%80%81%E6%A3%80%E6%9F%A5%E5%B9%B6%E9%85%8D%E7%BD%AEk8s\">\u56db\u3001\u68c0\u67e5\u5e76\u914d\u7f6ek8s<\/h2>\n<p>\u67e5\u770b\u8282\u70b9\u5217\u8868<\/p>\n<p>kubectl get nodes -o wide <\/p>\n<p><img loading=\"lazy\" decoding=\"async\" alt=\"\" height=\"181\" src=\"2026-02-120fywv0dymkn.png\" width=\"1430\" \/><\/p>\n<p>\u67e5\u770bnode\u5217\u8868<\/p>\n<p>kubectl get pods -A <\/p>\n<p><img loading=\"lazy\" decoding=\"async\" alt=\"\" height=\"312\" src=\"2026-02-12lkaed0ukzhr.png\" width=\"1074\" \/><\/p>\n<p><span style=\"color:#1c7331\">\u8bf7\u68c0\u67e5\u6240\u6709\u7684\u8282\u70b9\u90fd\u662fready&#xff0c;\u6240\u6709\u7684pod\u72b6\u6001\u90fd\u662frunning<\/span>&#xff08;\u521a\u542f\u52a8\u65f6\u53ef\u80fd\u6ca1\u6709\u8fd0\u884c&#xff0c;\u7b49\u4e00\u7b49\u5c31\u53ef\u4ee5&#xff09;<\/p>\n<p>\u672c\u6587\u7684\u76ee\u6807\u5df2\u5168\u90e8\u8fbe\u6210&#xff0c;\u5982\u679c\u8981\u5173\u95ed\u865a\u62df\u673a&#xff0c;\u8bf7\u5148\u5173\u95ednode2\u548cnode3&#xff0c;\u518d\u5173\u95ednode1&#xff0c;\u5f00\u542f\u65f6\u987a\u5e8f\u76f8\u53cd<\/p>\n","protected":false},"excerpt":{"rendered":"<p>\u5148\u5bfc&#xff1a;<br \/>\n\u76ee\u5f55<br \/>\n\u5148\u5bfc&#xff1a;<br \/>\n\u672c\u671f\u76ee\u6807&#xff1a;<br \/>\n\u63d0\u524d\u51c6\u5907&#xff1a;<br \/>\n\u9ad8\u4eae\u63d0\u793a&#xff1a;<br \/>\n\u4e00\u3001\u914d\u7f6e\u865a\u62df\u673a 1. \u5b89\u88c5\u865a\u62df\u673a 2. \u914d\u7f6e\u7f51\u7edc\u53ca\u865a\u62df\u673a\u53c2\u6570<br \/>\n\u200b\u7f16\u8f91\u4e8c\u3001Ansible\u73af\u5883\u7684\u90e8\u7f72\u53ca\u96c6\u7fa4SSH\u514d\u5bc6<br \/>\n1. \u7f51\u7edc\u6d4b\u8bd5<br \/>\n2. \u5b89\u88c5\u57fa\u7840\u5305\u548c\u914d\u7f6eSSH\u4e92\u4fe1<br \/>\n\u4e09\u3001\u00a0\u521b\u5efaAnsible\u9879\u76ee\u6587\u4ef6 1. \u521b\u5efaAnsible Playbook\u76ee\u5f55\u53ca\u57fa\u672c\u6587\u4ef6&#xff1a; 2. \u521b\u5efaAnsible\u89d2\u8272\u76f8\u5173\u6587\u4ef6<br \/>\n\u200b\u7f16\u8f91<br \/>\n3.\u65f6\u949f\u540c<\/p>\n","protected":false},"author":2,"featured_media":75538,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[1],"tags":[27,120,58,763,50,44],"topic":[],"class_list":["post-75558","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-server","tag-docker","tag-kubernetes","tag-linux","tag-763","tag-50","tag-44"],"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v20.3 - https:\/\/yoast.com\/wordpress\/plugins\/seo\/ -->\n<title>SRE AI Agent \u5f00\u53d1\u590d\u76d8\u53ca\u5c0f\u767d\u5411\u6559\u7a0b (\u4e00) \u9879\u76ee\u73af\u5883\u642d\u5efa - \u7f51\u7855\u4e92\u8054\u5e2e\u52a9\u4e2d\u5fc3<\/title>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/www.wsisp.com\/helps\/75558.html\" \/>\n<meta property=\"og:locale\" content=\"zh_CN\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"SRE AI Agent \u5f00\u53d1\u590d\u76d8\u53ca\u5c0f\u767d\u5411\u6559\u7a0b (\u4e00) \u9879\u76ee\u73af\u5883\u642d\u5efa - \u7f51\u7855\u4e92\u8054\u5e2e\u52a9\u4e2d\u5fc3\" \/>\n<meta property=\"og:description\" content=\"\u5148\u5bfc&#xff1a; \u76ee\u5f55 \u5148\u5bfc&#xff1a; \u672c\u671f\u76ee\u6807&#xff1a; \u63d0\u524d\u51c6\u5907&#xff1a; \u9ad8\u4eae\u63d0\u793a&#xff1a; \u4e00\u3001\u914d\u7f6e\u865a\u62df\u673a 1. \u5b89\u88c5\u865a\u62df\u673a 2. \u914d\u7f6e\u7f51\u7edc\u53ca\u865a\u62df\u673a\u53c2\u6570 \u200b\u7f16\u8f91\u4e8c\u3001Ansible\u73af\u5883\u7684\u90e8\u7f72\u53ca\u96c6\u7fa4SSH\u514d\u5bc6 1. \u7f51\u7edc\u6d4b\u8bd5 2. \u5b89\u88c5\u57fa\u7840\u5305\u548c\u914d\u7f6eSSH\u4e92\u4fe1 \u4e09\u3001\u00a0\u521b\u5efaAnsible\u9879\u76ee\u6587\u4ef6 1. \u521b\u5efaAnsible Playbook\u76ee\u5f55\u53ca\u57fa\u672c\u6587\u4ef6&#xff1a; 2. \u521b\u5efaAnsible\u89d2\u8272\u76f8\u5173\u6587\u4ef6 \u200b\u7f16\u8f91 3.\u65f6\u949f\u540c\" \/>\n<meta property=\"og:url\" content=\"https:\/\/www.wsisp.com\/helps\/75558.html\" \/>\n<meta property=\"og:site_name\" content=\"\u7f51\u7855\u4e92\u8054\u5e2e\u52a9\u4e2d\u5fc3\" \/>\n<meta property=\"article:published_time\" content=\"2026-02-12T07:11:15+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/www.wsisp.com\/helps\/wp-content\/uploads\/2026\/02\/20260212071103-698d7d071f58f.png\" \/>\n<meta name=\"author\" content=\"admin\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:label1\" content=\"\u4f5c\u8005\" \/>\n\t<meta name=\"twitter:data1\" content=\"admin\" \/>\n\t<meta name=\"twitter:label2\" content=\"\u9884\u8ba1\u9605\u8bfb\u65f6\u95f4\" \/>\n\t<meta name=\"twitter:data2\" content=\"6 \u5206\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\/\/schema.org\",\"@graph\":[{\"@type\":\"WebPage\",\"@id\":\"https:\/\/www.wsisp.com\/helps\/75558.html\",\"url\":\"https:\/\/www.wsisp.com\/helps\/75558.html\",\"name\":\"SRE AI Agent \u5f00\u53d1\u590d\u76d8\u53ca\u5c0f\u767d\u5411\u6559\u7a0b (\u4e00) \u9879\u76ee\u73af\u5883\u642d\u5efa - \u7f51\u7855\u4e92\u8054\u5e2e\u52a9\u4e2d\u5fc3\",\"isPartOf\":{\"@id\":\"https:\/\/www.wsisp.com\/helps\/#website\"},\"datePublished\":\"2026-02-12T07:11:15+00:00\",\"dateModified\":\"2026-02-12T07:11:15+00:00\",\"author\":{\"@id\":\"https:\/\/www.wsisp.com\/helps\/#\/schema\/person\/358e386c577a3ab51c4493330a20ad41\"},\"breadcrumb\":{\"@id\":\"https:\/\/www.wsisp.com\/helps\/75558.html#breadcrumb\"},\"inLanguage\":\"zh-Hans\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\/\/www.wsisp.com\/helps\/75558.html\"]}]},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\/\/www.wsisp.com\/helps\/75558.html#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"\u9996\u9875\",\"item\":\"https:\/\/www.wsisp.com\/helps\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"SRE AI Agent \u5f00\u53d1\u590d\u76d8\u53ca\u5c0f\u767d\u5411\u6559\u7a0b (\u4e00) \u9879\u76ee\u73af\u5883\u642d\u5efa\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\/\/www.wsisp.com\/helps\/#website\",\"url\":\"https:\/\/www.wsisp.com\/helps\/\",\"name\":\"\u7f51\u7855\u4e92\u8054\u5e2e\u52a9\u4e2d\u5fc3\",\"description\":\"\u9999\u6e2f\u670d\u52a1\u5668_\u9999\u6e2f\u4e91\u670d\u52a1\u5668\u8d44\u8baf_\u670d\u52a1\u5668\u5e2e\u52a9\u6587\u6863_\u670d\u52a1\u5668\u6559\u7a0b\",\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\/\/www.wsisp.com\/helps\/?s={search_term_string}\"},\"query-input\":\"required name=search_term_string\"}],\"inLanguage\":\"zh-Hans\"},{\"@type\":\"Person\",\"@id\":\"https:\/\/www.wsisp.com\/helps\/#\/schema\/person\/358e386c577a3ab51c4493330a20ad41\",\"name\":\"admin\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"zh-Hans\",\"@id\":\"https:\/\/www.wsisp.com\/helps\/#\/schema\/person\/image\/\",\"url\":\"https:\/\/gravatar.wp-china-yes.net\/avatar\/?s=96&d=mystery\",\"contentUrl\":\"https:\/\/gravatar.wp-china-yes.net\/avatar\/?s=96&d=mystery\",\"caption\":\"admin\"},\"sameAs\":[\"http:\/\/wp.wsisp.com\"],\"url\":\"https:\/\/www.wsisp.com\/helps\/author\/admin\"}]}<\/script>\n<!-- \/ Yoast SEO plugin. -->","yoast_head_json":{"title":"SRE AI Agent \u5f00\u53d1\u590d\u76d8\u53ca\u5c0f\u767d\u5411\u6559\u7a0b (\u4e00) \u9879\u76ee\u73af\u5883\u642d\u5efa - \u7f51\u7855\u4e92\u8054\u5e2e\u52a9\u4e2d\u5fc3","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/www.wsisp.com\/helps\/75558.html","og_locale":"zh_CN","og_type":"article","og_title":"SRE AI Agent \u5f00\u53d1\u590d\u76d8\u53ca\u5c0f\u767d\u5411\u6559\u7a0b (\u4e00) \u9879\u76ee\u73af\u5883\u642d\u5efa - \u7f51\u7855\u4e92\u8054\u5e2e\u52a9\u4e2d\u5fc3","og_description":"\u5148\u5bfc&#xff1a; \u76ee\u5f55 \u5148\u5bfc&#xff1a; \u672c\u671f\u76ee\u6807&#xff1a; \u63d0\u524d\u51c6\u5907&#xff1a; \u9ad8\u4eae\u63d0\u793a&#xff1a; \u4e00\u3001\u914d\u7f6e\u865a\u62df\u673a 1. \u5b89\u88c5\u865a\u62df\u673a 2. \u914d\u7f6e\u7f51\u7edc\u53ca\u865a\u62df\u673a\u53c2\u6570 \u200b\u7f16\u8f91\u4e8c\u3001Ansible\u73af\u5883\u7684\u90e8\u7f72\u53ca\u96c6\u7fa4SSH\u514d\u5bc6 1. \u7f51\u7edc\u6d4b\u8bd5 2. \u5b89\u88c5\u57fa\u7840\u5305\u548c\u914d\u7f6eSSH\u4e92\u4fe1 \u4e09\u3001\u00a0\u521b\u5efaAnsible\u9879\u76ee\u6587\u4ef6 1. \u521b\u5efaAnsible Playbook\u76ee\u5f55\u53ca\u57fa\u672c\u6587\u4ef6&#xff1a; 2. \u521b\u5efaAnsible\u89d2\u8272\u76f8\u5173\u6587\u4ef6 \u200b\u7f16\u8f91 3.\u65f6\u949f\u540c","og_url":"https:\/\/www.wsisp.com\/helps\/75558.html","og_site_name":"\u7f51\u7855\u4e92\u8054\u5e2e\u52a9\u4e2d\u5fc3","article_published_time":"2026-02-12T07:11:15+00:00","og_image":[{"url":"https:\/\/www.wsisp.com\/helps\/wp-content\/uploads\/2026\/02\/20260212071103-698d7d071f58f.png"}],"author":"admin","twitter_card":"summary_large_image","twitter_misc":{"\u4f5c\u8005":"admin","\u9884\u8ba1\u9605\u8bfb\u65f6\u95f4":"6 \u5206"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"WebPage","@id":"https:\/\/www.wsisp.com\/helps\/75558.html","url":"https:\/\/www.wsisp.com\/helps\/75558.html","name":"SRE AI Agent \u5f00\u53d1\u590d\u76d8\u53ca\u5c0f\u767d\u5411\u6559\u7a0b (\u4e00) \u9879\u76ee\u73af\u5883\u642d\u5efa - \u7f51\u7855\u4e92\u8054\u5e2e\u52a9\u4e2d\u5fc3","isPartOf":{"@id":"https:\/\/www.wsisp.com\/helps\/#website"},"datePublished":"2026-02-12T07:11:15+00:00","dateModified":"2026-02-12T07:11:15+00:00","author":{"@id":"https:\/\/www.wsisp.com\/helps\/#\/schema\/person\/358e386c577a3ab51c4493330a20ad41"},"breadcrumb":{"@id":"https:\/\/www.wsisp.com\/helps\/75558.html#breadcrumb"},"inLanguage":"zh-Hans","potentialAction":[{"@type":"ReadAction","target":["https:\/\/www.wsisp.com\/helps\/75558.html"]}]},{"@type":"BreadcrumbList","@id":"https:\/\/www.wsisp.com\/helps\/75558.html#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"\u9996\u9875","item":"https:\/\/www.wsisp.com\/helps"},{"@type":"ListItem","position":2,"name":"SRE AI Agent \u5f00\u53d1\u590d\u76d8\u53ca\u5c0f\u767d\u5411\u6559\u7a0b (\u4e00) \u9879\u76ee\u73af\u5883\u642d\u5efa"}]},{"@type":"WebSite","@id":"https:\/\/www.wsisp.com\/helps\/#website","url":"https:\/\/www.wsisp.com\/helps\/","name":"\u7f51\u7855\u4e92\u8054\u5e2e\u52a9\u4e2d\u5fc3","description":"\u9999\u6e2f\u670d\u52a1\u5668_\u9999\u6e2f\u4e91\u670d\u52a1\u5668\u8d44\u8baf_\u670d\u52a1\u5668\u5e2e\u52a9\u6587\u6863_\u670d\u52a1\u5668\u6559\u7a0b","potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/www.wsisp.com\/helps\/?s={search_term_string}"},"query-input":"required name=search_term_string"}],"inLanguage":"zh-Hans"},{"@type":"Person","@id":"https:\/\/www.wsisp.com\/helps\/#\/schema\/person\/358e386c577a3ab51c4493330a20ad41","name":"admin","image":{"@type":"ImageObject","inLanguage":"zh-Hans","@id":"https:\/\/www.wsisp.com\/helps\/#\/schema\/person\/image\/","url":"https:\/\/gravatar.wp-china-yes.net\/avatar\/?s=96&d=mystery","contentUrl":"https:\/\/gravatar.wp-china-yes.net\/avatar\/?s=96&d=mystery","caption":"admin"},"sameAs":["http:\/\/wp.wsisp.com"],"url":"https:\/\/www.wsisp.com\/helps\/author\/admin"}]}},"_links":{"self":[{"href":"https:\/\/www.wsisp.com\/helps\/wp-json\/wp\/v2\/posts\/75558","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.wsisp.com\/helps\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.wsisp.com\/helps\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.wsisp.com\/helps\/wp-json\/wp\/v2\/users\/2"}],"replies":[{"embeddable":true,"href":"https:\/\/www.wsisp.com\/helps\/wp-json\/wp\/v2\/comments?post=75558"}],"version-history":[{"count":0,"href":"https:\/\/www.wsisp.com\/helps\/wp-json\/wp\/v2\/posts\/75558\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/www.wsisp.com\/helps\/wp-json\/wp\/v2\/media\/75538"}],"wp:attachment":[{"href":"https:\/\/www.wsisp.com\/helps\/wp-json\/wp\/v2\/media?parent=75558"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.wsisp.com\/helps\/wp-json\/wp\/v2\/categories?post=75558"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.wsisp.com\/helps\/wp-json\/wp\/v2\/tags?post=75558"},{"taxonomy":"topic","embeddable":true,"href":"https:\/\/www.wsisp.com\/helps\/wp-json\/wp\/v2\/topic?post=75558"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}