{"id":265,"date":"2017-06-26T11:15:08","date_gmt":"2017-06-26T03:15:08","guid":{"rendered":"https:\/\/blog.jsjs.org\/?p=265"},"modified":"2017-06-26T11:15:08","modified_gmt":"2017-06-26T03:15:08","slug":"ansible%e5%b0%8f%e7%bb%93%ef%bc%88%e4%b8%83%ef%bc%89%e5%b8%b8%e7%94%a8%e6%a8%a1%e5%9d%97","status":"publish","type":"post","link":"https:\/\/blog.jsjs.org\/?p=265","title":{"rendered":"ansible\u5c0f\u7ed3\uff08\u4e03\uff09\u5e38\u7528\u6a21\u5757"},"content":{"rendered":"<p>\u5728<a href=\"http:\/\/www.361way.com\/ad-hoc-commands-modules\/4408.html\" target=\"_blank\" rel=\"noopener\">\u4e0a\u4e00\u7bc7<\/a>\u4e2d\u4ecb\u7ecd\u4e86commands\u90e8\u5206\u6a21\u5757\uff0c\u672c\u7bc7\u627f\u63a5\u4e0a\u7bc7\u4ecb\u7ecd\u4e0b\u5e38\u7528\u7684\u6a21\u5757\u3002\u6839\u636e\u5b98\u65b9\u7684\u5206\u7c7b\uff0c\u5c06\u6a21\u5757\u6309\u529f\u80fd\u5206\u7c7b\u4e3a\uff1a\u4e91\u6a21\u5757\u3001\u547d\u4ee4\u6a21\u5757\u3001\u6570\u636e\u5e93\u6a21\u5757\u3001\u6587\u4ef6\u6a21\u5757\u3001\u8d44\u4ea7\u6a21\u5757\u3001\u6d88\u606f\u6a21\u5757\u3001\u76d1\u63a7\u6a21\u5757\u3001\u7f51\u7edc\u6a21\u5757\u3001\u901a\u77e5\u6a21\u5757\u3001\u5305\u7ba1\u7406\u6a21\u5757\u3001\u6e90\u7801\u63a7\u5236\u6a21\u5757\u3001\u7cfb\u7edf\u6a21\u5757\u3001\u5355\u5143\u6a21\u5757\u3001web\u8bbe\u65bd\u6a21\u5757\u3001windows\u6a21\u5757 \uff0c\u5177\u4f53\u53ef\u4ee5\u53c2\u770b<a href=\"http:\/\/docs.ansible.com\/list_of_all_modules.html\" target=\"_blank\" rel=\"noopener\">\u5b98\u65b9\u9875\u9762<\/a>\u3002<\/p>\n<p>\u8fd9\u91cc\u4ece\u5b98\u65b9\u5206\u7c7b\u7684\u6a21\u5757\u91cc\u9009\u62e9\u6700\u5e38\u7528\u7684\u4e00\u4e9b\u6a21\u5757\u8fdb\u884c\u4ecb\u7ecd\uff08commands\u6a21\u5757\u4e0a\u4e00\u7bc7\u5df2\u7ecf\u4ecb\u7ecd\uff0c\u8fd9\u91cc\u4e0d\u518d\u63d0\uff09\u3002<\/p>\n<h3>\u4e00\u3001ping\u6a21\u5757<\/h3>\n<p>\u6d4b\u8bd5\u4e3b\u673a\u662f\u5426\u662f\u901a\u7684\uff0c\u7528\u6cd5\u5f88\u7b80\u5355\uff0c\u4e0d\u6d89\u53ca\u53c2\u6570\uff1a<\/p>\n<ol class=\"linenums\">\n<li class=\"L0\"><span class=\"pun\">[<\/span><span class=\"pln\">root@361way <\/span><span class=\"pun\">~]<\/span><span class=\"com\"># ansible 10.212.52.252 -m ping<\/span><\/li>\n<li class=\"L1\"><span class=\"lit\">10.212<\/span><span class=\"pun\">.<\/span><span class=\"lit\">52.252<\/span> <span class=\"pun\">|<\/span><span class=\"pln\"> success <\/span><span class=\"pun\">&gt;&gt;<\/span> <span class=\"pun\">{<\/span><\/li>\n<li class=\"L2\"><span class=\"str\">&#8220;changed&#8221;<\/span><span class=\"pun\">:<\/span><span class=\"pln\"> false<\/span><span class=\"pun\">,<\/span><\/li>\n<li class=\"L3\"><span class=\"str\">&#8220;ping&#8221;<\/span><span class=\"pun\">:<\/span> <span class=\"str\">&#8220;pong&#8221;<\/span><\/li>\n<li class=\"L4\"><span class=\"pun\">}<\/span><\/li>\n<\/ol>\n<h3>\u4e8c\u3001setup\u6a21\u5757<\/h3>\n<p>setup\u6a21\u5757\uff0c\u4e3b\u8981\u7528\u4e8e\u83b7\u53d6\u4e3b\u673a\u4fe1\u606f\uff0c\u5728playbooks\u91cc\u7ecf\u5e38\u4f1a\u7528\u5230\u7684\u4e00\u4e2a\u53c2\u6570gather_facts\u5c31\u4e0e\u8be5\u6a21\u5757\u76f8\u5173\u3002setup\u6a21\u5757\u4e0b\u7ecf\u5e38\u4f7f\u7528\u7684\u4e00\u4e2a\u53c2\u6570\u662ffilter\u53c2\u6570\uff0c\u5177\u4f53\u4f7f\u7528\u793a\u4f8b\u5982\u4e0b\uff08\u7531\u4e8e\u8f93\u51fa\u7ed3\u679c\u8f83\u591a\uff0c\u8fd9\u91cc\u53ea\u5217\u547d\u4ee4\u4e0d\u5199\u7ed3\u679c\uff09\uff1a<\/p>\n<ol class=\"linenums\">\n<li class=\"L0\"><span class=\"pun\">[<\/span><span class=\"pln\">root@361way <\/span><span class=\"pun\">~]<\/span><span class=\"com\"># ansible 10.212.52.252 -m setup -a &#8216;filter=ansible_*_mb&#8217; \/\/\u67e5\u770b\u4e3b\u673a\u5185\u5b58\u4fe1\u606f<\/span><\/li>\n<li class=\"L1\"><span class=\"pun\">[<\/span><span class=\"pln\">root@361way <\/span><span class=\"pun\">~]<\/span><span class=\"com\"># ansible 10.212.52.252 -m setup -a &#8216;filter=ansible_eth[0-2]&#8217; \/\/\u67e5\u770b\u5730\u63a5\u53e3\u4e3aeth0-2\u7684\u7f51\u5361\u4fe1\u606f<\/span><\/li>\n<li class=\"L2\"><span class=\"pun\">[<\/span><span class=\"pln\">root@361way <\/span><span class=\"pun\">~]<\/span><span class=\"com\"># ansible all -m setup &#8211;tree \/tmp\/facts \/\/\u5c06\u6240\u6709\u4e3b\u673a\u7684\u4fe1\u606f\u8f93\u5165\u5230\/tmp\/facts\u76ee\u5f55\u4e0b\uff0c\u6bcf\u53f0\u4e3b\u673a\u7684\u4fe1\u606f\u8f93\u5165\u5230\u4e3b\u673a\u540d\u6587\u4ef6\u4e2d\uff08\/etc\/ansible\/hosts\u91cc\u7684\u4e3b\u673a\u540d\uff09<\/span><\/li>\n<\/ol>\n<h3>\u4e09\u3001file\u6a21\u5757<\/h3>\n<p>file\u6a21\u5757\u4e3b\u8981\u7528\u4e8e\u8fdc\u7a0b\u4e3b\u673a\u4e0a\u7684\u6587\u4ef6\u64cd\u4f5c\uff0cfile\u6a21\u5757\u5305\u542b\u5982\u4e0b\u9009\u9879\uff1a<\/p>\n<ul>\n<li>force\uff1a\u9700\u8981\u5728\u4e24\u79cd\u60c5\u51b5\u4e0b\u5f3a\u5236\u521b\u5efa\u8f6f\u94fe\u63a5\uff0c\u4e00\u79cd\u662f\u6e90\u6587\u4ef6\u4e0d\u5b58\u5728\u4f46\u4e4b\u540e\u4f1a\u5efa\u7acb\u7684\u60c5\u51b5\u4e0b\uff1b\u53e6\u4e00\u79cd\u662f\u76ee\u6807\u8f6f\u94fe\u63a5\u5df2\u5b58\u5728,\u9700\u8981\u5148\u53d6\u6d88\u4e4b\u524d\u7684\u8f6f\u94fe\uff0c\u7136\u540e\u521b\u5efa\u65b0\u7684\u8f6f\u94fe\uff0c\u6709\u4e24\u4e2a\u9009\u9879\uff1ayes|no<\/li>\n<li>group\uff1a\u5b9a\u4e49\u6587\u4ef6\/\u76ee\u5f55\u7684\u5c5e\u7ec4<\/li>\n<li>mode\uff1a\u5b9a\u4e49\u6587\u4ef6\/\u76ee\u5f55\u7684\u6743\u9650<\/li>\n<li>owner\uff1a\u5b9a\u4e49\u6587\u4ef6\/\u76ee\u5f55\u7684\u5c5e\u4e3b<\/li>\n<li>path\uff1a\u5fc5\u9009\u9879\uff0c\u5b9a\u4e49\u6587\u4ef6\/\u76ee\u5f55\u7684\u8def\u5f84<\/li>\n<li>recurse\uff1a\u9012\u5f52\u7684\u8bbe\u7f6e\u6587\u4ef6\u7684\u5c5e\u6027\uff0c\u53ea\u5bf9\u76ee\u5f55\u6709\u6548<\/li>\n<li>src\uff1a\u8981\u88ab\u94fe\u63a5\u7684\u6e90\u6587\u4ef6\u7684\u8def\u5f84\uff0c\u53ea\u5e94\u7528\u4e8estate=link\u7684\u60c5\u51b5<\/li>\n<li>dest\uff1a\u88ab\u94fe\u63a5\u5230\u7684\u8def\u5f84\uff0c\u53ea\u5e94\u7528\u4e8estate=link\u7684\u60c5\u51b5<\/li>\n<li>state\uff1a\u00a0 directory\uff1a\u5982\u679c\u76ee\u5f55\u4e0d\u5b58\u5728\uff0c\u521b\u5efa\u76ee\u5f55<br \/>\nfile\uff1a\u5373\u4f7f\u6587\u4ef6\u4e0d\u5b58\u5728\uff0c\u4e5f\u4e0d\u4f1a\u88ab\u521b\u5efa<br \/>\nlink\uff1a\u521b\u5efa\u8f6f\u94fe\u63a5<br \/>\nhard\uff1a\u521b\u5efa\u786c\u94fe\u63a5<br \/>\ntouch\uff1a\u5982\u679c\u6587\u4ef6\u4e0d\u5b58\u5728\uff0c\u5219\u4f1a\u521b\u5efa\u4e00\u4e2a\u65b0\u7684\u6587\u4ef6\uff0c\u5982\u679c\u6587\u4ef6\u6216\u76ee\u5f55\u5df2\u5b58\u5728\uff0c\u5219\u66f4\u65b0\u5176\u6700\u540e\u4fee\u6539\u65f6\u95f4<br \/>\nabsent\uff1a\u5220\u9664\u76ee\u5f55\u3001\u6587\u4ef6\u6216\u8005\u53d6\u6d88\u94fe\u63a5\u6587\u4ef6<\/li>\n<\/ul>\n<p>\u4f7f\u7528\u793a\u4f8b\uff1a<\/p>\n<ol class=\"linenums\">\n<li class=\"L0\"><span class=\"pln\">ansible test <\/span><span class=\"pun\">&#8211;<\/span><span class=\"pln\">m file <\/span><span class=\"pun\">&#8211;<\/span><span class=\"pln\">a <\/span><span class=\"str\">&#8220;src=\/etc\/fstab dest=\/tmp\/fstab state=link&#8221;<\/span><\/li>\n<li class=\"L1\"><span class=\"pln\">ansible test <\/span><span class=\"pun\">&#8211;<\/span><span class=\"pln\">m file <\/span><span class=\"pun\">&#8211;<\/span><span class=\"pln\">a <\/span><span class=\"str\">&#8220;path=\/tmp\/fstab state=absent&#8221;<\/span><\/li>\n<li class=\"L2\"><span class=\"pln\">ansible test <\/span><span class=\"pun\">&#8211;<\/span><span class=\"pln\">m file <\/span><span class=\"pun\">&#8211;<\/span><span class=\"pln\">a <\/span><span class=\"str\">&#8220;path=\/tmp\/test state=touch&#8221;<\/span><\/li>\n<\/ol>\n<h3>\u56db\u3001copy\u6a21\u5757<\/h3>\n<p>\u590d\u5236\u6587\u4ef6\u5230\u8fdc\u7a0b\u4e3b\u673a\uff0ccopy\u6a21\u5757\u5305\u542b\u5982\u4e0b\u9009\u9879\uff1a<\/p>\n<ul>\n<li>backup\uff1a\u5728\u8986\u76d6\u4e4b\u524d\u5c06\u539f\u6587\u4ef6\u5907\u4efd\uff0c\u5907\u4efd\u6587\u4ef6\u5305\u542b\u65f6\u95f4\u4fe1\u606f\u3002\u6709\u4e24\u4e2a\u9009\u9879\uff1ayes|no<\/li>\n<li>content\uff1a\u7528\u4e8e\u66ff\u4ee3&#8221;src&#8221;,\u53ef\u4ee5\u76f4\u63a5\u8bbe\u5b9a\u6307\u5b9a\u6587\u4ef6\u7684\u503c<\/li>\n<li>dest\uff1a\u5fc5\u9009\u9879\u3002\u8981\u5c06\u6e90\u6587\u4ef6\u590d\u5236\u5230\u7684\u8fdc\u7a0b\u4e3b\u673a\u7684\u7edd\u5bf9\u8def\u5f84\uff0c\u5982\u679c\u6e90\u6587\u4ef6\u662f\u4e00\u4e2a\u76ee\u5f55\uff0c\u90a3\u4e48\u8be5\u8def\u5f84\u4e5f\u5fc5\u987b\u662f\u4e2a\u76ee\u5f55<\/li>\n<li>directory_mode\uff1a\u9012\u5f52\u7684\u8bbe\u5b9a\u76ee\u5f55\u7684\u6743\u9650\uff0c\u9ed8\u8ba4\u4e3a\u7cfb\u7edf\u9ed8\u8ba4\u6743\u9650<\/li>\n<li>force\uff1a\u5982\u679c\u76ee\u6807\u4e3b\u673a\u5305\u542b\u8be5\u6587\u4ef6\uff0c\u4f46\u5185\u5bb9\u4e0d\u540c\uff0c\u5982\u679c\u8bbe\u7f6e\u4e3ayes\uff0c\u5219\u5f3a\u5236\u8986\u76d6\uff0c\u5982\u679c\u4e3ano\uff0c\u5219\u53ea\u6709\u5f53\u76ee\u6807\u4e3b\u673a\u7684\u76ee\u6807\u4f4d\u7f6e\u4e0d\u5b58\u5728\u8be5\u6587\u4ef6\u65f6\uff0c\u624d\u590d\u5236\u3002\u9ed8\u8ba4\u4e3ayes<\/li>\n<li>others\uff1a\u6240\u6709\u7684file\u6a21\u5757\u91cc\u7684\u9009\u9879\u90fd\u53ef\u4ee5\u5728\u8fd9\u91cc\u4f7f\u7528<\/li>\n<li>src\uff1a\u8981\u590d\u5236\u5230\u8fdc\u7a0b\u4e3b\u673a\u7684\u6587\u4ef6\u5728\u672c\u5730\u7684\u5730\u5740\uff0c\u53ef\u4ee5\u662f\u7edd\u5bf9\u8def\u5f84\uff0c\u4e5f\u53ef\u4ee5\u662f\u76f8\u5bf9\u8def\u5f84\u3002\u5982\u679c\u8def\u5f84\u662f\u4e00\u4e2a\u76ee\u5f55\uff0c\u5b83\u5c06\u9012\u5f52\u590d\u5236\u3002\u5728\u8fd9\u79cd\u60c5\u51b5\u4e0b\uff0c\u5982\u679c\u8def\u5f84\u4f7f\u7528&#8221;\/&#8221;\u6765\u7ed3\u5c3e\uff0c\u5219\u53ea\u590d\u5236\u76ee\u5f55\u91cc\u7684\u5185\u5bb9\uff0c\u5982\u679c\u6ca1\u6709\u4f7f\u7528&#8221;\/&#8221;\u6765\u7ed3\u5c3e\uff0c\u5219\u5305\u542b\u76ee\u5f55\u5728\u5185\u7684\u6574\u4e2a\u5185\u5bb9\u5168\u90e8\u590d\u5236\uff0c\u7c7b\u4f3c\u4e8ersync\u3002<\/li>\n<li>validate \uff1aThe validation command to run before copying into place. The path to the file to validate is passed in via &#8216;%s&#8217; which must be present as in the visudo example below.<\/li>\n<\/ul>\n<p>\u793a\u4f8b\u5982\u4e0b\uff1a<\/p>\n<ol class=\"linenums\">\n<li class=\"L0\"><span class=\"pln\">ansible test <\/span><span class=\"pun\">&#8211;<\/span><span class=\"pln\">m copy <\/span><span class=\"pun\">&#8211;<\/span><span class=\"pln\">a <\/span><span class=\"str\">&#8220;src=\/srv\/myfiles\/foo.conf dest=\/etc\/foo.conf owner=foo group=foo mode=0644&#8221;<\/span><\/li>\n<li class=\"L1\"><span class=\"pln\">ansible test <\/span><span class=\"pun\">&#8211;<\/span><span class=\"pln\">m copy <\/span><span class=\"pun\">&#8211;<\/span><span class=\"pln\">a <\/span><span class=\"str\">&#8220;src=\/mine\/ntp.conf dest=\/etc\/ntp.conf owner=root group=root mode=644 backup=yes&#8221;<\/span><\/li>\n<li class=\"L2\"><span class=\"pln\">ansible test <\/span><span class=\"pun\">&#8211;<\/span><span class=\"pln\">m copy <\/span><span class=\"pun\">&#8211;<\/span><span class=\"pln\">a <\/span><span class=\"str\">&#8220;src=\/mine\/sudoers dest=\/etc\/sudoers validate=&#8217;visudo -cf %s'&#8221;<\/span><\/li>\n<\/ol>\n<h3>\u4e94\u3001service\u6a21\u5757<\/h3>\n<p>\u7528\u4e8e\u7ba1\u7406\u670d\u52a1<br \/>\n\u8be5\u6a21\u5757\u5305\u542b\u5982\u4e0b\u9009\u9879\uff1a<\/p>\n<p>arguments\uff1a\u7ed9\u547d\u4ee4\u884c\u63d0\u4f9b\u4e00\u4e9b\u9009\u9879<\/p>\n<p>enabled\uff1a\u662f\u5426\u5f00\u673a\u542f\u52a8 yes|no<\/p>\n<p>name\uff1a\u5fc5\u9009\u9879\uff0c\u670d\u52a1\u540d\u79f0<\/p>\n<p>pattern\uff1a\u5b9a\u4e49\u4e00\u4e2a\u6a21\u5f0f\uff0c\u5982\u679c\u901a\u8fc7status\u6307\u4ee4\u6765\u67e5\u770b\u670d\u52a1\u7684\u72b6\u6001\u65f6\uff0c\u6ca1\u6709\u54cd\u5e94\uff0c\u5c31\u4f1a\u901a\u8fc7ps\u6307\u4ee4\u5728\u8fdb\u7a0b\u4e2d\u6839\u636e\u8be5\u6a21\u5f0f\u8fdb\u884c\u67e5\u627e\uff0c\u5982\u679c\u5339\u914d\u5230\uff0c\u5219\u8ba4\u4e3a\u8be5\u670d\u52a1\u4f9d\u7136\u5728\u8fd0\u884c<\/p>\n<p>runlevel\uff1a\u8fd0\u884c\u7ea7\u522b<\/p>\n<p>sleep\uff1a\u5982\u679c\u6267\u884c\u4e86restarted\uff0c\u5728\u5219stop\u548cstart\u4e4b\u95f4\u6c89\u7761\u51e0\u79d2\u949f<\/p>\n<p>state\uff1a\u5bf9\u5f53\u524d\u670d\u52a1\u6267\u884c\u542f\u52a8\uff0c\u505c\u6b62\u3001\u91cd\u542f\u3001\u91cd\u65b0\u52a0\u8f7d\u7b49\u64cd\u4f5c\uff08started,stopped,restarted,reloaded\uff09<\/p>\n<p>\u4f7f\u7528\u793a\u4f8b\uff1a<\/p>\n<ol class=\"linenums\">\n<li class=\"L0\"><span class=\"com\"># Example action to reload service httpd, in all cases<\/span><\/li>\n<li class=\"L1\"><span class=\"pun\">&#8211;<\/span><span class=\"pln\"> service<\/span><span class=\"pun\">:<\/span><span class=\"pln\"> name<\/span><span class=\"pun\">=<\/span><span class=\"pln\">httpd state<\/span><span class=\"pun\">=<\/span><span class=\"pln\">reloaded<\/span><\/li>\n<li class=\"L2\"><span class=\"com\"># Example action to enable service httpd, and not touch the running state<\/span><\/li>\n<li class=\"L3\"><span class=\"pun\">&#8211;<\/span><span class=\"pln\"> service<\/span><span class=\"pun\">:<\/span><span class=\"pln\"> name<\/span><span class=\"pun\">=<\/span><span class=\"pln\">httpd enabled<\/span><span class=\"pun\">=<\/span><span class=\"pln\">yes<\/span><\/li>\n<li class=\"L4\"><span class=\"com\"># Example action to start service foo, based on running process \/usr\/bin\/foo<\/span><\/li>\n<li class=\"L5\"><span class=\"pun\">&#8211;<\/span><span class=\"pln\"> service<\/span><span class=\"pun\">:<\/span><span class=\"pln\"> name<\/span><span class=\"pun\">=<\/span><span class=\"pln\">foo pattern<\/span><span class=\"pun\">=\/<\/span><span class=\"pln\">usr<\/span><span class=\"pun\">\/<\/span><span class=\"pln\">bin<\/span><span class=\"pun\">\/<\/span><span class=\"pln\">foo state<\/span><span class=\"pun\">=<\/span><span class=\"pln\">started<\/span><\/li>\n<li class=\"L6\"><span class=\"com\"># Example action to restart network service for interface eth0<\/span><\/li>\n<li class=\"L7\"><span class=\"pun\">&#8211;<\/span><span class=\"pln\"> service<\/span><span class=\"pun\">:<\/span><span class=\"pln\"> name<\/span><span class=\"pun\">=<\/span><span class=\"pln\">network state<\/span><span class=\"pun\">=<\/span><span class=\"pln\">restarted args<\/span><span class=\"pun\">=<\/span><span class=\"pln\">eth0<\/span><\/li>\n<\/ol>\n<h3>\u516d\u3001cron\u6a21\u5757<\/h3>\n<ul>\n<li>\u7528\u4e8e\u7ba1\u7406\u8ba1\u5212\u4efb\u52a1<br \/>\n\u5305\u542b\u5982\u4e0b\u9009\u9879\uff1a<\/li>\n<li>backup\uff1a\u5bf9\u8fdc\u7a0b\u4e3b\u673a\u4e0a\u7684\u539f\u4efb\u52a1\u8ba1\u5212\u5185\u5bb9\u4fee\u6539\u4e4b\u524d\u505a\u5907\u4efd<\/li>\n<li>cron_file\uff1a\u5982\u679c\u6307\u5b9a\u8be5\u9009\u9879\uff0c\u5219\u7528\u8be5\u6587\u4ef6\u66ff\u6362\u8fdc\u7a0b\u4e3b\u673a\u4e0a\u7684cron.d\u76ee\u5f55\u4e0b\u7684\u7528\u6237\u7684\u4efb\u52a1\u8ba1\u5212<\/li>\n<li>day\uff1a\u65e5\uff081-31\uff0c*\uff0c*\/2,\u2026\u2026\uff09<\/li>\n<li>hour\uff1a\u5c0f\u65f6\uff080-23\uff0c*\uff0c*\/2\uff0c\u2026\u2026\uff09<\/li>\n<li>minute\uff1a\u5206\u949f\uff080-59\uff0c*\uff0c*\/2\uff0c\u2026\u2026\uff09<\/li>\n<li>month\uff1a\u6708\uff081-12\uff0c*\uff0c*\/2\uff0c\u2026\u2026\uff09<\/li>\n<li>weekday\uff1a\u5468\uff080-7\uff0c*\uff0c\u2026\u2026\uff09<\/li>\n<li>job\uff1a\u8981\u6267\u884c\u7684\u4efb\u52a1\uff0c\u4f9d\u8d56\u4e8estate=present<\/li>\n<li>name\uff1a\u8be5\u4efb\u52a1\u7684\u63cf\u8ff0<\/li>\n<li>special_time\uff1a\u6307\u5b9a\u4ec0\u4e48\u65f6\u5019\u6267\u884c\uff0c\u53c2\u6570\uff1areboot,yearly,annually,monthly,weekly,daily,hourly<\/li>\n<li>state\uff1a\u786e\u8ba4\u8be5\u4efb\u52a1\u8ba1\u5212\u662f\u521b\u5efa\u8fd8\u662f\u5220\u9664<\/li>\n<li>user\uff1a\u4ee5\u54ea\u4e2a\u7528\u6237\u7684\u8eab\u4efd\u6267\u884c<\/li>\n<\/ul>\n<p>\u793a\u4f8b\uff1a<\/p>\n<ol class=\"linenums\">\n<li class=\"L0\"><span class=\"pln\">ansible test <\/span><span class=\"pun\">&#8211;<\/span><span class=\"pln\">m cron <\/span><span class=\"pun\">&#8211;<\/span><span class=\"pln\">a <\/span><span class=\"str\">&#8216;name=&#8221;a job for reboot&#8221; special_time=reboot job=&#8221;\/some\/job.sh&#8221;&#8216;<\/span><\/li>\n<li class=\"L1\"><span class=\"pln\">ansible test <\/span><span class=\"pun\">&#8211;<\/span><span class=\"pln\">m cron <\/span><span class=\"pun\">&#8211;<\/span><span class=\"pln\">a <\/span><span class=\"str\">&#8216;name=&#8221;yum autoupdate&#8221; weekday=&#8221;2&#8243; minute=0 hour=12 user=&#8221;root<\/span><\/li>\n<li class=\"L2\"><span class=\"str\">ansible 10.212.52.252 -m cron -a &#8216;<\/span><span class=\"pln\">backup<\/span><span class=\"pun\">=<\/span><span class=\"str\">&#8220;True&#8221;<\/span><span class=\"pln\"> name<\/span><span class=\"pun\">=<\/span><span class=\"str\">&#8220;test&#8221;<\/span><span class=\"pln\"> minute<\/span><span class=\"pun\">=<\/span><span class=\"str\">&#8220;0&#8221;<\/span><span class=\"pln\"> hour<\/span><span class=\"pun\">=<\/span><span class=\"str\">&#8220;2&#8221;<\/span><span class=\"pln\"> job<\/span><span class=\"pun\">=<\/span><span class=\"str\">&#8220;ls -alh &gt; \/dev\/null&#8221;&#8216;<\/span><\/li>\n<li class=\"L3\"><span class=\"str\">ansilbe test -m cron -a &#8216;<\/span><span class=\"pln\">cron_file<\/span><span class=\"pun\">=<\/span><span class=\"pln\">ansible_yum<\/span><span class=\"pun\">&#8211;<\/span><span class=\"pln\">autoupdate state<\/span><span class=\"pun\">=<\/span><span class=\"pln\">absent<\/span><span class=\"str\">&#8216;<\/span><\/li>\n<\/ol>\n<h3>\u4e03\u3001yum\u6a21\u5757<\/h3>\n<p>\u4f7f\u7528yum\u5305\u7ba1\u7406\u5668\u6765\u7ba1\u7406\u8f6f\u4ef6\u5305\uff0c\u5176\u9009\u9879\u6709\uff1a<\/p>\n<ul>\n<li>config_file\uff1ayum\u7684\u914d\u7f6e\u6587\u4ef6<\/li>\n<li>disable_gpg_check\uff1a\u5173\u95edgpg_check<\/li>\n<li>disablerepo\uff1a\u4e0d\u542f\u7528\u67d0\u4e2a\u6e90<\/li>\n<li>enablerepo\uff1a\u542f\u7528\u67d0\u4e2a\u6e90<\/li>\n<li>name\uff1a\u8981\u8fdb\u884c\u64cd\u4f5c\u7684\u8f6f\u4ef6\u5305\u7684\u540d\u5b57\uff0c\u4e5f\u53ef\u4ee5\u4f20\u9012\u4e00\u4e2aurl\u6216\u8005\u4e00\u4e2a\u672c\u5730\u7684rpm\u5305\u7684\u8def\u5f84<\/li>\n<li>state\uff1a\u72b6\u6001\uff08present\uff0cabsent\uff0clatest\uff09<\/li>\n<\/ul>\n<p>\u793a\u4f8b\u5982\u4e0b\uff1a<\/p>\n<ol class=\"linenums\">\n<li class=\"L0\"><span class=\"pln\">ansible test <\/span><span class=\"pun\">&#8211;<\/span><span class=\"pln\">m yum <\/span><span class=\"pun\">&#8211;<\/span><span class=\"pln\">a <\/span><span class=\"str\">&#8216;name=httpd state=latest&#8217;<\/span><\/li>\n<li class=\"L1\"><span class=\"pln\">ansible test <\/span><span class=\"pun\">&#8211;<\/span><span class=\"pln\">m yum <\/span><span class=\"pun\">&#8211;<\/span><span class=\"pln\">a <\/span><span class=\"str\">&#8216;name=&#8221;@Development tools&#8221; state=present&#8217;<\/span><\/li>\n<li class=\"L2\"><span class=\"pln\">ansible test <\/span><span class=\"pun\">&#8211;<\/span><span class=\"pln\">m yum <\/span><span class=\"pun\">&#8211;<\/span><span class=\"pln\">a <\/span><span class=\"str\">&#8216;name=http:\/\/nginx.org\/packages\/centos\/6\/noarch\/RPMS\/nginx-release-centos-6-0.el6.ngx.noarch.rpm state=present&#8217;<\/span><\/li>\n<\/ol>\n<h3>\u516b\u3001user\u6a21\u5757\u4e0egroup\u6a21\u5757<\/h3>\n<p>user\u6a21\u5757\u662f\u8bf7\u6c42\u7684\u662fuseradd, userdel, usermod\u4e09\u4e2a\u6307\u4ee4\uff0cgoup\u6a21\u5757\u8bf7\u6c42\u7684\u662fgroupadd, groupdel, groupmod \u4e09\u4e2a\u6307\u4ee4\uff0c\u5177\u4f53\u53c2\u6570\u8fd9\u91cc\u4e0d\u518d\u7ec6\u8bb2\uff0c\u76f4\u63a5\u4e0a\u793a\u4f8b\u3002<\/p>\n<h4>1\u3001user\u6a21\u5757\u793a\u4f8b\uff1a<\/h4>\n<ol class=\"linenums\">\n<li class=\"L0\"><span class=\"pun\">&#8211;<\/span><span class=\"pln\"> user<\/span><span class=\"pun\">:<\/span><span class=\"pln\"> name<\/span><span class=\"pun\">=<\/span><span class=\"pln\">johnd comment<\/span><span class=\"pun\">=<\/span><span class=\"str\">&#8220;John Doe&#8221;<\/span><span class=\"pln\"> uid<\/span><span class=\"pun\">=<\/span><span class=\"lit\">1040<\/span><span class=\"pln\"> group<\/span><span class=\"pun\">=<\/span><span class=\"pln\">admin<\/span><\/li>\n<li class=\"L1\"><span class=\"pun\">&#8211;<\/span><span class=\"pln\"> user<\/span><span class=\"pun\">:<\/span><span class=\"pln\"> name<\/span><span class=\"pun\">=<\/span><span class=\"pln\">james shell<\/span><span class=\"pun\">=\/<\/span><span class=\"pln\">bin<\/span><span class=\"pun\">\/<\/span><span class=\"pln\">bash groups<\/span><span class=\"pun\">=<\/span><span class=\"pln\">admins<\/span><span class=\"pun\">,<\/span><span class=\"pln\">developers append<\/span><span class=\"pun\">=<\/span><span class=\"pln\">yes<\/span><\/li>\n<li class=\"L2\"><span class=\"pun\">&#8211;<\/span><span class=\"pln\"> user<\/span><span class=\"pun\">:<\/span><span class=\"pln\"> name<\/span><span class=\"pun\">=<\/span><span class=\"pln\">johnd state<\/span><span class=\"pun\">=<\/span><span class=\"pln\">absent remove<\/span><span class=\"pun\">=<\/span><span class=\"pln\">yes<\/span><\/li>\n<li class=\"L3\"><span class=\"pun\">&#8211;<\/span><span class=\"pln\"> user<\/span><span class=\"pun\">:<\/span><span class=\"pln\"> name<\/span><span class=\"pun\">=<\/span><span class=\"pln\">james18 shell<\/span><span class=\"pun\">=\/<\/span><span class=\"pln\">bin<\/span><span class=\"pun\">\/<\/span><span class=\"pln\">zsh groups<\/span><span class=\"pun\">=<\/span><span class=\"pln\">developers expires<\/span><span class=\"pun\">=<\/span><span class=\"lit\">1422403387<\/span><\/li>\n<li class=\"L4\"><span class=\"com\">#\u751f\u6210\u5bc6\u94a5\u65f6\uff0c\u53ea\u4f1a\u751f\u6210\u516c\u94a5\u6587\u4ef6\u548c\u79c1\u94a5\u6587\u4ef6\uff0c\u548c\u76f4\u63a5\u4f7f\u7528ssh-keygen\u6307\u4ee4\u6548\u679c\u76f8\u540c\uff0c\u4e0d\u4f1a\u751f\u6210authorized_keys\u6587\u4ef6\u3002<\/span><\/li>\n<li class=\"L5\"><span class=\"pun\">&#8211;<\/span><span class=\"pln\"> user<\/span><span class=\"pun\">:<\/span><span class=\"pln\"> name<\/span><span class=\"pun\">=<\/span><span class=\"pln\">test generate_ssh_key<\/span><span class=\"pun\">=<\/span><span class=\"pln\">yes ssh_key_bits<\/span><span class=\"pun\">=<\/span><span class=\"lit\">2048<\/span><span class=\"pln\"> ssh_key_file<\/span><span class=\"pun\">=.<\/span><span class=\"pln\">ssh<\/span><span class=\"pun\">\/<\/span><span class=\"pln\">id_rsa<\/span><\/li>\n<\/ol>\n<p>\u6ce8\uff1a\u6307\u5b9apassword\u53c2\u6570\u65f6\uff0c\u4e0d\u80fd\u4f7f\u7528\u540e\u9762\u8fd9\u4e00\u4e32\u5bc6\u7801\u4f1a\u88ab\u76f4\u63a5\u4f20\u9001\u5230\u88ab\u7ba1\u7406\u4e3b\u673a\u7684\/etc\/shadow\u6587\u4ef6\u4e2d\uff0c\u6240\u4ee5\u9700\u8981\u5148\u5c06\u5bc6\u7801\u5b57\u7b26\u4e32\u8fdb\u884c\u52a0\u5bc6\u5904\u7406\u3002\u7136\u540e\u5c06\u5f97\u5230\u7684\u5b57\u7b26\u4e32\u653e\u5230password\u4e2d\u5373\u53ef\u3002<\/p>\n<ol class=\"linenums\">\n<li class=\"L0\"><span class=\"pun\">[<\/span><span class=\"pln\">root@361way <\/span><span class=\"pun\">~]<\/span><span class=\"com\"># openssl passwd -1 -salt $(&lt; \/dev\/urandom tr -dc &#8216;[:alnum:]&#8217; | head -c 32)<\/span><\/li>\n<li class=\"L1\"><span class=\"typ\">Password<\/span><span class=\"pun\">:<\/span><\/li>\n<li class=\"L2\"><span class=\"pln\">$1$YngB4z8s$atSVltYKnDxJmWZ3s<\/span><span class=\"pun\">.<\/span><span class=\"lit\">4<\/span><span class=\"pun\">\/<\/span><span class=\"lit\">80<\/span><\/li>\n<li class=\"L3\"><span class=\"pun\">\u6216\u8005<\/span><\/li>\n<li class=\"L4\"><span class=\"pun\">[<\/span><span class=\"pln\">root@361way <\/span><span class=\"pun\">~]<\/span><span class=\"com\"># echo &#8220;123456&#8221; | openssl passwd -1 -salt $(&lt; \/dev\/urandom tr -dc &#8216;[:alnum:]&#8217; | head -c 32) -stdin<\/span><\/li>\n<li class=\"L5\"><span class=\"pln\">$1$4P4PlFuE$ur9ObJiT5iHNrb9QnjaIB0<\/span><\/li>\n<li class=\"L6\"><span class=\"com\">#\u7ecf\u9a8c\u8bc1\u4e0b\u9762\u751f\u6210\u7684\u5bc6\u7801\u4e32\u4e5f\u53ef\u4ee5\u6b63\u5e38\u4f7f\u7528\uff0c\u4e0d\u8fc7\u4e0e\/etc\/shadow\u7684\u683c\u5f0f\u4e0d\u7edf\u4e00\uff0c\u4e0d\u5efa\u8bae\u4f7f\u7528<\/span><\/li>\n<li class=\"L7\"><span class=\"pun\">[<\/span><span class=\"pln\">root@361way <\/span><span class=\"pun\">~]<\/span><span class=\"com\"># openssl passwd -salt -1 &#8220;123456&#8221;<\/span><\/li>\n<li class=\"L8\"><span class=\"pun\">&#8211;<\/span><span class=\"lit\">1yEWqqJQLC66<\/span><\/li>\n<li class=\"L9\"><span class=\"com\">#\u4f7f\u7528\u4e0a\u9762\u7684\u5bc6\u7801\u521b\u5efa\u7528\u6237<\/span><\/li>\n<li class=\"L0\"><span class=\"pun\">[<\/span><span class=\"pln\">root@361way <\/span><span class=\"pun\">~]<\/span><span class=\"com\">#ansible all -m user -a &#8216;name=foo password=&#8221;$1$4P4PlFuE$ur9ObJiT5iHNrb9QnjaIB0&#8243;&#8216;<\/span><\/li>\n<\/ol>\n<p>\u4e0d\u540c\u7684\u53d1\u884c\u7248\u9ed8\u8ba4\u4f7f\u7528\u7684\u52a0\u5bc6\u65b9\u5f0f\u53ef\u80fd\u4f1a\u6709\u533a\u522b\uff0c\u5177\u4f53\u53ef\u4ee5\u67e5\u770b\/etc\/login.defs\u6587\u4ef6\u786e\u8ba4\uff0ccentos 6.5\u7248\u672c\u4f7f\u7528\u7684\u662fSHA512\u52a0\u5bc6\u7b97\u6cd5\uff0c\u751f\u6210\u5bc6\u7801\u53ef\u4ee5\u901a\u8fc7ansible\u5b98\u65b9\u7ed9\u51fa\u7684\u793a\u4f8b\uff1a<\/p>\n<ol class=\"linenums\">\n<li class=\"L0\"><span class=\"pln\">python <\/span><span class=\"pun\">&#8211;<\/span><span class=\"pln\">c <\/span><span class=\"str\">&#8220;from passlib.hash import sha512_crypt; import getpass; print sha512_crypt.encrypt(getpass.getpass())&#8221;<\/span><\/li>\n<\/ol>\n<h4>2\u3001group\u793a\u4f8b<\/h4>\n<ol class=\"linenums\">\n<li class=\"L0\"><span class=\"pun\">&#8211;<\/span><span class=\"pln\"> group<\/span><span class=\"pun\">:<\/span><span class=\"pln\"> name<\/span><span class=\"pun\">=<\/span><span class=\"pln\">somegroup state<\/span><span class=\"pun\">=<\/span><span class=\"pln\">present<\/span><\/li>\n<\/ol>\n<p>\u4e5d\u3001synchronize\u6a21\u5757<\/p>\n<p>\u4f7f\u7528rsync\u540c\u6b65\u6587\u4ef6\uff0c\u5176\u53c2\u6570\u5982\u4e0b\uff1a<\/p>\n<ul>\n<li>archive: \u5f52\u6863\uff0c\u76f8\u5f53\u4e8e\u540c\u65f6\u5f00\u542frecursive(\u9012\u5f52)\u3001links\u3001perms\u3001times\u3001owner\u3001group\u3001-D\u9009\u9879\u90fd\u4e3ayes \uff0c\u9ed8\u8ba4\u8be5\u9879\u4e3a\u5f00\u542f<\/li>\n<li>checksum: \u8df3\u8fc7\u68c0\u6d4bsum\u503c\uff0c\u9ed8\u8ba4\u5173\u95ed<\/li>\n<li>compress:\u662f\u5426\u5f00\u542f\u538b\u7f29<\/li>\n<li>copy_links\uff1a\u590d\u5236\u94fe\u63a5\u6587\u4ef6\uff0c\u9ed8\u8ba4\u4e3ano \uff0c\u6ce8\u610f\u540e\u9762\u8fd8\u6709\u4e00\u4e2alinks\u53c2\u6570<\/li>\n<li>delete: \u5220\u9664\u4e0d\u5b58\u5728\u7684\u6587\u4ef6\uff0c\u9ed8\u8ba4no<\/li>\n<li>dest\uff1a\u76ee\u5f55\u8def\u5f84<\/li>\n<li>dest_port\uff1a\u9ed8\u8ba4\u76ee\u5f55\u4e3b\u673a\u4e0a\u7684\u7aef\u53e3 \uff0c\u9ed8\u8ba4\u662f22\uff0c\u8d70\u7684ssh\u534f\u8bae<\/li>\n<li>dirs\uff1a\u4f20\u901f\u76ee\u5f55\u4e0d\u8fdb\u884c\u9012\u5f52\uff0c\u9ed8\u8ba4\u4e3ano\uff0c\u5373\u8fdb\u884c\u76ee\u5f55\u9012\u5f52<\/li>\n<li>rsync_opts\uff1arsync\u53c2\u6570\u90e8\u5206<\/li>\n<li>set_remote_user\uff1a\u4e3b\u8981\u7528\u4e8e\/etc\/ansible\/hosts\u4e2d\u5b9a\u4e49\u6216\u9ed8\u8ba4\u4f7f\u7528\u7684\u7528\u6237\u4e0ersync\u4f7f\u7528\u7684\u7528\u6237\u4e0d\u540c\u7684\u60c5\u51b5<\/li>\n<li>mode: push\u6216pull \u6a21\u5757\uff0cpush\u6a21\u7684\u8bdd\uff0c\u4e00\u822c\u7528\u4e8e\u4ece\u672c\u673a\u5411\u8fdc\u7a0b\u4e3b\u673a\u4e0a\u4f20\u6587\u4ef6\uff0cpull \u6a21\u5f0f\u7528\u4e8e\u4ece\u8fdc\u7a0b\u4e3b\u673a\u4e0a\u53d6\u6587\u4ef6<\/li>\n<\/ul>\n<p>\u53e6\u5916\u8fd8\u6709\u5176\u4ed6\u53c2\u6570\uff0c\u8fd9\u91cc\u4e0d\u518d\u4e00\u4e00\u8bf4\u660e\u3002\u4e0a\u51e0\u4e2a\u7528\u6cd5\uff1a<\/p>\n<ol class=\"linenums\">\n<li class=\"L0\"><span class=\"pln\">src<\/span><span class=\"pun\">=<\/span><span class=\"pln\">some<\/span><span class=\"pun\">\/<\/span><span class=\"pln\">relative<\/span><span class=\"pun\">\/<\/span><span class=\"pln\">path dest<\/span><span class=\"pun\">=\/<\/span><span class=\"pln\">some<\/span><span class=\"pun\">\/<\/span><span class=\"pln\">absolute<\/span><span class=\"pun\">\/<\/span><span class=\"pln\">path rsync_path<\/span><span class=\"pun\">=<\/span><span class=\"str\">&#8220;sudo rsync&#8221;<\/span><\/li>\n<li class=\"L1\"><span class=\"pln\">src<\/span><span class=\"pun\">=<\/span><span class=\"pln\">some<\/span><span class=\"pun\">\/<\/span><span class=\"pln\">relative<\/span><span class=\"pun\">\/<\/span><span class=\"pln\">path dest<\/span><span class=\"pun\">=\/<\/span><span class=\"pln\">some<\/span><span class=\"pun\">\/<\/span><span class=\"pln\">absolute<\/span><span class=\"pun\">\/<\/span><span class=\"pln\">path archive<\/span><span class=\"pun\">=<\/span><span class=\"pln\">no links<\/span><span class=\"pun\">=<\/span><span class=\"pln\">yes<\/span><\/li>\n<li class=\"L2\"><span class=\"pln\">src<\/span><span class=\"pun\">=<\/span><span class=\"pln\">some<\/span><span class=\"pun\">\/<\/span><span class=\"pln\">relative<\/span><span class=\"pun\">\/<\/span><span class=\"pln\">path dest<\/span><span class=\"pun\">=\/<\/span><span class=\"pln\">some<\/span><span class=\"pun\">\/<\/span><span class=\"pln\">absolute<\/span><span class=\"pun\">\/<\/span><span class=\"pln\">path checksum<\/span><span class=\"pun\">=<\/span><span class=\"pln\">yes times<\/span><span class=\"pun\">=<\/span><span class=\"pln\">no<\/span><\/li>\n<li class=\"L3\"><span class=\"pln\">src<\/span><span class=\"pun\">=\/<\/span><span class=\"pln\">tmp<\/span><span class=\"pun\">\/<\/span><span class=\"pln\">helloworld dest<\/span><span class=\"pun\">=\/<\/span><span class=\"pln\">var<\/span><span class=\"pun\">\/<\/span><span class=\"pln\">www<\/span><span class=\"pun\">\/<\/span><span class=\"pln\">helloword rsync_opts<\/span><span class=\"pun\">=&#8211;<\/span><span class=\"pln\">no<\/span><span class=\"pun\">&#8211;<\/span><span class=\"pln\">motd<\/span><span class=\"pun\">,&#8211;<\/span><span class=\"pln\">exclude<\/span><span class=\"pun\">=.<\/span><span class=\"pln\">git mode<\/span><span class=\"pun\">=<\/span><span class=\"pln\">pull<\/span><\/li>\n<\/ol>\n<h3>\u5341\u3001mount\u6a21\u5757<\/h3>\n<ul>\n<li>\u914d\u7f6e\u6302\u8f7d\u70b9<br \/>\n\u9009\u9879\uff1a<\/li>\n<li>dump<br \/>\nfstype\uff1a\u5fc5\u9009\u9879\uff0c\u6302\u8f7d\u6587\u4ef6\u7684\u7c7b\u578b<\/li>\n<li>name\uff1a\u5fc5\u9009\u9879\uff0c\u6302\u8f7d\u70b9<\/li>\n<li>opts\uff1a\u4f20\u9012\u7ed9mount\u547d\u4ee4\u7684\u53c2\u6570<\/li>\n<li>src\uff1a\u5fc5\u9009\u9879\uff0c\u8981\u6302\u8f7d\u7684\u6587\u4ef6<\/li>\n<li>state\uff1a\u5fc5\u9009\u9879present\uff1a\u53ea\u5904\u7406fstab\u4e2d\u7684\u914d\u7f6e\n<p>absent\uff1a\u5220\u9664\u6302\u8f7d\u70b9<\/p>\n<p>mounted\uff1a\u81ea\u52a8\u521b\u5efa\u6302\u8f7d\u70b9\u5e76\u6302\u8f7d\u4e4b<\/p>\n<p>umounted\uff1a\u5378\u8f7d<\/li>\n<\/ul>\n<p>\u793a\u4f8b\uff1a<\/p>\n<ol class=\"linenums\">\n<li class=\"L0\"><span class=\"pln\">name<\/span><span class=\"pun\">=\/<\/span><span class=\"pln\">mnt<\/span><span class=\"pun\">\/<\/span><span class=\"pln\">dvd src<\/span><span class=\"pun\">=\/<\/span><span class=\"pln\">dev<\/span><span class=\"pun\">\/<\/span><span class=\"pln\">sr0 fstype<\/span><span class=\"pun\">=<\/span><span class=\"pln\">iso9660 opts<\/span><span class=\"pun\">=<\/span><span class=\"pln\">ro state<\/span><span class=\"pun\">=<\/span><span class=\"pln\">present<\/span><\/li>\n<li class=\"L1\"><span class=\"pln\">name<\/span><span class=\"pun\">=\/<\/span><span class=\"pln\">srv<\/span><span class=\"pun\">\/<\/span><span class=\"pln\">disk src<\/span><span class=\"pun\">=<\/span><span class=\"str\">&#8216;LABEL=SOME_LABEL&#8217;<\/span><span class=\"pln\"> state<\/span><span class=\"pun\">=<\/span><span class=\"pln\">present<\/span><\/li>\n<li class=\"L2\"><span class=\"pln\">name<\/span><span class=\"pun\">=\/<\/span><span class=\"pln\">home src<\/span><span class=\"pun\">=<\/span><span class=\"str\">&#8216;UUID=b3e48f45-f933-4c8e-a700-22a159ec9077&#8217;<\/span><span class=\"pln\"> opts<\/span><span class=\"pun\">=<\/span><span class=\"pln\">noatime state<\/span><span class=\"pun\">=<\/span><span class=\"pln\">present<\/span><\/li>\n<li class=\"L3\"><span class=\"pln\">ansible test <\/span><span class=\"pun\">&#8211;<\/span><span class=\"pln\">a <\/span><span class=\"str\">&#8216;dd if=\/dev\/zero of=\/disk.img bs=4k count=1024&#8217;<\/span><\/li>\n<li class=\"L4\"><span class=\"pln\">ansible test <\/span><span class=\"pun\">&#8211;<\/span><span class=\"pln\">a <\/span><span class=\"str\">&#8216;losetup \/dev\/loop0 \/disk.img&#8217;<\/span><\/li>\n<li class=\"L5\"><span class=\"pln\">ansible test <\/span><span class=\"pun\">&#8211;<\/span><span class=\"pln\">m filesystem <\/span><span class=\"str\">&#8216;fstype=ext4 force=yes opts=-F dev=\/dev\/loop0&#8217;<\/span><\/li>\n<li class=\"L6\"><span class=\"pln\">ansible test <\/span><span class=\"pun\">&#8211;<\/span><span class=\"pln\">m mount <\/span><span class=\"str\">&#8216;name=\/mnt src=\/dev\/loop0 fstype=ext4 state=mounted opts=rw&#8217;<\/span><\/li>\n<\/ol>\n<h3>\u5341\u4e00\u3001get_url \u6a21\u5757<\/h3>\n<p>\u8be5\u6a21\u5757\u4e3b\u8981\u7528\u4e8e\u4ecehttp\u3001ftp\u3001https\u670d\u52a1\u5668\u4e0a\u4e0b\u8f7d\u6587\u4ef6\uff08\u7c7b\u4f3c\u4e8ewget\uff09\uff0c\u4e3b\u8981\u6709\u5982\u4e0b\u9009\u9879\uff1a<\/p>\n<p>sha256sum\uff1a\u4e0b\u8f7d\u5b8c\u6210\u540e\u8fdb\u884csha256 check\uff1b<\/p>\n<p>timeout\uff1a\u4e0b\u8f7d\u8d85\u65f6\u65f6\u95f4\uff0c\u9ed8\u8ba410s<\/p>\n<p>url\uff1a\u4e0b\u8f7d\u7684URL<\/p>\n<p>url_password\u3001url_username\uff1a\u4e3b\u8981\u7528\u4e8e\u9700\u8981\u7528\u6237\u540d\u5bc6\u7801\u8fdb\u884c\u9a8c\u8bc1\u7684\u60c5\u51b5<\/p>\n<p>use_proxy\uff1a\u662f\u4e8b\u4f7f\u7528\u4ee3\u7406\uff0c\u4ee3\u7406\u9700\u4e8b\u5148\u5728\u73af\u5883\u53d8\u66f4\u4e2d\u5b9a\u4e49<\/p>\n<p>\u793a\u4f8b\uff1a<\/p>\n<ol class=\"linenums\">\n<li class=\"L0\"><span class=\"pun\">&#8211;<\/span><span class=\"pln\"> name<\/span><span class=\"pun\">:<\/span><span class=\"pln\"> download foo<\/span><span class=\"pun\">.<\/span><span class=\"pln\">conf<\/span><\/li>\n<li class=\"L1\"><span class=\"pln\"> get_url<\/span><span class=\"pun\">:<\/span><span class=\"pln\"> url<\/span><span class=\"pun\">=<\/span><span class=\"pln\">http<\/span><span class=\"pun\">:\/\/<\/span><span class=\"pln\">example<\/span><span class=\"pun\">.<\/span><span class=\"pln\">com<\/span><span class=\"pun\">\/<\/span><span class=\"pln\">path<\/span><span class=\"pun\">\/<\/span><span class=\"pln\">file<\/span><span class=\"pun\">.<\/span><span class=\"pln\">conf dest<\/span><span class=\"pun\">=\/<\/span><span class=\"pln\">etc<\/span><span class=\"pun\">\/<\/span><span class=\"pln\">foo<\/span><span class=\"pun\">.<\/span><span class=\"pln\">conf mode<\/span><span class=\"pun\">=<\/span><span class=\"lit\">0440<\/span><\/li>\n<li class=\"L2\"><span class=\"pun\">&#8211;<\/span><span class=\"pln\"> name<\/span><span class=\"pun\">:<\/span><span class=\"pln\"> download file with sha256 check<\/span><\/li>\n<li class=\"L3\"><span class=\"pln\"> get_url<\/span><span class=\"pun\">:<\/span><span class=\"pln\"> url<\/span><span class=\"pun\">=<\/span><span class=\"pln\">http<\/span><span class=\"pun\">:\/\/<\/span><span class=\"pln\">example<\/span><span class=\"pun\">.<\/span><span class=\"pln\">com<\/span><span class=\"pun\">\/<\/span><span class=\"pln\">path<\/span><span class=\"pun\">\/<\/span><span class=\"pln\">file<\/span><span class=\"pun\">.<\/span><span class=\"pln\">conf dest<\/span><span class=\"pun\">=\/<\/span><span class=\"pln\">etc<\/span><span class=\"pun\">\/<\/span><span class=\"pln\">foo<\/span><span class=\"pun\">.<\/span><span class=\"pln\">conf sha256sum<\/span><span class=\"pun\">=<\/span><span class=\"pln\">b5bb9d8014a0f9b1d61e21e796d78dccdf1352f23cd32812f4850b878ae4944c<\/span><\/li>\n<\/ol>\n<p>\u6a21\u5757\u90e8\u5206\u5c31\u5148\u4ecb\u7ecd\u5230\u8fd9\u91cc\u5427\uff0c\u5b98\u65b9\u63d0\u4f9b\u7684\u53ef\u80fd\u7528\u5230\u6a21\u5757\u6709git\u3001svn\u7248\u672c\u63a7\u5236\u6a21\u5757\uff0csysctl \u3001authorized_key_module\u7cfb\u7edf\u6a21\u5757\uff0capt\u3001zypper\u3001pip\u3001gem\u5305\u7ba1\u7406\u6a21\u5757\uff0cfind\u3001template\u6587\u4ef6\u6a21\u5757\uff0cmysql_db\u3001redis\u6570\u636e\u5e93\u6a21\u5757\uff0curl \u7f51\u7edc\u6a21\u5757\u7b49\u3002\u5177\u4f53\u53ef\u4ee5\u53c2\u770b<a href=\"http:\/\/docs.ansible.com\/modules_by_category.html\" target=\"_blank\" rel=\"noopener\">\u5b98\u65b9\u624b\u518c\u6a21\u5757\u90e8\u5206<\/a>\u3002<\/p>\n<div><\/div>\n","protected":false},"excerpt":{"rendered":"<p>\u5728\u4e0a\u4e00\u7bc7\u4e2d\u4ecb\u7ecd\u4e86commands\u90e8\u5206\u6a21\u5757\uff0c\u672c\u7bc7\u627f\u63a5\u4e0a\u7bc7\u4ecb\u7ecd\u4e0b\u5e38\u7528\u7684\u6a21\u5757\u3002\u6839\u636e\u5b98\u65b9\u7684\u5206\u7c7b\uff0c\u5c06\u6a21\u5757\u6309\u529f\u80fd\u5206\u7c7b\u4e3a\uff1a\u4e91\u6a21\u5757\u3001\u547d\u4ee4\u6a21\u5757\u3001\u6570\u636e\u5e93\u6a21\u5757\u3001\u6587\u4ef6\u6a21\u5757\u3001\u8d44\u4ea7\u6a21\u5757\u3001\u6d88\u606f\u6a21\u5757\u3001\u76d1\u63a7\u6a21\u5757\u3001\u7f51\u7edc\u6a21\u5757\u3001\u901a\u77e5\u6a21\u5757\u3001\u5305\u7ba1\u7406\u6a21\u5757\u3001\u6e90\u7801\u63a7\u5236\u6a21\u5757\u3001\u7cfb\u7edf\u6a21\u5757\u3001\u5355\u5143\u6a21\u5757\u3001web\u8bbe\u65bd\u6a21\u5757\u3001windows\u6a21\u5757 \uff0c\u5177\u4f53\u53ef\u4ee5\u53c2\u770b\u5b98\u65b9\u9875\u9762\u3002 \u8fd9\u91cc\u4ece\u5b98\u65b9\u5206\u7c7b\u7684\u6a21\u5757\u91cc\u9009\u62e9\u6700\u5e38\u7528\u7684\u4e00\u4e9b\u6a21\u5757\u8fdb\u884c\u4ecb\u7ecd\uff08commands\u6a21\u5757\u4e0a\u4e00\u7bc7\u5df2\u7ecf\u4ecb\u7ecd\uff0c\u8fd9\u91cc\u4e0d\u518d\u63d0\uff09\u3002 \u4e00\u3001ping\u6a21\u5757 \u6d4b\u8bd5\u4e3b\u673a\u662f\u5426\u662f\u901a\u7684\uff0c\u7528\u6cd5\u5f88\u7b80\u5355\uff0c\u4e0d\u6d89\u53ca\u53c2\u6570\uff1a [root@361way ~]# ansible 10.212.52.252 -m ping 10.212.52.252 | success &gt;&gt; { &#8220;changed&#8221;: false, &#8220;ping&#8221;: &#8220;pong&#8221; [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"site-sidebar-layout":"default","site-content-layout":"","ast-site-content-layout":"default","site-content-style":"default","site-sidebar-style":"default","ast-global-header-display":"","ast-banner-title-visibility":"","ast-main-header-display":"","ast-hfb-above-header-display":"","ast-hfb-below-header-display":"","ast-hfb-mobile-header-display":"","site-post-title":"","ast-breadcrumbs-content":"","ast-featured-img":"","footer-sml-layout":"","ast-disable-related-posts":"","theme-transparent-header-meta":"","adv-header-id-meta":"","stick-header-meta":"","header-above-stick-meta":"","header-main-stick-meta":"","header-below-stick-meta":"","astra-migrate-meta-layouts":"default","ast-page-background-enabled":"default","ast-page-background-meta":{"desktop":{"background-color":"var(--ast-global-color-5)","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""},"tablet":{"background-color":"","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""},"mobile":{"background-color":"","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""}},"ast-content-background-meta":{"desktop":{"background-color":"var(--ast-global-color-4)","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""},"tablet":{"background-color":"var(--ast-global-color-4)","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""},"mobile":{"background-color":"var(--ast-global-color-4)","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""}},"footnotes":""},"categories":[1],"tags":[],"class_list":["post-265","post","type-post","status-publish","format-standard","hentry","category-uncategorized"],"_links":{"self":[{"href":"https:\/\/blog.jsjs.org\/index.php?rest_route=\/wp\/v2\/posts\/265","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/blog.jsjs.org\/index.php?rest_route=\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/blog.jsjs.org\/index.php?rest_route=\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/blog.jsjs.org\/index.php?rest_route=\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/blog.jsjs.org\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=265"}],"version-history":[{"count":0,"href":"https:\/\/blog.jsjs.org\/index.php?rest_route=\/wp\/v2\/posts\/265\/revisions"}],"wp:attachment":[{"href":"https:\/\/blog.jsjs.org\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=265"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/blog.jsjs.org\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=265"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/blog.jsjs.org\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=265"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}