{"id":2013,"date":"2020-08-22T16:00:18","date_gmt":"2020-08-22T08:00:18","guid":{"rendered":"http:\/\/blog.ywdevops.cn\/?p=2013"},"modified":"2026-11-04T09:59:23","modified_gmt":"2026-11-04T01:59:23","slug":"ansible","status":"publish","type":"post","link":"https:\/\/blog.ywdevops.cn\/index.php\/2020\/08\/22\/ansible\/","title":{"rendered":"ansible\u90e8\u7f72\u4ee5\u53ca\u5e38\u7528\u6a21\u5757"},"content":{"rendered":"\n<p class=\"wp-block-paragraph\"> ansible\u662f\u65b0\u51fa\u73b0\u7684\u81ea\u52a8\u5316\u8fd0\u7ef4\u5de5\u5177\uff0c\u57fa\u4e8ePython\u5f00\u53d1\uff0c\u96c6\u5408\u4e86\u4f17\u591a\u8fd0\u7ef4\u5de5\u5177\uff08puppet\u3001cfengine\u3001chef\u3001func\u3001fabric\uff09\u7684\u4f18\u70b9\uff0c\u5b9e\u73b0\u4e86\u6279\u91cf\u7cfb\u7edf\u914d\u7f6e\u3001\u6279\u91cf\u7a0b\u5e8f\u90e8\u7f72\u3001\u6279\u91cf\u8fd0\u884c\u547d\u4ee4\u7b49\u529f\u80fd\u3002ansible\u662f\u57fa\u4e8e\u6a21\u5757\u5de5\u4f5c\u7684\uff0c\u672c\u8eab\u6ca1\u6709\u6279\u91cf\u90e8\u7f72\u7684\u80fd\u529b\u3002\u771f\u6b63\u5177\u6709\u6279\u91cf\u90e8\u7f72\u7684\u662fansible\u6240\u8fd0\u884c\u7684\u6a21\u5757\uff0cansible\u53ea\u662f\u63d0\u4f9b\u4e00\u79cd\u6846\u67b6\u3002\u4e3b\u8981\u5305\u62ec\uff1a <\/p>\n\n\n\n<ol class=\"wp-block-list\">\n<li> \u8fde\u63a5\u63d2\u4ef6connection plugins\uff1a\u8d1f\u8d23\u548c\u88ab\u76d1\u63a7\u7aef\u5b9e\u73b0\u901a\u4fe1\uff1b <\/li>\n\n\n\n<li> host inventory\uff1a\u6307\u5b9a\u64cd\u4f5c\u7684\u4e3b\u673a\uff0c\u662f\u4e00\u4e2a\u914d\u7f6e\u6587\u4ef6\u91cc\u9762\u5b9a\u4e49\u8981\u64cd\u4f5c\u7684\u4e3b\u673a\uff1b <\/li>\n\n\n\n<li> \u5404\u79cd\u6a21\u5757\u6838\u5fc3\u6a21\u5757\u3001command\u6a21\u5757\u3001shell\u6a21\u5757\u3001\u81ea\u5b9a\u4e49\u6a21\u5757\uff1b <\/li>\n\n\n\n<li> \u501f\u52a9\u4e8e\u63d2\u4ef6\u5b8c\u6210\u8bb0\u5f55\u65e5\u5fd7\u90ae\u4ef6\u7b49\u529f\u80fd\uff1bplaybook\uff1a\u5267\u672c\u6267\u884c\u591a\u4e2a\u4efb\u52a1\u65f6\uff0c\u975e\u5fc5\u9700\u53ef\u4ee5\u8ba9\u8282\u70b9\u4e00\u6b21\u6027\u8fd0\u884c\u591a\u4e2a\u4efb\u52a1\u3002 <\/li>\n<\/ol>\n\n\n\n<figure class=\"wp-block-image size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"745\" height=\"458\" src=\"http:\/\/blog.ywdevops.cn\/wp-content\/uploads\/2020\/08\/5.png\" alt=\"\" class=\"wp-image-2015\" srcset=\"https:\/\/blog.ywdevops.cn\/wp-content\/uploads\/2020\/08\/5.png 745w, https:\/\/blog.ywdevops.cn\/wp-content\/uploads\/2020\/08\/5-300x184.png 300w, https:\/\/blog.ywdevops.cn\/wp-content\/uploads\/2020\/08\/5-600x369.png 600w\" sizes=\"auto, (max-width: 745px) 100vw, 745px\" \/><\/figure>\n\n\n\n<p class=\"wp-block-paragraph\">\u5b98\u7f51\u5730\u5740\uff1a<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>https:&#47;&#47;docs.ansible.com\/<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">\u4e8c\u8fdb\u5236\u6587\u4ef6\u4e0b\u8f7d\u5730\u5740\uff1a<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>https:&#47;&#47;releases.ansible.com\/ansible\/<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">\u53c2\u8003\u6587\u6863\uff1a<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>http:&#47;&#47;www.ansible.com.cn\/docs<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">\u73af\u5883\u51c6\u5907\uff1a<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">\u4e3b\u63a7\u7aef\uff1a192.168.170.132   centos7\u7cfb\u7edf\uff0c<strong><mark style=\"background-color:rgba(0, 0, 0, 0)\" class=\"has-inline-color has-vivid-red-color\">\u8981\u5b89\u88c5Python\uff0c\u5426\u5219\u4f1a\u5931\u8d25<\/mark><\/strong><\/p>\n\n\n\n<p class=\"wp-block-paragraph\">\u88ab\u63a7\u7aef\uff1a192.168.170.134   centos7\u7cfb\u7edf\uff0c<mark style=\"background-color:rgba(0, 0, 0, 0)\" class=\"has-inline-color has-vivid-red-color\"><strong>\u8981\u5b89\u88c5Python\uff0c\u5426\u5219\u4f1a\u5931\u8d25<\/strong><\/mark><\/p>\n\n\n\n<p class=\"wp-block-paragraph\">\u88ab\u63a7\u7aef\uff1a192.168.170.135   centos7\u7cfb\u7edf\uff0c<strong><mark style=\"background-color:rgba(0, 0, 0, 0)\" class=\"has-inline-color has-vivid-red-color\">\u8981\u5b89\u88c5Python\uff0c\u5426\u5219\u4f1a\u5931\u8d25<\/mark><\/strong><\/p>\n\n\n\n<p class=\"has-medium-font-size wp-block-paragraph\"><strong>\u5b89\u88c5\uff1a<\/strong><\/p>\n\n\n\n<p class=\"wp-block-paragraph\">1\u3001\u9996\u5148\u5728\u4e3b\u63a7\u7aef\u5b89\u88c5ansible(\u88ab\u63a7\u7aef\u4e0d\u9700\u8981\u5b89\u88c5),\u53ef\u901a\u8fc7yum\u8fdb\u884c\u5b89\u88c5\uff0c\u547d\u4ee4\u5982\u4e0b\uff1a<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>yum -y install ansible  \u6216\u8005 apt install ansible-core<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">2\u3001\u5728\u4e3b\u63a7\u7aef\u914d\u7f6e\u5230\u88ab\u63a7\u7aef\u7684ssh\u514d\u5bc6\u767b\u5f55\uff0c\u901a\u8fc7ssh-keygen\u4e0essh-copy-id\u6765\u5b9e\u73b0\u5feb\u901f\u8bc1\u4e66\u7684\u751f\u6210\u4ee5\u53ca\u4e0b\u53d1<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">\u65b9\u6cd5\u4e00\uff1a<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">\u9996\u5148\u5728\u4e3b\u63a7\u7aef\u6267\u884c\u547d\u4ee4ssh-keygen\u547d\u4ee4\uff0c\u5728.ssh\u76ee\u5f55\u4e0b\u751f\u6210\u4e00\u5bf9\u5bc6\u94a5\uff0c\u7136\u540e\u901a\u8fc7ssh-copy-id   192.168.170.134\/135\uff0c\u7136\u540e\u8f93\u5165\u5bc6\u7801\u5c06\u516c\u94a5\u4e0b\u53d1\u7684\u88ab\u63a7\u7aef\uff0c\u6700\u540e\u901a\u8fc7ssh 192.168.170.134\/192.168.170.135\u6d4b\u8bd5\u662f\u5426\u53ef\u4ee5\u767b\u5f55\u3002<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">\u65b9\u6cd5\u4e8c\uff1a<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">\u901a\u8fc7\u7f16\u5199shell\u811a\u672c\u6765\u5b9e\u73b0\u81ea\u52a8\u4e0b\u53d1\u516c\u94a5\uff0c\u811a\u672c\u5185\u5bb9\u5982\u4e0b\uff1a<\/p>\n\n\n\n<figure class=\"wp-block-image size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"600\" height=\"301\" src=\"http:\/\/blog.ywdevops.cn\/wp-content\/uploads\/2020\/08\/6-1.png\" alt=\"\" class=\"wp-image-2037\" srcset=\"https:\/\/blog.ywdevops.cn\/wp-content\/uploads\/2020\/08\/6-1.png 600w, https:\/\/blog.ywdevops.cn\/wp-content\/uploads\/2020\/08\/6-1-300x151.png 300w\" sizes=\"auto, (max-width: 600px) 100vw, 600px\" \/><\/figure>\n\n\n\n<p class=\"wp-block-paragraph\">\u4e0a\u56fe\u4e2d\u7684ip.txt\u5185\u5bb9\u5982\u4e0b\uff1a<\/p>\n\n\n\n<figure class=\"wp-block-image size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"571\" height=\"111\" src=\"http:\/\/blog.ywdevops.cn\/wp-content\/uploads\/2020\/08\/7-1.png\" alt=\"\" class=\"wp-image-2038\" srcset=\"https:\/\/blog.ywdevops.cn\/wp-content\/uploads\/2020\/08\/7-1.png 571w, https:\/\/blog.ywdevops.cn\/wp-content\/uploads\/2020\/08\/7-1-300x58.png 300w\" sizes=\"auto, (max-width: 571px) 100vw, 571px\" \/><\/figure>\n\n\n\n<p class=\"has-luminous-vivid-amber-background-color has-background wp-block-paragraph\">\u4e0a\u56fe\u4e2d\u5b9e\u73b0\u81ea\u52a8\u4ea4\u4e92\u8f93\u5165\u5bc6\u7801\u4e3b\u8981\u901a\u8fc7expect\u547d\u4ee4\u5b9e\u73b0\uff0c\u901a\u8fc7for\u5faa\u73af\u904d\u5386\u6587\u4ef6ip.txt\u4e2d\u7684\u5185\u5bb9\u3002<\/p>\n\n\n\n<p class=\"has-text-align-center wp-block-paragraph\"><strong><mark style=\"background-color:rgba(0, 0, 0, 0)\" class=\"has-inline-color has-palette-color-2-color\">\u4f7f\u7528<\/mark><\/strong><\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><strong><mark style=\"background-color:rgba(0, 0, 0, 0);color:#cf2e2e\" class=\"has-inline-color\">\u8001\u7248\u672cAnsible\uff1a<\/mark><\/strong>ansible\u901a\u8fc7\u5b9a\u4e49\u597d\u7684\u4e3b\u673a\u4e0e\u7ec4\u89c4\u5219\u5bf9\u5339\u914d\u7684\u76ee\u6807\u4e3b\u673a\u8fdb\u884c\u8fdc\u7a0b\u64cd\u4f5c\uff0c\u8001\u7248\u672c\u7684ansible\u914d\u7f6e\u6587\u4ef6\u9ed8\u8ba4\u8def\u5f84\u662f\/etc\/ansible\/hosts\uff08\/etc\/ansible\/ansible.cfg\u4e2d\u6307\u5b9a\u7684\u9ed8\u8ba4\u8def\u5f84\uff09<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">\u7f16\u8f91\u6587\u4ef6\uff0c\u6dfb\u52a0\u914d\u7f6e\u5982\u4e0b\uff1a<\/p>\n\n\n\n<figure class=\"wp-block-image size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"600\" height=\"266\" src=\"http:\/\/blog.ywdevops.cn\/wp-content\/uploads\/2020\/08\/8-2.png\" alt=\"\" class=\"wp-image-2040\" srcset=\"https:\/\/blog.ywdevops.cn\/wp-content\/uploads\/2020\/08\/8-2.png 600w, https:\/\/blog.ywdevops.cn\/wp-content\/uploads\/2020\/08\/8-2-300x133.png 300w\" sizes=\"auto, (max-width: 600px) 100vw, 600px\" \/><\/figure>\n\n\n\n<p class=\"has-luminous-vivid-amber-background-color has-background wp-block-paragraph\">\u4e0a\u56fe\u4e2d\u7684\u4e3b\u673a\u53ef\u4ee5\u4f7f\u7528\u57df\u540d\u3001IP\u3001\u522b\u540d\u8fdb\u884c\u6807\u8bc6\uff0c\u5176\u4e2dwebservers\u4e3a\u7ec4\u540d\uff0c\u540e\u9762\u8ddf\u7740\u7684\u4e3b\u673a\u4e3a\u5176\u6210\u5458\uff0c\u7ec4\u4e2d\u7684\u6210\u5458\u4e5f\u53ef\u4ee5\u4f7f\u7528\u57df\u540d\u3001IP\u3001\u522b\u540d\u8fdb\u884c\u6807\u8bc6\u3002\u5982\u679c\u5b9a\u4e49\u4e00\u4e2a192.168.170.135:8000\u8868\u793a\u5b9a\u4e49\u4e00\u4e2aSSH\u670d\u52a1\u7aef\u53e3\u4e3a8000\u7684\u4e3b\u673a<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">\u6d4b\u8bd5\uff1a<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">\u5728192.168.170.132\u673a\u5668\u4e0a\uff0c\u6267\u884c\u547d\u4ee4\uff0c\u6d4b\u8bd5ansible\uff0c\u5982\u56fe\uff1a<\/p>\n\n\n\n<figure class=\"wp-block-image size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"627\" height=\"183\" src=\"http:\/\/blog.ywdevops.cn\/wp-content\/uploads\/2020\/08\/12-2.png\" alt=\"\" class=\"wp-image-2047\" srcset=\"https:\/\/blog.ywdevops.cn\/wp-content\/uploads\/2020\/08\/12-2.png 627w, https:\/\/blog.ywdevops.cn\/wp-content\/uploads\/2020\/08\/12-2-300x88.png 300w, https:\/\/blog.ywdevops.cn\/wp-content\/uploads\/2020\/08\/12-2-600x175.png 600w\" sizes=\"auto, (max-width: 627px) 100vw, 627px\" \/><\/figure>\n\n\n\n<p class=\"has-luminous-vivid-amber-background-color has-background wp-block-paragraph\">\u4e0a\u56fe\u4e2dwebservers\u8868\u793a\u7ec4\uff0c\u5728\/etc\/ansible\/hosts\u4e2d\u5b9a\u4e49\u7684\uff0c-a\u540e\u9762\u63a5\u4e3b\u8981\u63a5\u6a21\u5757\u53c2\u6570\uff0c-m\u540e\u9762\u63a5\u6a21\u5757\u540d<\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><strong><mark style=\"background-color:rgba(0, 0, 0, 0);color:#cf2e2e\" class=\"has-inline-color\">\u65b0\u7248 Ansible\uff1a<\/mark><\/strong>Ubuntu\/Debian \u7684 <code>ansible<\/code> \u4ece <strong>Ansible 2.12+\uff08ansible-core\uff09<\/strong>\u200b \u5f00\u59cb\u5305\u9075\u5faa\u201c\u6700\u5c0f\u4fb5\u5165\u201d\u539f\u5219\uff1a\u4e0d\u81ea\u52a8\u5efa\u76ee\u5f55\u3001\u4e0d\u5199\u7a7a\u914d\u7f6e\uff0cDebian \/ Ubuntu \u5b98\u65b9\u5305 <strong>\u4e0d\u518d\u81ea\u52a8\u751f\u6210<\/strong>\uff1a<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>\/etc\/ansible<\/li>\n\n\n\n<li>\/etc\/ansible\/ansible.cfg<\/li>\n\n\n\n<li>\/etc\/ansible\/hosts<\/li>\n<\/ul>\n\n\n\n<p class=\"wp-block-paragraph\">\u539f\u56e0\u53ea\u6709\u4e00\u4e2a\uff1a\u907f\u514d\u9690\u5f0f\u914d\u7f6e\uff0c\u5f3a\u5236\u7528\u6237\u660e\u786e\u81ea\u5df1\u7684\u73af\u5883\uff0c\u867d\u7136\u4e0d\u521b\u5efaansible.cfg\uff0c\u4e5f\u4e0d\u5f71\u54cd\u4f7f\u7528\uff0c\u53ea\u662f\u6ca1\u90a3\u4e48\u65b9\u4fbf\uff0c\u5b98\u65b9\u63a8\u8350\u91c7\u7528\u9879\u76ee\u7ea7\u65b9\u5f0f\u6765\u4f7f\u7528ansible\uff0c\u521b\u5efa\u9879\u76ee\u76ee\u5f55\uff0c\u5982\u4e0b\uff1a<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>mkdir \/data\/ansible  &amp;&amp; cd ansible-demo<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">\u5728\u9879\u76ee\u76ee\u5f55\u4e0b\u5b9a\u4e49ansible.cfg\u6587\u4ef6\uff0c\u5199\u5165\u6587\u4ef6\u5185\u5bb9\uff0c\u5982\u4e0b\uff1a<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>cat > ansible.cfg &lt;&lt;EOF\n\n# ============================================================\n# Ansible \u4e3b\u914d\u7f6e\u6587\u4ef6\uff08\u9879\u76ee\u7ea7\uff09\n# \u4f5c\u7528\u8303\u56f4\uff1a\u5f53\u524d\u76ee\u5f55\u53ca\u5176\u5b50\u76ee\u5f55\u4e0b\u7684\u6240\u6709 ansible \/ ansible-playbook \u547d\u4ee4\n# \u4f18\u5148\u7ea7\uff1aANSIBLE_CONFIG > .\/ansible.cfg > ~\/.ansible.cfg > \/etc\/ansible\/ansible.cfg\n# ============================================================\n\n\n&#91;defaults]\n# ------------------------------------------------------------\n# 1. Inventory\uff08\u673a\u5668\u6e05\u5355\uff09\n# ------------------------------------------------------------\n# \u53ef\u4ee5\u662f\uff1a\n#   - \u5355\u4e2a\u6587\u4ef6\uff1a.\/hosts\n#   - \u76ee\u5f55\uff08\u63a8\u8350\uff09\uff1a.\/inventory\/\n#   - \u591a\u4e2a\u6765\u6e90\uff1a.\/hosts,.\/inventory\/production\n#\n# \u751f\u4ea7\u5efa\u8bae\uff1a\u7528\u76ee\u5f55\uff0c\u6309\u73af\u5883\u62c6\u5206\ninventory = .\/inventory\/production\n\n# ------------------------------------------------------------\n# 2. \u5e76\u53d1\u4e0e\u6027\u80fd\uff08\u751f\u4ea7\u5fc5\u8c03\uff09\n# ------------------------------------------------------------\n# \u540c\u65f6\u8fde\u63a5\u591a\u5c11\u53f0\u4e3b\u673a\uff08\u9ed8\u8ba4 5\uff0c\u751f\u4ea7\u5efa\u8bae 20~50\uff09\nforks = 20\n\n# SSH \/ \u8fde\u63a5\u8d85\u65f6\u65f6\u95f4\uff08\u79d2\uff09\ntimeout = 10\n\n# \u6bcf\u4e2a\u4efb\u52a1\u6700\u591a\u91cd\u8bd5\u51e0\u6b21\uff08\u9ed8\u8ba4 3\uff09\n# \u7f51\u7edc\u6296\u52a8\u573a\u666f\u53ef\u9002\u5f53\u63d0\u9ad8\nretries = 2\n\n# ------------------------------------------------------------\n# 3. SSH \u884c\u4e3a\n# ------------------------------------------------------------\n# \u662f\u5426\u68c0\u67e5\u4e3b\u673a\u6307\u7eb9\uff08\u7b2c\u4e00\u6b21\u8fde\u63a5\u65f6\uff09\n# True  = \u5b89\u5168\uff0c\u4f46\u81ea\u52a8\u5316\u4f1a\u5361\u4f4f\n# False = \u81ea\u52a8\u5316\u53cb\u597d\uff0c\u5185\u7f51\u751f\u4ea7\u5e38\u89c1\u9009\u62e9\nhost_key_checking = False\n\n# SSH \u8fde\u63a5\u590d\u7528\uff08\u5927\u5e45\u63d0\u5347\u6267\u884c\u901f\u5ea6\uff09\nssh_args = -o ControlMaster=auto -o ControlPersist=60s -o PreferredAuthentications=publickey\n\n# \u7ba1\u9053\u6a21\u5f0f\uff08\u51cf\u5c11 Python \u89e3\u91ca\u5668\u62f7\u8d1d\uff0c\u63d0\u5347\u6027\u80fd\uff09\npipelining = True\n\n# ------------------------------------------------------------\n# 4. \u8f93\u51fa\u4e0e\u65e5\u5fd7\n# ------------------------------------------------------------\n# \u8f93\u51fa\u683c\u5f0f\uff08\u63a8\u8350 yaml\uff0c\u6bd4\u9ed8\u8ba4 JSON \u53ef\u8bfb\u6027\u5f3a\uff09\nstdout_callback = yaml\n\n# \u663e\u793a\u4efb\u52a1\u6267\u884c\u65f6\u95f4\uff08\u6392\u67e5\u6162\u4efb\u52a1\u5f88\u6709\u7528\uff09\ncallback_whitelist = timer, yaml\n\n# \u662f\u5426\u663e\u793a\u88ab\u63a7\u7aef\u7684\u5dee\u5f02\uff08diff\uff09\n# \u5bf9\u6587\u4ef6\/\u6a21\u677f\u53d8\u66f4\u975e\u5e38\u6709\u7528\nalways_show_diff = True\n\n# \u65e5\u5fd7\u8def\u5f84\uff08\u751f\u4ea7\u5f3a\u70c8\u5efa\u8bae\u5f00\u542f\uff09\nlog_path = .\/logs\/ansible.log\n\n# ------------------------------------------------------------\n# 5. \u884c\u4e3a\u4e0e\u517c\u5bb9\u6027\n# ------------------------------------------------------------\n# \u662f\u5426\u6536\u96c6 facts\uff08\u7cfb\u7edf\u4fe1\u606f\uff09\n# \u5982\u679c playbook \u4e0d\u9700\u8981 {{ ansible_facts }}\uff0c\u53ef\u8bbe\u4e3a False \u63d0\u901f\ngathering = smart\nfact_caching = jsonfile\nfact_caching_connection = .\/facts_cache\nfact_caching_timeout = 86400\n\n# \u662f\u5426\u521b\u5efa\u5931\u8d25\u91cd\u8bd5\u6587\u4ef6\uff08hosts that failed\uff09\nretry_files_enabled = False\n\n# \u9ed8\u8ba4\u8fdc\u7a0b\u7528\u6237\uff08\u5982\u679c inventory \u91cc\u6ca1\u6307\u5b9a\uff09\nremote_user = ansible\n\n# \u9ed8\u8ba4 SSH \u7aef\u53e3\uff08\u5982\u679c inventory \u91cc\u6ca1\u6307\u5b9a\uff09\n# remote_port = 22\n\n# ------------------------------------------------------------\n# 6. \u5b89\u5168\u4e0e\u6743\u9650\uff08\u9ed8\u8ba4\u63d0\u6743\uff09\n# ------------------------------------------------------------\n# \u9ed8\u8ba4\u4e0d\u5f00\u542f become\uff0c\u7531 playbook \u81ea\u884c\u51b3\u5b9a\n# \u5982\u679c\u4f60\u5e0c\u671b\u5168\u5c40\u9ed8\u8ba4\u63d0\u6743\uff0c\u53d6\u6d88\u4e0b\u9762\u6ce8\u91ca\n# become = True\n# become_method = sudo\n# become_user = root\n\n# ------------------------------------------------------------\n# 7. \u6a21\u5757\u4e0e\u63d2\u4ef6\n# ------------------------------------------------------------\n# \u89d2\u8272\u641c\u7d22\u8def\u5f84\uff08\u591a\u4e2a\u7528\u5192\u53f7\u5206\u9694\uff09\n# roles_path = .\/roles:~\/.ansible\/roles:\/usr\/share\/ansible\/roles\n\n# \u6a21\u5757\u8fc7\u6ee4\uff08\u751f\u4ea7\u5b89\u5168\u52a0\u56fa\u53ef\u9009\uff09\n# \u7981\u6b62\u5371\u9669\u6a21\u5757\uff08\u793a\u4f8b\uff09\n# module_blacklist = shell,command,raw\n\n\n&#91;privilege_escalation]\n# ------------------------------------------------------------\n# \u63d0\u6743\u914d\u7f6e\uff08\u53ef\u88ab playbook \/ task \u7ea7\u522b\u8986\u76d6\uff09\n# ------------------------------------------------------------\n# become = True\n# become_method = sudo\n# become_user = root\n# become_ask_pass = False\n\n\n&#91;ssh_connection]\n# ------------------------------------------------------------\n# SSH \u8fde\u63a5\u4f18\u5316\uff08\u751f\u4ea7\u63a8\u8350\uff09\n# ------------------------------------------------------------\n# \u4f7f\u7528 scp \u800c\u4e0d\u662f sftp\uff08\u67d0\u4e9b\u53d7\u9650\u73af\u5883\u66f4\u7a33\u5b9a\uff09\n# scp_if_ssh = True\n\n# \u63a7\u5236\u6301\u4e45\u5316\u8fde\u63a5\u7684\u7a7a\u95f2\u8d85\u65f6\ncontrol_path = %(directory)s\/%%h-%%r-%%p\n\n# pipelining \u5df2\u5728 &#91;defaults] \u5f00\u542f\uff0c\u8fd9\u91cc\u65e0\u9700\u91cd\u590d\n\n\n&#91;inventory]\n# ------------------------------------------------------------\n# Inventory \u884c\u4e3a\n# ------------------------------------------------------------\n# \u5ffd\u7565\u67d0\u4e9b\u540e\u7f00\u6587\u4ef6\uff08\u907f\u514d\u8bef\u8bfb\u5907\u4efd\u6587\u4ef6\uff09\nignore_files = .git,.bak,~,.retry\n\n# \u542f\u7528 inventory \u63d2\u4ef6\uff082.12+ \u63a8\u8350\uff09\nenable_plugins = host_list,script,auto,yaml,ini,toml\n\n\n&#91;galaxy]\n# ------------------------------------------------------------\n# Ansible Galaxy\n# ------------------------------------------------------------\n# \u79c1\u6709 Galaxy \u670d\u52a1\u5668\uff08\u4f01\u4e1a\u5185\u7f51\uff09\n# server = https:\/\/galaxy.example.com\n\nEOF<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">\u2705 \u4f18\u70b9\uff1a<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>\u4e0d\u6c61\u67d3\u7cfb\u7edf<\/li>\n\n\n\n<li>\u591a\u9879\u76ee\u4e92\u4e0d\u5e72\u6270<\/li>\n\n\n\n<li>\u6700\u9002\u5408\u771f\u5b9e\u8fd0\u7ef4\/CI<\/li>\n<\/ul>\n\n\n\n<p class=\"wp-block-paragraph\">\u68c0\u67e5ansible.cfg\u6587\u4ef6\u7684\u8bed\u6cd5\u662f\u5426\u6b63\u786e\uff0c\u5982\u4e0b\uff1a<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>ansible-config dump --only-changed\nansible all -m setup | head<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">\u65b0\u7248\u672c\u7684Ansible\u5b89\u88c5\u540e\u91c7\u7528\u9879\u76ee\u7ea7\u7684\u914d\u7f6e\u7684\u9879\u76ee\u76ee\u5f55\u7ed3\u6784\u63a8\u8350\u5982\u4e0b\uff1a<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>project\/\n\u251c\u2500\u2500 ansible.cfg\n\u251c\u2500\u2500 inventory\/\n\u2502   \u251c\u2500\u2500 production\/          #\u81ea\u5b9a\u4e49\u540d\u5b57\n\u2502   \u2502   \u251c\u2500\u2500 hosts.yml        #\u53ef\u81ea\u5b9a\u4e49\uff0c\u8868\u793a\u673a\u5668\u6e05\u5355\n\u2502   \u2502   \u2514\u2500\u2500 group_vars\/      #\u7ec4\u7ea7\u522b\u53d8\u91cf\uff0c\u56fa\u5b9a\u8bed\u6cd5\uff0c\u4e0d\u53ef\u81ea\u5b9a\u4e49\n|   |   \u2514\u2500\u2500 host_vars\/       #\u4e3b\u673a\u7ea7\u53d8\u91cf\uff0c\u56fa\u5b9a\u8bed\u6cd5\uff0c\u67d0\u53f0\u673a\u5668\u7684\u7279\u6b8a\u914d\u7f6e\n\u2502   \u2514\u2500\u2500 staging\/\n\u251c\u2500\u2500 playbooks\/\n\u251c\u2500\u2500 roles\/\n\u251c\u2500\u2500 logs\/\n\u2514\u2500\u2500 facts_cache\/<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">\u5982\u679c\u4e3b\u673a\u6e05\u5355\u7684\u6587\u4ef6\u540e\u7f00\u662fyml\uff0c\u90a3\u4e48\u5c31\u8981\u9075\u5faayml\u7684\u8bed\u6cd5\u6765\u5199\uff0c\u5982\u4e0b\uff1a<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>all:                              #\u56fa\u5b9a\u5199\u6cd5\uff0c\u8001\u7248\u672c\u90fd\u662fini\u683c\u5f0f\u7684\n  children:                       #\u56fa\u5b9a\u5199\u6cd5\n    web:                          #\u81ea\u5b9a\u4e49\u540d\u5b57\n      hosts:                      #\u56fa\u5b9a\u5199\u6cd5\n        192.168.1.10:\n        192.168.1.11:\n    db:\n      hosts:\n        192.168.1.20:\n    proxy:\n      hosts:\n        192.168.1.30:<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">\u8fd9\u6587\u4ef6\u53ea\u5e72\u4e00\u4ef6\u4e8b\uff1a<strong>\u544a\u8bc9 Ansible \u6709\u54ea\u4e9b\u673a\u5668\uff0c\u5206\u4e86\u4ec0\u4e48\u7ec4<\/strong><\/p>\n\n\n\n<p class=\"wp-block-paragraph\">inventory\/production\/group_vars\/\u4e0b\u7684\u6587\u4ef6\u540d\u5fc5\u987b\u8ddfhosts.yml\u4e2d\u7ec4\u540d\u4e00\u4e00\u5bf9\u5e94\uff0c\u5426\u5219\u4e0d\u751f\u6548<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>group_vars\/\n\u251c\u2500\u2500 all.yml        # \u6240\u6709\u673a\u5668\u90fd\u751f\u6548\n\u251c\u2500\u2500 web.yml        # \u53ea\u5bf9 web \u7ec4\u751f\u6548\n\u251c\u2500\u2500 db.yml         # \u53ea\u5bf9 db \u7ec4\u751f\u6548\n\u2514\u2500\u2500 proxy.yml      # \u53ea\u5bf9 proxy \u7ec4\u751f\u6548<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">group_vars\/all.yml\uff08\u6240\u6709\u673a\u5668\u901a\u7528\uff09<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>ansible_user: ubuntu          #\u8fdc\u7a0b\u673a\u5668\u7684\u7528\u6237\u540d\nansible_ssh_private_key_file: ~\/.ssh\/id_rsa #\u672c\u5730ansible\u673a\u5668\u79c1\u94a5\uff0c\u516c\u94a5\u8981\u5148\u653e\u5230\u8fdc\u7a0b\u673a\u5668\u7684authorized_keys\u6587\u4ef6\u4e2d\nansible_become: true\nansible_become_method: sudo<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">group_vars\/web.yml\uff08\u53ea\u7ed9 web \u7ec4\uff09<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>http_port: 80\nnginx_worker_processes: 4\napp_env: production<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">\u5de5\u4f5c\u6d41\u7a0b\uff1a<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>1. \u8bfb hosts.yml \u2192 \u627e\u5230 web \u7ec4\u6709 192.168.1.10\u3001192.168.1.11\n2. \u8bfb group_vars\/all.yml \u2192 \u7528 ubuntu \u7528\u6237 + \u5bc6\u94a5 + sudo\n3. \u8bfb group_vars\/web.yml \u2192 \u52a0\u8f7d web \u7ec4\u4e13\u5c5e\u53d8\u91cf\n4. \u8fde\u4e0a\u673a\u5668\uff0c\u6267\u884c\u547d\u4ee4<\/code><\/pre>\n\n\n\n<p class=\"has-text-align-center has-medium-font-size wp-block-paragraph\"><strong><mark style=\"background-color:rgba(0, 0, 0, 0)\" class=\"has-inline-color has-palette-color-2-color\">ansible\u5e38\u7528\u6a21\u5757<\/mark><\/strong><\/p>\n\n\n\n<p class=\"wp-block-paragraph\">\u6a21\u5757\u7528\u6cd5\u53ef\u5728\u547d\u4ee4\u884c\u4f7f\u7528<strong><mark style=\"background-color:rgba(0, 0, 0, 0)\" class=\"has-inline-color has-vivid-purple-color\">ansible-doc -s \u6a21\u5757\u540d<\/mark><\/strong> \u6765\u83b7\u53d6\uff0c\u5982\u56fe\uff1a<\/p>\n\n\n\n<figure class=\"wp-block-image size-full\"><img loading=\"lazy\" decoding=\"async\" width=\"670\" height=\"220\" src=\"https:\/\/blog.ywdevops.cn\/wp-content\/uploads\/2024\/09\/8.jpg\" alt=\"\" class=\"wp-image-17616\" srcset=\"https:\/\/blog.ywdevops.cn\/wp-content\/uploads\/2024\/09\/8.jpg 670w, https:\/\/blog.ywdevops.cn\/wp-content\/uploads\/2024\/09\/8-300x99.jpg 300w, https:\/\/blog.ywdevops.cn\/wp-content\/uploads\/2024\/09\/8-600x197.jpg 600w\" sizes=\"auto, (max-width: 670px) 100vw, 670px\" \/><\/figure>\n\n\n\n<p class=\"wp-block-paragraph\"><mark style=\"background-color:rgba(0, 0, 0, 0)\" class=\"has-inline-color has-vivid-purple-color\"><strong>1\u3001script\u6a21\u5757<\/strong><\/mark><\/p>\n\n\n\n<p class=\"wp-block-paragraph\">\u6a21\u5757\u5305\u62eccommand\u3001script\u3001shell\uff0c\u90fd\u53ef\u4ee5\u5b9e\u73b0\u8fdc\u7a0bshell\u547d\u4ee4\u8fd0\u884c\uff0ccommand\u4f5c\u4e3aansible\u9ed8\u8ba4\u6a21\u5757\uff0c\u53ef\u4ee5\u6267\u884c\u8fdc\u7a0b\u6743\u9650\u8303\u56f4\u7684\u6240\u6709shell\u547d\u4ee4(\u4e5f\u53ef\u4ee5\u6267\u884c\u811a\u672c)\uff0cscript\u529f\u80fd\u662f\u5728\u8fdc\u7a0b\u4e3b\u673a\u4e0a\u6267\u884c<strong><mark style=\"background-color:rgba(0, 0, 0, 0)\" class=\"has-inline-color has-vivid-cyan-blue-color\">\u4e3b\u63a7\u7aef\u5b58\u50a8\u7684shell\u811a<\/mark><mark style=\"background-color:rgba(0, 0, 0, 0)\" class=\"has-inline-color has-vivid-purple-color\">\u672c\u6587\u4ef6<\/mark><\/strong>\uff0c\u76f8\u5f53\u4e8eshell+script\u7ec4\u5408\uff0cshell\u529f\u80fd\u662f\u6267\u884c\u8fdc\u7a0b\u4e3b\u673a\u7684shell\u811a\u672c\u6587\u4ef6\u548c\u547d\u4ee4\u3002<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">\u4f8b\u5982\uff1a\u5728\u8fdc\u7a0b\u4e3b\u673a135\u3001134\u4e0a\u6267\u884c192.168.170.132\u4e0a\u7684\u811a\u672c\u6587\u4ef6test.sh\uff0c\u901a\u8fc7script\u6a21\u5757\uff0c\u5982\u56fe\uff1a<\/p>\n\n\n\n<figure class=\"wp-block-image size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"651\" height=\"254\" src=\"http:\/\/blog.ywdevops.cn\/wp-content\/uploads\/2020\/08\/13-1.png\" alt=\"\" class=\"wp-image-2048\" srcset=\"https:\/\/blog.ywdevops.cn\/wp-content\/uploads\/2020\/08\/13-1.png 651w, https:\/\/blog.ywdevops.cn\/wp-content\/uploads\/2020\/08\/13-1-300x117.png 300w, https:\/\/blog.ywdevops.cn\/wp-content\/uploads\/2020\/08\/13-1-600x234.png 600w\" sizes=\"auto, (max-width: 651px) 100vw, 651px\" \/><\/figure>\n\n\n\n<p class=\"has-luminous-vivid-amber-background-color has-background wp-block-paragraph\">\u6ce8\u610f\uff1ascript\u547d\u4ee4\u8981\u6267\u884c\u7684\u811a\u672c\u662f\u8981\u5728ansible\u7ba1\u7406\u673a\u5668\u4e0a\u7684\uff0c\u4e0d\u662f\u8fdc\u7a0b\u673a\u5668\u4e0a<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">\u5728132\u673a\u5668\u4e0a\u901a\u8fc7ansible\u547d\u4ee4\u5728\u8fdc\u7a0b\u4e3b\u673a\u4e0a\u6267\u884c\u811a\u672ctest.sh\uff0c\u901a\u8fc7shell\u6a21\u5757\uff0c\u5982\u56fe\uff1a<\/p>\n\n\n\n<figure class=\"wp-block-image size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"645\" height=\"169\" src=\"http:\/\/blog.ywdevops.cn\/wp-content\/uploads\/2020\/08\/14-1.png\" alt=\"\" class=\"wp-image-2049\" srcset=\"https:\/\/blog.ywdevops.cn\/wp-content\/uploads\/2020\/08\/14-1.png 645w, https:\/\/blog.ywdevops.cn\/wp-content\/uploads\/2020\/08\/14-1-300x79.png 300w, https:\/\/blog.ywdevops.cn\/wp-content\/uploads\/2020\/08\/14-1-600x157.png 600w\" sizes=\"auto, (max-width: 645px) 100vw, 645px\" \/><\/figure>\n\n\n\n<p class=\"has-luminous-vivid-amber-background-color has-background wp-block-paragraph\">\u6ce8\u610f\uff1ashell\u547d\u4ee4\u8981\u6267\u884c\u7684\u811a\u672c\u662f\u5728\u8fdc\u7a0b\u673a\u5668\u4e0a\u7684\uff0c\u4e0d\u662f\u5728ansible\u7ba1\u7406\u673a\u5668\u4e0a\uff0c\u4e0escript\u4e0d\u540c<\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><mark style=\"background-color:rgba(0, 0, 0, 0)\" class=\"has-inline-color has-vivid-purple-color\"><strong>2\u3001copy\u6a21\u5757<\/strong><\/mark><\/p>\n\n\n\n<p class=\"wp-block-paragraph\">\u4e3b\u8981\u529f\u80fd\u662f\u4ece\u4e3b\u63a7\u7aef\u5411\u76ee\u6807\u673a\u5668\u62f7\u8d1d\u6587\u4ef6\uff0c\u4e0escp\u529f\u80fd\u7c7b\u4f3c\uff0c\u5e38\u89c1\u53c2\u6570\u5982\u4e0b\uff1a<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li> dest\uff1a\u6307\u51fa\u590d\u5236\u6587\u4ef6\u7684\u76ee\u6807\u76ee\u5f55\u4f4d\u7f6e\uff0c\u4f7f\u7528\u7edd\u5bf9\u8def\u5f84\u3002\u5982\u679c\u6e90\u662f\u76ee\u5f55\uff0c\u5219\u76ee\u6807\u4e5f\u8981\u662f\u76ee\u5f55\uff0c\u5982\u679c\u76ee\u6807\u6587\u4ef6\u5df2\u5b58\u5728\uff0c\u4f1a\u8986\u76d6\u539f\u6709\u5185\u5bb9 <\/li>\n\n\n\n<li> src\uff1a\u6307\u51fa\u6e90\u6587\u4ef6\u7684\u8def\u5f84\uff0c\u53ef\u4ee5\u4f7f\u7528\u76f8\u5bf9\u8def\u5f84\u548c\u7edd\u5bf9\u8def\u5f84\uff0c\u652f\u6301\u76f4\u63a5\u6307\u5b9a\u76ee\u5f55\u3002\u5982\u679c\u6e90\u662f\u76ee\u5f55\uff0c\u5219\u76ee\u6807\u4e5f\u8981\u662f\u76ee\u5f55 <\/li>\n\n\n\n<li> mode\uff1a\u6307\u51fa\u590d\u5236\u65f6\uff0c\u76ee\u6807\u6587\u4ef6\u7684\u6743\u9650\uff0c\u53ef\u9009<\/li>\n\n\n\n<li> owner\uff1a\u6307\u51fa\u590d\u5236\u65f6\uff0c\u76ee\u6807\u6587\u4ef6\u7684\u5c5e\u4e3b\uff0c\u53ef\u9009 <\/li>\n\n\n\n<li> group\uff1a\u6307\u51fa\u590d\u5236\u65f6\u76ee\u6807\u6587\u4ef6\u7684\u5c5e\u7ec4\uff0c\u53ef\u9009 <\/li>\n\n\n\n<li> content\uff1a\u6307\u51fa\u590d\u5236\u5230\u76ee\u6807\u4e3b\u673a\u4e0a\u7684\u5185\u5bb9\uff0c\u4e0d\u80fd\u548csrc\u4e00\u8d77\u4f7f\u7528\uff0c\u76f8\u5f53\u4e8e\u590d\u5236content\u6307\u660e\u7684\u6570\u636e\u5230\u76ee\u6807\u6587\u4ef6\u4e2d <\/li>\n\n\n\n<li>force: \u5f53\u8fdc\u7a0b\u4e3b\u673a\u7684\u76ee\u6807\u8def\u5f84\u4e2d\u5df2\u7ecf\u5b58\u5728\u540c\u540d\u6587\u4ef6\uff0c\u5e76\u4e14\u4e0eansible\u4e3b\u673a\u4e2d\u7684\u6587\u4ef6\u5185\u5bb9\u4e0d\u540c\u65f6\uff0c\u662f\u5426\u5f3a\u5236\u8986\u76d6\uff0c\u53ef\u9009\u503c\u6709yes\u548cno<\/li>\n\n\n\n<li>backup: \u5f53\u8fdc\u7a0b\u4e3b\u673a\u7684\u76ee\u6807\u8def\u5f84\u4e2d\u5df2\u7ecf\u5b58\u5728\u540c\u540d\u6587\u4ef6\uff0c\u5e76\u4e14\u4e0eansible\u4e3b\u673a\u4e2d\u7684\u6587\u4ef6\u5185\u5bb9\u4e0d\u540c\u65f6\uff0c\u662f\u5426\u5bf9\u8fdc\u7a0b\u4e3b\u673a\u7684\u6587\u4ef6\u8fdb\u884c\u5907\u4efd,\u53ef\u9009\u503c\u6709yes\u548cno<\/li>\n<\/ul>\n\n\n\n<p class=\"wp-block-paragraph\">\u4f8b\u5982\uff1a\u5c06132\u673a\u5668\u4e0a\u7684root\u76ee\u5f55\u4e0b\u7684copy\u6587\u4ef6\uff0c\u62f7\u8d1d\u5230\u8fdc\u7a0b\u7ec4webservers\u5bf9\u5e94\u4e3b\u673a\u7684\/root\u76ee\u5f55\u4e0b\uff0c\u5e76\u8bbe\u7f6e\u5c5e\u4e3b\u4ee5\u53ca\u5c5e\u7ec4\u4ee5\u53ca\u6587\u4ef6\u6743\u9650\uff0c\u5982\u56fe\uff1a<\/p>\n\n\n\n<figure class=\"wp-block-image size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"661\" height=\"193\" src=\"http:\/\/blog.ywdevops.cn\/wp-content\/uploads\/2020\/08\/15.png\" alt=\"\" class=\"wp-image-2051\" srcset=\"https:\/\/blog.ywdevops.cn\/wp-content\/uploads\/2020\/08\/15.png 661w, https:\/\/blog.ywdevops.cn\/wp-content\/uploads\/2020\/08\/15-300x88.png 300w, https:\/\/blog.ywdevops.cn\/wp-content\/uploads\/2020\/08\/15-600x175.png 600w\" sizes=\"auto, (max-width: 661px) 100vw, 661px\" \/><\/figure>\n\n\n\n<p class=\"wp-block-paragraph\">\u4e0b\u9762\u547d\u4ee4\u662f\u5c06content\u6307\u5b9a\u7684\u5185\u5bb9\u590d\u5236\u5230\u8fdc\u7a0b\u4e3b\u673a\u7684copy.txt\u6587\u4ef6\u4e2d\uff0c\u5982\u4e0b\uff1a<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>#\u6ce8\u610f\uff1a\u8fdc\u7a0b\u4e3b\u673a\u4e0a\u53ea\u80fd\u662f\u6587\u4ef6\uff0c\u56e0\u4e3a\u5185\u5bb9\u4e0d\u53ef\u80fd\u590d\u5236\u5230\u76ee\u5f55\u4e2d\uff0c\u53ea\u80fd\u590d\u5236\u5230\u6587\u4ef6\u4e2d\nansible webservers -m copy -a 'content=\"china guagndong shenzhen\" dest=\/tmp\/copy.txt'<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\"><strong><mark style=\"background-color:rgba(0, 0, 0, 0)\" class=\"has-inline-color has-vivid-purple-color\">3\u3001stat\u6a21\u5757<\/mark><\/strong><\/p>\n\n\n\n<p class=\"wp-block-paragraph\">\u4e3b\u8981\u529f\u80fd\u4e3a\u83b7\u53d6\u8fdc\u7a0b\u6587\u4ef6\u72b6\u6001\u4fe1\u606f\uff0c\u5305\u62ecatime\u3001ctime\u3001mtime\u3001md5\u3001uid\u3001gid\u4fe1\u606f<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">\u4f8b\u5b50\uff1a\u83b7\u53d6\u8fdc\u7a0b\u4e3b\u673a\u7684\u6587\u4ef6test.sh\u7684\u65f6\u95f4\u4fe1\u606f\uff0c\u5982\u56fe\uff1a<\/p>\n\n\n\n<figure class=\"wp-block-image size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"678\" height=\"194\" src=\"http:\/\/blog.ywdevops.cn\/wp-content\/uploads\/2020\/08\/16-1.png\" alt=\"\" class=\"wp-image-2052\" srcset=\"https:\/\/blog.ywdevops.cn\/wp-content\/uploads\/2020\/08\/16-1.png 678w, https:\/\/blog.ywdevops.cn\/wp-content\/uploads\/2020\/08\/16-1-300x86.png 300w, https:\/\/blog.ywdevops.cn\/wp-content\/uploads\/2020\/08\/16-1-600x172.png 600w\" sizes=\"auto, (max-width: 678px) 100vw, 678px\" \/><\/figure>\n\n\n\n<p class=\"wp-block-paragraph\"><strong><mark style=\"background-color:rgba(0, 0, 0, 0)\" class=\"has-inline-color has-vivid-purple-color\">4\u3001get_url\u6a21\u5757<\/mark><\/strong><\/p>\n\n\n\n<p class=\"wp-block-paragraph\">\u4e3b\u8981\u529f\u80fd\u4e3a\u5728\u8fdc\u7a0b\u4e3b\u673a\u4e0b\u8f7d\u6307\u5b9aURL\u5730\u5740\u5230\u672c\u5730\uff0c\u652f\u6301sha256sum\u6587\u4ef6\u6821\u9a8c<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">\u4f8b\u5982\uff1a\u5728\u4e3b\u63a7\u7aef\u5c06\u767e\u5ea6\u7684URL\u4e0b\u8f7d\u5230\u88ab\u63a7\u7aef\u7684\u672c\u5730\u8def\u5f84\uff0c\u5982\u56fe\uff1a<\/p>\n\n\n\n<figure class=\"wp-block-image size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"600\" height=\"134\" src=\"http:\/\/blog.ywdevops.cn\/wp-content\/uploads\/2020\/08\/17-1.png\" alt=\"\" class=\"wp-image-2054\" srcset=\"https:\/\/blog.ywdevops.cn\/wp-content\/uploads\/2020\/08\/17-1.png 600w, https:\/\/blog.ywdevops.cn\/wp-content\/uploads\/2020\/08\/17-1-300x67.png 300w\" sizes=\"auto, (max-width: 600px) 100vw, 600px\" \/><\/figure>\n\n\n\n<p class=\"wp-block-paragraph\"><strong><mark style=\"background-color:rgba(0, 0, 0, 0)\" class=\"has-inline-color has-vivid-purple-color\">5\u3001yum\u6a21\u5757<\/mark><\/strong><\/p>\n\n\n\n<p class=\"wp-block-paragraph\"> yum\u6a21\u5757\u57fa\u4e8eyum\u673a\u5236\uff0c\u5bf9\u8fdc\u7a0b\u4e3b\u673a\u7ba1\u7406\u7a0b\u5e8f\u5305\u3002\u5e38\u7528\u7684\u53c2\u6570\u5982\u4e0b \uff1a<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li> name\uff1a\u7a0b\u5e8f\u5305\u540d\u79f0\uff0c\u53ef\u4ee5\u5e26\u4e0a\u7248\u672c\u53f7\u3002\u82e5\u4e0d\u6307\u660e\u7248\u672c\uff0c\u5219\u9ed8\u8ba4\u4e3a\u6700\u65b0\u7248\u672c\uff1b <\/li>\n\n\n\n<li> state=present|latest|absent\uff1a\u6307\u660e\u5bf9\u7a0b\u5e8f\u5305\u6267\u884c\u7684\u64cd\u4f5c(present\u8868\u660e\u5b89\u88c5\u7a0b\u5e8f\u5305\uff0clatest\u8868\u793a\u5b89\u88c5\u6700\u65b0\u7248\u672c\u7684\u7a0b\u5e8f\u5305\uff0cabsent\u8868\u793a\u5378\u8f7d\u7a0b\u5e8f\u5305) <\/li>\n\n\n\n<li> disablerepo\uff1a\u5728\u7528yum\u5b89\u88c5\u65f6\uff0c\u4e34\u65f6\u7981\u7528\u67d0\u4e2a\u4ed3\u5e93\u7684ID <\/li>\n\n\n\n<li> enablerepo\uff1a\u5728\u7528yum\u5b89\u88c5\u65f6\uff0c\u4e34\u65f6\u542f\u7528\u67d0\u4e2a\u4ed3\u5e93\u7684ID <\/li>\n\n\n\n<li> conf_file\uff1ayum\u8fd0\u884c\u65f6\u7684\u914d\u7f6e\u6587\u4ef6\uff0c\u800c\u4e0d\u662f\u4f7f\u7528\u9ed8\u8ba4\u7684\u914d\u7f6e\u6587\u4ef6 <\/li>\n\n\n\n<li> disable_gpg_check=yes|no\uff1a\u662f\u5426\u542f\u7528\u5b8c\u6574\u6027\u6821\u9a8c\u529f\u80fd <\/li>\n<\/ul>\n\n\n\n<p class=\"wp-block-paragraph\">\u4f8b\u5982\uff1a\u4e0b\u9762\u547d\u4ee4\u8868\u793a\u5b89\u88c5\u6700\u65b0\u7248\u672c\u7684httpd\u670d\u52a1\u5668\uff0c\u5982\u56fe\uff1a<\/p>\n\n\n\n<figure class=\"wp-block-image size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"268\" src=\"https:\/\/blog.ywdevops.cn\/wp-content\/uploads\/2021\/08\/3-3-1024x268.png\" alt=\"\" class=\"wp-image-4689\" srcset=\"https:\/\/blog.ywdevops.cn\/wp-content\/uploads\/2021\/08\/3-3-1024x268.png 1024w, https:\/\/blog.ywdevops.cn\/wp-content\/uploads\/2021\/08\/3-3-300x79.png 300w, https:\/\/blog.ywdevops.cn\/wp-content\/uploads\/2021\/08\/3-3-768x201.png 768w, https:\/\/blog.ywdevops.cn\/wp-content\/uploads\/2021\/08\/3-3-600x157.png 600w, https:\/\/blog.ywdevops.cn\/wp-content\/uploads\/2021\/08\/3-3.png 1070w\" sizes=\"auto, (max-width: 1024px) 100vw, 1024px\" \/><\/figure>\n\n\n\n<p class=\"has-luminous-vivid-amber-background-color has-background wp-block-paragraph\">\u6ce8\u610f\uff1atest\u4e3a\u7ec4\u540d\uff0c-i \u547d\u4ee4\u610f\u601d\u662f\u6307\u5b9a\u4e3b\u673a\u6587\u4ef6\uff0c\u9ed8\u8ba4\u60c5\u51b5\u4e0b\u662f\u8bfb\u53d6\u7684\/etc\/ansible\/hosts\u6587\u4ef6\uff0c\u901a\u8fc7-i\u53ef\u4ee5\u6307\u5b9a\uff0c\u53ef\u53c2\u8003<a href=\"https:\/\/blog.ywdevops.cn\/index.php\/2021\/08\/29\/ansible-2\/\">ansible\u5e38\u89c1\u547d\u4ee4\u884c\u4f7f\u7528\u65b9\u5f0f \u2013 IT\u8fd0\u7ef4 (blog.ywdevops.cn)<\/a><\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><strong><mark style=\"background-color:rgba(0, 0, 0, 0)\" class=\"has-inline-color has-vivid-purple-color\">6\u3001cron\u6a21\u5757<\/mark><\/strong><\/p>\n\n\n\n<p class=\"wp-block-paragraph\">\u4e3b\u8981\u529f\u80fd\uff0c\u6267\u884c\u8fdc\u7a0b\u4e3b\u673a\u7684crontab\u914d\u7f6e<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">\u4f8b\u5b50\uff1a\u901a\u8fc7\u4e3b\u63a7\u673a\u5411\u88ab\u63a7\u673a\u6dfb\u52a0crontab\u5b9a\u65f6\u529f\u80fd\uff0c\u6267\u884c\u547d\u4ee4\u5982\u4e0b\uff1a<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">ansible webservers -m cron -a &#8220;name=&#8217;clear disk&#8217;  hour=5 job=&#8217;bash \/root\/aaa.sh'&#8221;<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">\u4e0a\u8ff0\u547d\u4ee4\u4e2d\uff0cname\u8868\u793a\u8bf4\u660e\u6b64\u811a\u672c\u662f\u505a\u4ec0\u4e48\u7684\uff0c\u4f1a\u5728crontab\u4e2d\u4f5c\u4e3a\u6ce8\u91ca\u5b58\u5728\uff0chour\u8868\u793a5\u4e2a\u5c0f\u65f6\uff0cjob\u8868\u793a\u6267\u884c\u811a\u672c\u4f4d\u7f6e\u6216\u8005\u6267\u884c\u547d\u4ee4\uff0c\u6267\u884c\u540e\u5728\u88ab\u63a7\u7aef\u67e5\u770bcrontab\uff0c\u5982\u56fe\uff1b<\/p>\n\n\n\n<figure class=\"wp-block-image size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"527\" height=\"115\" src=\"http:\/\/blog.ywdevops.cn\/wp-content\/uploads\/2020\/08\/18.png\" alt=\"\" class=\"wp-image-2055\" srcset=\"https:\/\/blog.ywdevops.cn\/wp-content\/uploads\/2020\/08\/18.png 527w, https:\/\/blog.ywdevops.cn\/wp-content\/uploads\/2020\/08\/18-300x65.png 300w\" sizes=\"auto, (max-width: 527px) 100vw, 527px\" \/><\/figure>\n\n\n\n<p class=\"wp-block-paragraph\">cron\u6a21\u5757\u53c2\u6570\u5982\u4e0b\uff1a<\/p>\n\n\n\n<ol class=\"wp-block-list\">\n<li>minute\uff1a\u8868\u793a\u8bbe\u7f6e\u5206\uff0c\u4e0d\u5199\u9ed8\u8ba4\u4e3a*,\u4f8b\u5982minute=5\u8868\u793a5\u5206\u949f<\/li>\n\n\n\n<li>hour:\u8868\u793a\u65f6\u95f4\uff0c\u4f8b\u5982hour=5\uff0c\u8868\u793a5\u70b9\u6267\u884c<\/li>\n\n\n\n<li>day\uff1a\u8868\u793a\u65e5\uff0c\u4f8b\u5982\uff1aday=5\u8868\u793a5\u53f7\u6267\u884c<\/li>\n\n\n\n<li>month\uff1a\u8868\u793a\u6708\u4efd\uff0c\u4f8b\u5982month=5\u8868\u793a5\u6708\u6267\u884c<\/li>\n\n\n\n<li>weekday:\u8868\u793a\u5468\uff0c\u4f8b\u5982\uff1aweekday=5\u8868\u793a\u5468\u4e94\u6267\u884c<\/li>\n<\/ol>\n\n\n\n<p class=\"wp-block-paragraph\">\u4f8b\u5982\uff1a\u4e0b\u9762\u7684\u4f8b\u5b50\u8868\u793a1\u670810\u53f7\u76845\u70b9\u96f65\u5206\u6267\u884c\u811a\u672c\uff0c\u5982\u56fe\uff1a<\/p>\n\n\n\n<figure class=\"wp-block-image size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"593\" height=\"194\" src=\"http:\/\/blog.ywdevops.cn\/wp-content\/uploads\/2020\/08\/20-1.png\" alt=\"\" class=\"wp-image-2058\" srcset=\"https:\/\/blog.ywdevops.cn\/wp-content\/uploads\/2020\/08\/20-1.png 593w, https:\/\/blog.ywdevops.cn\/wp-content\/uploads\/2020\/08\/20-1-300x98.png 300w\" sizes=\"auto, (max-width: 593px) 100vw, 593px\" \/><\/figure>\n\n\n\n<figure class=\"wp-block-image size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"583\" height=\"117\" src=\"http:\/\/blog.ywdevops.cn\/wp-content\/uploads\/2020\/08\/21-1.png\" alt=\"\" class=\"wp-image-2059\" srcset=\"https:\/\/blog.ywdevops.cn\/wp-content\/uploads\/2020\/08\/21-1.png 583w, https:\/\/blog.ywdevops.cn\/wp-content\/uploads\/2020\/08\/21-1-300x60.png 300w\" sizes=\"auto, (max-width: 583px) 100vw, 583px\" \/><\/figure>\n\n\n\n<p class=\"wp-block-paragraph\"><strong><mark style=\"background-color:rgba(0, 0, 0, 0)\" class=\"has-inline-color has-vivid-purple-color\">7\uff0cmount\u6a21\u5757\uff1a<\/mark><\/strong><\/p>\n\n\n\n<p class=\"wp-block-paragraph\">\u4e3b\u8981\u529f\u80fd\u4e3a\u8fdc\u7a0b\u4e3b\u673a\u5206\u533a\u6302\u8f7d\uff0c<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">\u4e0b\u9762\u547d\u4ee4\u5c06\u8bbe\u5907\/dev\/sd0\u6302\u8f7d\u5230\/mnt\/data\u76ee\u5f55\u4e0b\uff0c\u5982\u4e0b\uff1a<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">ansible webservers -m mount -a &#8220;name=\/mnt\/data src=\/dev\/sd0 fstype=ext4&#8221;<\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><strong><mark style=\"background-color:rgba(0, 0, 0, 0)\" class=\"has-inline-color has-vivid-purple-color\">8\uff0cservice \u6a21\u5757<\/mark><\/strong><\/p>\n\n\n\n<p class=\"wp-block-paragraph\">\u4e3b\u8981\u529f\u80fd\u4e3a\u8fdc\u7a0b\u4e3b\u673a\u7cfb\u7edf\u670d\u52a1\u7ba1\u7406\uff0c\u5e38\u89c1\u53c2\u6570\u5982\u4e0b\uff1a<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li> name:\u88ab\u7ba1\u7406\u7684\u670d\u52a1\u540d\u79f0 <\/li>\n\n\n\n<li> state=started|stopped|restarted\uff1a\u52a8\u4f5c\u5305\u542b\u542f\u52a8\uff0c\u5173\u95ed\u6216\u91cd\u542f <\/li>\n\n\n\n<li> enable=yes|no:\u8868\u793a\u662f\u5426\u8bbe\u7f6e\u8be5\u670d\u52a1\u5f00\u673a\u81ea\u542f\u52a8 <\/li>\n\n\n\n<li> runlevel:\u5982\u679c\u8bbe\u5b9a\u4e86enabled\u5f00\u673a\u81ea\u542f\u52a8\uff0c\u5219\u8981\u5b9a\u4e49\u5728\u54ea\u4e9b\u8fd0\u884c\u76ee\u6807\u4e0b\u81ea\u52a8\u542f\u52a8 <\/li>\n<\/ul>\n\n\n\n<p class=\"wp-block-paragraph\">\u4f8b\u5982\uff1a\u901a\u8fc7service\u6a21\u5757\u5b9e\u73b0\u505c\u6b62tomcat\u670d\u52a1\uff0c\u6267\u884c\u547d\u4ee4\u5982\u4e0b\uff1a<\/p>\n\n\n\n<figure class=\"wp-block-image size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"929\" height=\"215\" src=\"https:\/\/blog.ywdevops.cn\/wp-content\/uploads\/2021\/08\/4-3.png\" alt=\"\" class=\"wp-image-4692\" srcset=\"https:\/\/blog.ywdevops.cn\/wp-content\/uploads\/2021\/08\/4-3.png 929w, https:\/\/blog.ywdevops.cn\/wp-content\/uploads\/2021\/08\/4-3-300x69.png 300w, https:\/\/blog.ywdevops.cn\/wp-content\/uploads\/2021\/08\/4-3-768x178.png 768w, https:\/\/blog.ywdevops.cn\/wp-content\/uploads\/2021\/08\/4-3-600x139.png 600w\" sizes=\"auto, (max-width: 929px) 100vw, 929px\" \/><\/figure>\n\n\n\n<p class=\"wp-block-paragraph\"><mark style=\"background-color:rgba(0, 0, 0, 0)\" class=\"has-inline-color has-vivid-purple-color\"><strong>9\uff0cuser\u670d\u52a1\u6a21\u5757<\/strong><\/mark><\/p>\n\n\n\n<p class=\"wp-block-paragraph\">\u4e3b\u8981\u529f\u80fd\u4e3a\u8fdc\u7a0b\u4e3b\u673a\u7528\u6237\u7ba1\u7406\uff0c\u5e38\u89c1\u53c2\u6570\u5982\u4e0b\uff1a<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li> name:\u5fc5\u9009\u53c2\u6570\uff0c\u8d26\u53f7\u540d\u79f0 <\/li>\n\n\n\n<li> state=present|absent:\u521b\u5efa\u8d26\u53f7\u6216\u8005\u5220\u9664\u8d26\u53f7\uff0cpresent\u8868\u793a\u521b\u5efa\uff0cabsent\u8868\u793a\u5220\u9664 <\/li>\n\n\n\n<li> system=yes|no:\u662f\u5426\u4e3a\u7cfb\u7edf\u8d26\u6237 <\/li>\n\n\n\n<li> uid:\u7528\u6237UID <\/li>\n\n\n\n<li> group:\u7528\u6237\u7684\u57fa\u672c\u7ec4<\/li>\n\n\n\n<li>groups:\u7528\u6237\u7684\u9644\u52a0\u7ec4 <\/li>\n\n\n\n<li> shell:\u9ed8\u8ba4\u4f7f\u7528\u7684shell <\/li>\n\n\n\n<li> home:\u7528\u6237\u7684\u5bb6\u76ee\u5f55 <\/li>\n\n\n\n<li> mve_home=yes|no\uff1a\u5982\u679c\u8bbe\u7f6e\u7684\u5bb6\u76ee\u5f55\u5df2\u7ecf\u5b58\u5728\uff0c\u662f\u5426\u5c06\u5df2\u5b58\u5728\u7684\u5bb6\u76ee\u5f55\u8fdb\u884c\u79fb\u52a8 <\/li>\n\n\n\n<li> pssword:\u7528\u6237\u7684\u5bc6\u7801\uff0c\u5efa\u8bae\u4f7f\u7528\u52a0\u5bc6\u540e\u7684\u5b57\u7b26\u4e32 <\/li>\n\n\n\n<li> comment\uff1a\u7528\u6237\u7684\u6ce8\u91ca\u4fe1\u606f <\/li>\n\n\n\n<li> remore=yes|no\uff1a\u5f53state=absent\u65f6\uff0c\u662f\u5426\u8981\u5220\u9664\u7528\u6237\u7684\u5bb6\u76ee\u5f55 <\/li>\n<\/ul>\n\n\n\n<p class=\"wp-block-paragraph\">\u4f8b\u5982\uff1a\u4e0b\u9762\u547d\u4ee4\u8868\u793a\u521b\u5efa\u4e00\u4e2a\u7528\u6237\uff0c\u5e76\u7528\u9ed8\u8ba4\u7684shell(\u53ef\u4ee5\u767b\u5f55)\uff0c\u5982\u56fe\uff1a<\/p>\n\n\n\n<figure class=\"wp-block-image size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"401\" src=\"https:\/\/blog.ywdevops.cn\/wp-content\/uploads\/2021\/08\/5-3-1024x401.png\" alt=\"\" class=\"wp-image-4695\" srcset=\"https:\/\/blog.ywdevops.cn\/wp-content\/uploads\/2021\/08\/5-3-1024x401.png 1024w, https:\/\/blog.ywdevops.cn\/wp-content\/uploads\/2021\/08\/5-3-300x117.png 300w, https:\/\/blog.ywdevops.cn\/wp-content\/uploads\/2021\/08\/5-3-768x301.png 768w, https:\/\/blog.ywdevops.cn\/wp-content\/uploads\/2021\/08\/5-3-600x235.png 600w, https:\/\/blog.ywdevops.cn\/wp-content\/uploads\/2021\/08\/5-3.png 1091w\" sizes=\"auto, (max-width: 1024px) 100vw, 1024px\" \/><\/figure>\n\n\n\n<p class=\"wp-block-paragraph\">\u5220\u9664\u7528\u6237\u5e76\u5220\u9664\u7528\u6237\u5bb6\u76ee\u5f55\uff0c\u547d\u4ee4\u5982\u4e0b\uff1a<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">ansible test -i gong -m user -a &#8220;name=test state=absent  remove=yes&#8221;<\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><strong><mark style=\"background-color:rgba(0, 0, 0, 0)\" class=\"has-inline-color has-vivid-purple-color\">10\u3001shell\u6a21\u5757<\/mark><\/strong><\/p>\n\n\n\n<p class=\"wp-block-paragraph\">\u53ef\u76f4\u63a5\u5728\u8fdc\u7a0b\u4e3b\u673a\u6267\u884c\u4efb\u4f55linux\u547d\u4ee4\u548c\u8fdc\u7a0b\u4e3b\u673a\u811a\u672c\uff0c\u4f8b\u5982\uff0c\u67e5\u770b\u8fdc\u7a0b\u4e3b\u673a\u7684\u78c1\u76d8\uff0c\u5982\u56fe\uff1a<\/p>\n\n\n\n<figure class=\"wp-block-image size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"910\" height=\"318\" src=\"https:\/\/blog.ywdevops.cn\/wp-content\/uploads\/2021\/08\/22-1.png\" alt=\"\" class=\"wp-image-4684\" srcset=\"https:\/\/blog.ywdevops.cn\/wp-content\/uploads\/2021\/08\/22-1.png 910w, https:\/\/blog.ywdevops.cn\/wp-content\/uploads\/2021\/08\/22-1-300x105.png 300w, https:\/\/blog.ywdevops.cn\/wp-content\/uploads\/2021\/08\/22-1-768x268.png 768w, https:\/\/blog.ywdevops.cn\/wp-content\/uploads\/2021\/08\/22-1-600x210.png 600w\" sizes=\"auto, (max-width: 910px) 100vw, 910px\" \/><\/figure>\n\n\n\n<p class=\"has-luminous-vivid-amber-background-color has-background wp-block-paragraph\">shell\u652f\u6301\u7ba1\u9053\u7b26\u53f7\u3001\u91cd\u5b9a\u5411\u7684\u64cd\u4f5c\uff0ccommand\u547d\u4ee4\u4e0d\u652f\u6301\u7ba1\u9053\u548c\u91cd\u5b9a\u5411<\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><strong><mark style=\"background-color:rgba(0, 0, 0, 0)\" class=\"has-inline-color has-vivid-purple-color\">11\u3001command\u6a21\u5757<\/mark><\/strong><\/p>\n\n\n\n<p class=\"wp-block-paragraph\">command\u6a21\u5757\u4e5f\u53ef\u4ee5\u5728\u8fdc\u7a0b\u4e3b\u673a\u6267\u884cLinux\u76f8\u5173\u547d\u4ee4\u548c\u8fdc\u7a0b\u4e3b\u673a\u811a\u672c\uff0c\u4f46\u662f\u4e0d\u652f\u6301\u7ba1\u9053\u7b26\u53f7\u548c\u91cd\u5b9a\u5411\u7b49\u64cd\u4f5c\uff0c\u5e38\u7528\u53c2\u6570\u5982\u4e0b\uff1a<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li> chdir\uff1a\u5728\u8fdc\u7a0b\u4e3b\u673a\u4e0a\u8fd0\u884c\u547d\u4ee4\u524d\u8981\u63d0\u524d\u8fdb\u5165\u7684\u76ee\u5f55\uff1b <\/li>\n\n\n\n<li> creates\uff1a\u5728\u547d\u4ee4\u8fd0\u884c\u65f6\u521b\u5efa\u4e00\u4e2a\u6587\u4ef6\uff0c\u5982\u679c\u6587\u4ef6\u5df2\u5b58\u5728\uff0c\u5219\u4e0d\u4f1a\u6267\u884c\u521b\u5efa\u4efb\u52a1\uff1b <\/li>\n\n\n\n<li> removes\uff1a\u5728\u547d\u4ee4\u8fd0\u884c\u65f6\u79fb\u9664\u4e00\u4e2a\u6587\u4ef6\uff0c\u5982\u679c\u6587\u4ef6\u4e0d\u5b58\u5728\uff0c\u5219\u4e0d\u4f1a\u6267\u884c\u79fb\u9664\u4efb\u52a1\uff1b <\/li>\n\n\n\n<li> executeable\uff1a\u6307\u660e\u8fd0\u884c\u547d\u4ee4\u7684shell\u7a0b\u5e8f\uff1b <\/li>\n<\/ul>\n\n\n\n<p class=\"wp-block-paragraph\">\u4f8b\u5982\uff1a\u8fd0\u884c\u547d\u4ee4\u524d\uff0c\u63d0\u524d\u8fdb\u5165\u673a\u5668\u7684\u6839\u76ee\u5f55\uff0c\u5982\u56fe\uff1a<\/p>\n\n\n\n<figure class=\"wp-block-image size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"824\" height=\"235\" src=\"https:\/\/blog.ywdevops.cn\/wp-content\/uploads\/2021\/08\/1-3.png\" alt=\"\" class=\"wp-image-4685\" srcset=\"https:\/\/blog.ywdevops.cn\/wp-content\/uploads\/2021\/08\/1-3.png 824w, https:\/\/blog.ywdevops.cn\/wp-content\/uploads\/2021\/08\/1-3-300x86.png 300w, https:\/\/blog.ywdevops.cn\/wp-content\/uploads\/2021\/08\/1-3-768x219.png 768w, https:\/\/blog.ywdevops.cn\/wp-content\/uploads\/2021\/08\/1-3-600x171.png 600w\" sizes=\"auto, (max-width: 824px) 100vw, 824px\" \/><\/figure>\n\n\n\n<p class=\"wp-block-paragraph\"><strong><mark style=\"background-color:rgba(0, 0, 0, 0)\" class=\"has-inline-color has-vivid-purple-color\">12\u3001 hostname\u6a21\u5757<\/mark><\/strong><\/p>\n\n\n\n<p class=\"wp-block-paragraph\"> hostname\u6a21\u5757\u7528\u4e8e\u7ba1\u7406\u8fdc\u7a0b\u4e3b\u673a\u4e0a\u7684\u4e3b\u673a\u540d \uff0c\u53c2\u6570\u5982\u4e0b\uff1a<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>name\uff1a\u6307\u660e\u4e3b\u673a\u540d<\/li>\n<\/ul>\n\n\n\n<p class=\"wp-block-paragraph\">\u4f8b\u5982\uff1a\u8bbe\u7f6e\u8fdc\u7a0b\u4e3b\u673a\u7684\u4e3b\u673a\u540d\u4e3a\uff1ashenzhen\uff0c\u6267\u884c\u547d\u4ee4\u5982\u4e0b\uff1a<\/p>\n\n\n\n<figure class=\"wp-block-image size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"1018\" height=\"373\" src=\"https:\/\/blog.ywdevops.cn\/wp-content\/uploads\/2021\/08\/2-3.png\" alt=\"\" class=\"wp-image-4688\" srcset=\"https:\/\/blog.ywdevops.cn\/wp-content\/uploads\/2021\/08\/2-3.png 1018w, https:\/\/blog.ywdevops.cn\/wp-content\/uploads\/2021\/08\/2-3-300x110.png 300w, https:\/\/blog.ywdevops.cn\/wp-content\/uploads\/2021\/08\/2-3-768x281.png 768w, https:\/\/blog.ywdevops.cn\/wp-content\/uploads\/2021\/08\/2-3-600x220.png 600w\" sizes=\"auto, (max-width: 1018px) 100vw, 1018px\" \/><\/figure>\n\n\n\n<p class=\"wp-block-paragraph\"><strong><mark style=\"background-color:rgba(0, 0, 0, 0)\" class=\"has-inline-color has-vivid-purple-color\">13\u3001template\u6a21\u5757<\/mark><\/strong><\/p>\n\n\n\n<p class=\"wp-block-paragraph\">\u5982\u679c\u4f60\u9700\u8981\u62f7\u8d1d\u4e00\u4e2a\u9759\u6001\u7684\u6587\u4ef6\uff0c\u90a3\u4e48\u7528copy \u6a21\u5757\u5c31\u591f\u7528\u4e86\u3002\u4f46\u662f\u5982\u679c\u4f60\u9700\u8981\u62f7\u8d1d\u4e00\u4e2a\u6587\u4ef6\uff0c\u5e76\u4e14\u6839\u636e\u9700\u8981\u4fee\u6539\u90e8\u5206\u5185\u5bb9\uff0c  \u90a3\u4e48\u5c31\u9700\u8981\u7528\u5230template\u6a21\u5757\uff0ctemplate\u6a21\u5757\u540c\u6837\u5177\u5907\u8bbe\u7f6e\u6587\u4ef6\u5c5e\u4e3b(owner)\u3001\u5c5e\u7ec4(group)\u3001\u6743\u9650(mode)\u3001\u5907\u4efd(backup)\u3001<strong>force<\/strong>(\u8986\u76d6)\u7b49\u529f\u80fd\uff0c\u7528\u6cd5\u53ef\u53c2\u8003copy\uff0ctemplate\u53ef\u901a\u8fc7\u5b9a\u4e49yml\u6587\u4ef6\u65b9\u5f0f\uff0c\u4ee5playbook\u65b9\u5f0f\u6267\u884c<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">\u4f8b\u5982\uff1a\u5b9a\u4e49template.yml\u6587\u4ef6\uff0ccopy\u8def\u5f84templates\u4e0b\u7684file.html\u6587\u4ef6\u5230\u8fdc\u7a0b\u673a\u5668\u7684\/tmp\u8def\u5f84\uff0c\u5e76\u5f15\u7528\u8fdc\u7a0b\u673a\u5668\u7684\u53d8\u91cf\uff0c\u5982\u56fe\uff1a<\/p>\n\n\n\n<figure class=\"wp-block-image size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"769\" height=\"247\" src=\"https:\/\/blog.ywdevops.cn\/wp-content\/uploads\/2021\/09\/29-1.png\" alt=\"\" class=\"wp-image-4809\" srcset=\"https:\/\/blog.ywdevops.cn\/wp-content\/uploads\/2021\/09\/29-1.png 769w, https:\/\/blog.ywdevops.cn\/wp-content\/uploads\/2021\/09\/29-1-300x96.png 300w, https:\/\/blog.ywdevops.cn\/wp-content\/uploads\/2021\/09\/29-1-600x193.png 600w\" sizes=\"auto, (max-width: 769px) 100vw, 769px\" \/><\/figure>\n\n\n\n<p class=\"wp-block-paragraph\">file.html\u6587\u4ef6\u7684\u5185\u5bb9\u5982\u4e0b\uff1a<\/p>\n\n\n\n<figure class=\"wp-block-image size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"810\" height=\"174\" src=\"https:\/\/blog.ywdevops.cn\/wp-content\/uploads\/2021\/09\/30-1.png\" alt=\"\" class=\"wp-image-4810\" srcset=\"https:\/\/blog.ywdevops.cn\/wp-content\/uploads\/2021\/09\/30-1.png 810w, https:\/\/blog.ywdevops.cn\/wp-content\/uploads\/2021\/09\/30-1-300x64.png 300w, https:\/\/blog.ywdevops.cn\/wp-content\/uploads\/2021\/09\/30-1-768x165.png 768w, https:\/\/blog.ywdevops.cn\/wp-content\/uploads\/2021\/09\/30-1-600x129.png 600w\" sizes=\"auto, (max-width: 810px) 100vw, 810px\" \/><\/figure>\n\n\n\n<p class=\"wp-block-paragraph\">\u6267\u884cansible-playbook template.yml\uff0c\u5728\u8fdc\u7a0b\u673a\u5668192.168.226.130\u4e0a\u67e5\u770bfile.html\u5185\u5bb9\u5982\u4e0b\uff1a<\/p>\n\n\n\n<figure class=\"wp-block-image size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"747\" height=\"123\" src=\"https:\/\/blog.ywdevops.cn\/wp-content\/uploads\/2021\/09\/31-1.png\" alt=\"\" class=\"wp-image-4811\" srcset=\"https:\/\/blog.ywdevops.cn\/wp-content\/uploads\/2021\/09\/31-1.png 747w, https:\/\/blog.ywdevops.cn\/wp-content\/uploads\/2021\/09\/31-1-300x49.png 300w, https:\/\/blog.ywdevops.cn\/wp-content\/uploads\/2021\/09\/31-1-600x99.png 600w\" sizes=\"auto, (max-width: 747px) 100vw, 747px\" \/><\/figure>\n\n\n\n<p class=\"has-luminous-vivid-amber-background-color has-background wp-block-paragraph\">\u6ce8\u610f\uff1a\u4e0a\u8ff0\u4e2d\u83b7\u53d6\u7684\u53d8\u91cf\u90fd\u662ffacts\u53d8\u91cf\uff0c\u666e\u901a\u53d8\u91cf\u53ef\u4ee5\u901a\u8fc7vars\u5173\u952e\u5b57\u5b9a\u4e49\uff0cyml\u6587\u4ef6\u6700\u4e0a\u9762\u7684\u4e09\u4e2a\u6a2a\u6760\u53ef\u4ee5\u4e0d\u5199\uff0c\u90a3\u4e48\u662f\u533a\u5206\u591a\u4e2a\u8d44\u6e90\u6587\u4ef6\u65f6\u624d\u9700\u8981\u5199<\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><strong><mark style=\"background-color:rgba(0, 0, 0, 0)\" class=\"has-inline-color has-vivid-purple-color\">14\u3001file\u6a21\u5757<\/mark><\/strong><\/p>\n\n\n\n<p class=\"wp-block-paragraph\"> file \u6a21\u5757\u8bbe\u7f6e\u8fdc\u7a0b\u4e3b\u673a\u4e0a\u7684\u6587\u4ef6\u3001\u8f6f\u94fe\u63a5\uff08symlinks\uff09\u548c\u6587\u4ef6\u5939\u7684\u6743\u9650\uff0c\u4e5f\u53ef\u4ee5\u7528\u6765\u521b\u5efa\u548c\u5220\u9664\u4ed6\u4eec\u3002(<strong>file\u4e0b\u7684\u6240\u6709\u64cd\u4f5c\u90fd\u662f\u5728\u8fdc\u7a0b\u4e3b\u673a\u6267\u884c<\/strong>)\uff0c\u53c2\u6570\u5982\u4e0b\uff1a<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>path\uff1a\u5fc5\u987b\u53c2\u6570\uff0c\u7528\u4e8e\u6307\u5b9a\u8981\u64cd\u4f5c\u7684\u6587\u4ef6\u6216\u76ee\u5f55<\/li>\n\n\n\n<li><strong>state<\/strong>\uff1a\u540e\u9762\u53ef\u8ddftouch\u8868\u793a\u521b\u5efa\u6587\u4ef6\u3001directory\u8868\u793a\u521b\u5efa\u76ee\u5f55\u3001absent\u8868\u793a\u5220\u9664\u6587\u4ef6\u6216\u76ee\u5f55\u6216\u94fe\u63a5\u6587\u4ef6\u3001link\u8868\u793a\u521b\u5efa\u94fe\u63a5\u6587\u4ef6<\/li>\n\n\n\n<li>src\uff1a\u5f53state\u8bbe\u7f6e\u4e3alink\u6216\u8005hard\u65f6\uff0c\u8868\u793a\u6211\u4eec\u60f3\u8981\u521b\u5efa\u4e00\u4e2a\u8f6f\u94fe\u6216\u8005\u786c\u94fe\uff0c\u6240\u4ee5\uff0c\u6211\u4eec\u5fc5\u987b\u6307\u660e\u8f6f\u94fe\u6216\u786c\u94fe\u94fe\u63a5\u7684\u54ea\u4e2a\u6587\u4ef6\uff0c\u901a\u8fc7src\u53c2\u6570\u5373\u53ef\u6307\u5b9a\u94fe\u63a5\u6e90<\/li>\n\n\n\n<li>owner\uff1a\u4fee\u6539\u6587\u4ef6\u6216\u76ee\u5f55\u7684\u5c5e\u4e3b<\/li>\n\n\n\n<li>group\uff1a\u4fee\u6539\u6587\u4ef6\u6216\u76ee\u5f55\u7684\u5c5e\u7ec4<\/li>\n\n\n\n<li>mode\uff1a\u7528\u4e8e\u6307\u5b9a\u88ab\u64cd\u4f5c\u6587\u4ef6\u7684\u6743\u9650\uff0c\u6bd4\u5982\uff0c\u5982\u679c\u60f3\u8981\u5c06\u6587\u4ef6\u6743\u9650\u8bbe\u7f6e\u4e3a\u201d<code>rw-r-x---<\/code>\u201c\uff0c\u5219\u53ef\u4ee5\u4f7f\u7528mode=650\u8fdb\u884c\u8bbe\u7f6e\uff0c\u6216\u8005\u4f7f\u7528mode=0650\uff0c\u6548\u679c\u4e5f\u662f\u76f8\u540c\u7684\u3002\u5982\u679c\u60f3\u8981\u8bbe\u7f6e\u7279\u6b8a\u6743\u9650\uff0c\u6bd4\u5982\u4e3a\u4e8c\u8fdb\u5236\u6587\u4ef6\u8bbe\u7f6esuid\uff0c\u5219\u53ef\u4ee5\u4f7f\u7528mode=4700<\/li>\n\n\n\n<li>recurse\u53c2\u6570\uff1a\u5f53\u8981\u64cd\u4f5c\u7684\u6587\u4ef6\u4e3a\u76ee\u5f55\uff0c\u5c06recurse\u8bbe\u7f6e\u4e3ayes\uff0c\u53ef\u4ee5\u9012\u5f52\u7684\u4fee\u6539\u76ee\u5f55\u4e2d\u6587\u4ef6\u7684\u5c5e\u6027<\/li>\n<\/ul>\n\n\n\n<p class=\"wp-block-paragraph\">\u6539\u53d8\u6587\u4ef6\u7684\u6743\u9650\uff1a\u901a\u8fc7mode\u53c2\u6570\u53ef\u4ee5\u4fee\u6539\u6587\u4ef6\u7684\u6743\u9650(<strong>\u901a\u8fc7\u6570\u5b57\u8bbe\u7f6e\u6743\u9650\u5fc5\u987b\u4ee50\u5f00\u5934<\/strong>)\uff0c\u5982\u56fe\uff1a<\/p>\n\n\n\n<figure class=\"wp-block-image size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"801\" height=\"337\" src=\"https:\/\/blog.ywdevops.cn\/wp-content\/uploads\/2021\/09\/32-1.png\" alt=\"\" class=\"wp-image-4815\" srcset=\"https:\/\/blog.ywdevops.cn\/wp-content\/uploads\/2021\/09\/32-1.png 801w, https:\/\/blog.ywdevops.cn\/wp-content\/uploads\/2021\/09\/32-1-300x126.png 300w, https:\/\/blog.ywdevops.cn\/wp-content\/uploads\/2021\/09\/32-1-768x323.png 768w, https:\/\/blog.ywdevops.cn\/wp-content\/uploads\/2021\/09\/32-1-600x252.png 600w\" sizes=\"auto, (max-width: 801px) 100vw, 801px\" \/><\/figure>\n\n\n\n<p class=\"wp-block-paragraph\">\u7ed3\u679c\u5982\u4e0b\uff1a<\/p>\n\n\n\n<figure class=\"wp-block-image size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"785\" height=\"187\" src=\"https:\/\/blog.ywdevops.cn\/wp-content\/uploads\/2021\/09\/33-1.png\" alt=\"\" class=\"wp-image-4816\" srcset=\"https:\/\/blog.ywdevops.cn\/wp-content\/uploads\/2021\/09\/33-1.png 785w, https:\/\/blog.ywdevops.cn\/wp-content\/uploads\/2021\/09\/33-1-300x71.png 300w, https:\/\/blog.ywdevops.cn\/wp-content\/uploads\/2021\/09\/33-1-768x183.png 768w, https:\/\/blog.ywdevops.cn\/wp-content\/uploads\/2021\/09\/33-1-600x143.png 600w\" sizes=\"auto, (max-width: 785px) 100vw, 785px\" \/><\/figure>\n\n\n\n<p class=\"wp-block-paragraph\">\u521b\u5efa\u6587\u4ef6\u7684\u8f6f\u94fe\u63a5\uff0cplaybooks\u5185\u5bb9\u5982\u4e0b\uff1a<\/p>\n\n\n\n<figure class=\"wp-block-image size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"754\" height=\"304\" src=\"https:\/\/blog.ywdevops.cn\/wp-content\/uploads\/2021\/09\/34.png\" alt=\"\" class=\"wp-image-4817\" srcset=\"https:\/\/blog.ywdevops.cn\/wp-content\/uploads\/2021\/09\/34.png 754w, https:\/\/blog.ywdevops.cn\/wp-content\/uploads\/2021\/09\/34-300x121.png 300w, https:\/\/blog.ywdevops.cn\/wp-content\/uploads\/2021\/09\/34-600x242.png 600w\" sizes=\"auto, (max-width: 754px) 100vw, 754px\" \/><\/figure>\n\n\n\n<p class=\"has-luminous-vivid-amber-background-color has-background wp-block-paragraph\">\u6ce8\u610f\uff1a\u8fd9\u91cc\u9762\u7684src\u548cdest\u53c2\u6570\u7684\u542b\u4e49\u662f\u548ccopy \u6a21\u5757\u4e0d\u4e00\u6837\u7684\uff0cfile\u6a21\u5757\u91cc\u9762\u6240\u64cd\u4f5c\u7684\u6587\u4ef6\u90fd\u662f\u8fdc\u7a0b\u8282\u70b9\u4e0a\u7684\u6587\u4ef6<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">\u8fd0\u884c\u7ed3\u679c\u5982\u4e0b\uff1a<\/p>\n\n\n\n<figure class=\"wp-block-image size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"916\" height=\"255\" src=\"https:\/\/blog.ywdevops.cn\/wp-content\/uploads\/2021\/09\/35.png\" alt=\"\" class=\"wp-image-4819\" srcset=\"https:\/\/blog.ywdevops.cn\/wp-content\/uploads\/2021\/09\/35.png 916w, https:\/\/blog.ywdevops.cn\/wp-content\/uploads\/2021\/09\/35-300x84.png 300w, https:\/\/blog.ywdevops.cn\/wp-content\/uploads\/2021\/09\/35-768x214.png 768w, https:\/\/blog.ywdevops.cn\/wp-content\/uploads\/2021\/09\/35-600x167.png 600w\" sizes=\"auto, (max-width: 916px) 100vw, 916px\" \/><\/figure>\n\n\n\n<p class=\"wp-block-paragraph\">\u521b\u5efa\u4e00\u4e2a\u65b0\u6587\u4ef6\uff0cplaybooks\u6587\u4ef6\u5185\u5bb9\u5982\u4e0b\uff1a\uff1a<\/p>\n\n\n\n<figure class=\"wp-block-image size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"783\" height=\"273\" src=\"https:\/\/blog.ywdevops.cn\/wp-content\/uploads\/2021\/09\/36.png\" alt=\"\" class=\"wp-image-4822\" srcset=\"https:\/\/blog.ywdevops.cn\/wp-content\/uploads\/2021\/09\/36.png 783w, https:\/\/blog.ywdevops.cn\/wp-content\/uploads\/2021\/09\/36-300x105.png 300w, https:\/\/blog.ywdevops.cn\/wp-content\/uploads\/2021\/09\/36-768x268.png 768w, https:\/\/blog.ywdevops.cn\/wp-content\/uploads\/2021\/09\/36-600x209.png 600w\" sizes=\"auto, (max-width: 783px) 100vw, 783px\" \/><\/figure>\n\n\n\n<p class=\"wp-block-paragraph\">\u8fd0\u884c\u7ed3\u679c\u5982\u4e0b\uff1a<\/p>\n\n\n\n<figure class=\"wp-block-image size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"778\" height=\"174\" src=\"https:\/\/blog.ywdevops.cn\/wp-content\/uploads\/2021\/09\/37.png\" alt=\"\" class=\"wp-image-4823\" srcset=\"https:\/\/blog.ywdevops.cn\/wp-content\/uploads\/2021\/09\/37.png 778w, https:\/\/blog.ywdevops.cn\/wp-content\/uploads\/2021\/09\/37-300x67.png 300w, https:\/\/blog.ywdevops.cn\/wp-content\/uploads\/2021\/09\/37-768x172.png 768w, https:\/\/blog.ywdevops.cn\/wp-content\/uploads\/2021\/09\/37-600x134.png 600w\" sizes=\"auto, (max-width: 778px) 100vw, 778px\" \/><\/figure>\n\n\n\n<p class=\"wp-block-paragraph\">\u521b\u5efa\u65b0\u7684\u6587\u4ef6\u5939\uff0cplaybooks\u6587\u4ef6\u5185\u5bb9\u5982\u4e0b\uff1a<\/p>\n\n\n\n<figure class=\"wp-block-image size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"782\" height=\"265\" src=\"https:\/\/blog.ywdevops.cn\/wp-content\/uploads\/2021\/09\/38.png\" alt=\"\" class=\"wp-image-4824\" srcset=\"https:\/\/blog.ywdevops.cn\/wp-content\/uploads\/2021\/09\/38.png 782w, https:\/\/blog.ywdevops.cn\/wp-content\/uploads\/2021\/09\/38-300x102.png 300w, https:\/\/blog.ywdevops.cn\/wp-content\/uploads\/2021\/09\/38-768x260.png 768w, https:\/\/blog.ywdevops.cn\/wp-content\/uploads\/2021\/09\/38-600x203.png 600w\" sizes=\"auto, (max-width: 782px) 100vw, 782px\" \/><\/figure>\n\n\n\n<p class=\"wp-block-paragraph\">\u8fd0\u884c\u7ed3\u679c\u5982\u4e0b\uff1a<\/p>\n\n\n\n<figure class=\"wp-block-image size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"764\" height=\"200\" src=\"https:\/\/blog.ywdevops.cn\/wp-content\/uploads\/2021\/09\/39.png\" alt=\"\" class=\"wp-image-4825\" srcset=\"https:\/\/blog.ywdevops.cn\/wp-content\/uploads\/2021\/09\/39.png 764w, https:\/\/blog.ywdevops.cn\/wp-content\/uploads\/2021\/09\/39-300x79.png 300w, https:\/\/blog.ywdevops.cn\/wp-content\/uploads\/2021\/09\/39-600x157.png 600w\" sizes=\"auto, (max-width: 764px) 100vw, 764px\" \/><\/figure>\n\n\n\n<p class=\"wp-block-paragraph\"><strong><mark style=\"background-color:rgba(0, 0, 0, 0)\" class=\"has-inline-color has-vivid-purple-color\">15\u3001systemd\u6a21\u5757<\/mark><\/strong><\/p>\n\n\n\n<p class=\"wp-block-paragraph\">\u5982\u679c\u4f7f\u7528systemctl \u7ba1\u7406\u7a0b\u5e8f\u7684\u8bdd\uff0c\u53ef\u4ee5\u4f7f\u7528systemd\u6a21\u5757\uff0csystemctl \u53ef\u4ee5 \u63a7\u5236\u7a0b\u5e8f\u542f\/\u505c\uff0creload\uff0c\u5f00\u673a\u542f\u52a8\uff0c\u89c2\u5bdf\u7a0b\u5e8f\u72b6\u6001\uff08status\uff09\u7b49 \uff0c\u5e38\u7528\u53c2\u6570\u5982\u4e0b\uff1a<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>name: \u5fc5\u9009\uff0c\u8868\u793a\u8981\u7ba1\u7406\u7684\u670d\u52a1\u540d\u5b57<\/li>\n\n\n\n<li> deamon_reload\uff1a\u91cd\u65b0\u8f7d\u5165\u670d\u52a1\uff0c\u503c\u4e3ayes\u6216no<\/li>\n\n\n\n<li> enabled \uff1a\u662f\u5426\u5f00\u673a\u542f\u52a8\uff0c\u503c\u4e3ayes\u6216no<\/li>\n\n\n\n<li> state : \u7ba1\u7406\u670d\u52a1\u72b6\u6001\uff0c\u503c\u4e3a( reloaded\u3001restarted\u3001started\u3001stopped )<\/li>\n<\/ul>\n\n\n\n<pre class=\"wp-block-code\"><code># \u5237\u65b0\u670d\u52a1\nansible webservers -m systemd -a \"deamon_reload=yes\"\n# \u542f\u52a8\u670d\u52a1\u5e76\u5f00\u673a\u542f\u52a8\nansible webservers -m systemd -a \"name=nginx enabled=yes state=started\"\n# \u505c\u6b62\u670d\u52a1 \u5f00\u673a\u7981\u6b62\u542f\u52a8\nansible webservers -m systemd -a \"name=nginx enabled=no state=stopped\"\n# \u91cd\u542f\u670d\u52a1\nansible webservers -m systemd -a \"name=nginx state=restarted\"<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">16\u3001synchronize\u6a21\u5757<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Ansible\u7684synchronize\u6a21\u5757\u662f\u4e00\u4e2a\u57fa\u4e8ersync\u7684\u6587\u4ef6\u540c\u6b65\u6a21\u5757\uff0c\u5b83\u5141\u8bb8\u60a8\u5728Ansible\u63a7\u5236\u8282\u70b9\u548c\u8fdc\u7a0b\u4e3b\u673a\u4e4b\u95f4\u540c\u6b65\u6587\u4ef6\u548c\u76ee\u5f55\u3002\u8fd9\u4e2a\u6a21\u5757\u7279\u522b\u9002\u5408\u4e8e\u6267\u884c\u589e\u91cf\u540c\u6b65\uff0c\u53ea\u4f20\u8f93\u6587\u4ef6\u53d8\u5316\u7684\u90e8\u5206\uff0c\u4ece\u800c\u63d0\u9ad8\u6548\u7387\uff0c\u5e38\u7528\u53c2\u6570\u5982\u4e0b\uff1a<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>src: \u6e90\u6587\u4ef6\u6216\u76ee\u5f55\u7684\u8def\u5f84<\/li>\n\n\n\n<li><code>dest<\/code>: \u76ee\u6807\u6587\u4ef6\u6216\u76ee\u5f55\u7684\u8def\u5f84<\/li>\n\n\n\n<li><code>mode<\/code>: \u540c\u6b65\u6a21\u5f0f\uff0c\u53ef\u4ee5\u662f<code>push<\/code>\uff08\u63a8\u9001\u6a21\u5f0f\uff0c\u4ece\u63a7\u5236\u8282\u70b9\u5411\u8fdc\u7a0b\u8282\u70b9\u540c\u6b65\uff09\u6216<code>pull<\/code>\uff08\u62c9\u6a21\u5f0f\uff0c\u4ece\u8fdc\u7a0b\u8282\u70b9\u5411\u63a7\u5236\u8282\u70b9\u540c\u6b65<\/li>\n\n\n\n<li><code>rsync_opts<\/code>: \u4f20\u9012\u7ed9rsync\u7684\u989d\u5916\u9009\u9879\u6570\u7ec4<\/li>\n\n\n\n<li><code>compress<\/code>: \u662f\u5426\u5728\u4f20\u8f93\u8fc7\u7a0b\u4e2d\u542f\u7528\u538b\u7f29\uff0c\u9ed8\u8ba4\u4e3a<code>yes<\/code><\/li>\n\n\n\n<li><code>recursive<\/code>: \u662f\u5426\u9012\u5f52\u540c\u6b65\u5b50\u76ee\u5f55\uff0c\u9ed8\u8ba4\u4e3a<code>yes<\/code><\/li>\n\n\n\n<li><code>delete<\/code>: \u662f\u5426\u5220\u9664\u76ee\u6807\u8def\u5f84\u4e2d\u4e0d\u5b58\u5728\u4e8e\u6e90\u8def\u5f84\u7684\u6587\u4ef6\uff0c\u9ed8\u8ba4\u4e3a<code>no<\/code><\/li>\n\n\n\n<li><code>checksum<\/code>: \u662f\u5426\u4f7f\u7528\u6587\u4ef6\u6821\u9a8c\u548c\u6765\u51b3\u5b9a\u662f\u5426\u540c\u6b65\uff0c\u9ed8\u8ba4\u4e3a<code>no<\/code><\/li>\n<\/ul>\n\n\n\n<p class=\"wp-block-paragraph\">\u4f8b\u5982\uff1a\u5c06\/data\/test\/\u76ee\u5f55\u4e0b\u7684\u76ee\u5f55\u540c\u6b65\u5230\u8fdc\u7a0b\u4e3b\u673a\u7684\/data\/test\u76ee\u5f55\uff0c\u4f46\u662f\u4e0d\u5305\u542bdefg\u76ee\u5f55\uff0c\u5982\u4e0b\uff1a<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>ansible 192.168.51.207 -m synchronize -a \"src=\/data\/test\/ dest=\/data\/test compress=yes rsync_opts=--exclude=defg\"<\/code><\/pre>\n\n\n\n<p class=\"has-luminous-vivid-amber-background-color has-background wp-block-paragraph\">\u6ce8\u610f\uff1asrc=\/data\/test\/\u540e\u9762\u9700\u8981\u52a0&#8221;\/&#8221;\uff0c\u5982\u679c\u4e0d\u52a0\u4f1a\u628atest\u76ee\u5f55\u540d\u4e00\u8d77\u540c\u6b65\u8fc7\u53bb<\/p>\n","protected":false},"excerpt":{"rendered":"<p>ansible\u662f\u65b0\u51fa\u73b0\u7684\u81ea\u52a8\u5316\u8fd0\u7ef4\u5de5\u5177\uff0c\u57fa\u4e8ePython\u5f00\u53d1\uff0c\u96c6\u5408\u4e86\u4f17\u591a\u8fd0\u7ef4\u5de5\u5177\uff08puppet\u3001cfengin [&hellip;]<\/p>\n","protected":false},"author":3,"featured_media":2062,"comment_status":"closed","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[129,29],"tags":[98],"class_list":["post-2013","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-ansible","category-yunwei","tag-ansible"],"blocksy_meta":{"styles_descriptor":{"styles":{"desktop":"","tablet":"","mobile":""},"google_fonts":[],"version":8}},"_links":{"self":[{"href":"https:\/\/blog.ywdevops.cn\/index.php\/wp-json\/wp\/v2\/posts\/2013","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/blog.ywdevops.cn\/index.php\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/blog.ywdevops.cn\/index.php\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/blog.ywdevops.cn\/index.php\/wp-json\/wp\/v2\/users\/3"}],"replies":[{"embeddable":true,"href":"https:\/\/blog.ywdevops.cn\/index.php\/wp-json\/wp\/v2\/comments?post=2013"}],"version-history":[{"count":87,"href":"https:\/\/blog.ywdevops.cn\/index.php\/wp-json\/wp\/v2\/posts\/2013\/revisions"}],"predecessor-version":[{"id":21565,"href":"https:\/\/blog.ywdevops.cn\/index.php\/wp-json\/wp\/v2\/posts\/2013\/revisions\/21565"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/blog.ywdevops.cn\/index.php\/wp-json\/wp\/v2\/media\/2062"}],"wp:attachment":[{"href":"https:\/\/blog.ywdevops.cn\/index.php\/wp-json\/wp\/v2\/media?parent=2013"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/blog.ywdevops.cn\/index.php\/wp-json\/wp\/v2\/categories?post=2013"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/blog.ywdevops.cn\/index.php\/wp-json\/wp\/v2\/tags?post=2013"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}