{"id":461,"date":"2022-07-19T09:51:23","date_gmt":"2022-07-19T01:51:23","guid":{"rendered":"https:\/\/frogvps.com\/?p=461"},"modified":"2022-07-19T09:51:24","modified_gmt":"2022-07-19T01:51:24","slug":"ansible-playbook%e5%8f%98%e9%87%8f%e7%9a%84%e5%ae%9a%e4%b9%89%e5%92%8c%e4%bd%bf%e7%94%a8","status":"publish","type":"post","link":"https:\/\/frogvps.com\/?p=461","title":{"rendered":"Ansible Playbook\u53d8\u91cf\u7684\u5b9a\u4e49\u548c\u4f7f\u7528"},"content":{"rendered":"\n<p>Ansible Playbook\u4e2d\u4e5f\u652f\u6301\u53d8\u91cf\u3002<\/p>\n\n\n\n<p>\u53d8\u91cf\u540d\uff1a\u4ec5\u80fd\u7531\u5b57\u6bcd\u3001\u6570\u5b57\u548c\u4e0b\u5212\u7ebf\u7ec4\u6210\uff0c\u4e14\u53ea\u80fd\u4ee5\u5b57\u6bcd\u5f00\u5934\u3002<\/p>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h2 class=\"wp-block-heading\">\u53d8\u91cf\u5b9a\u4e49<\/h2>\n\n\n\n<pre class=\"wp-block-code\"><code>variable=value\nvariable: value<\/code><\/pre>\n\n\n\n<p><strong>\u8303\u4f8b<\/strong><\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>http_port=80\nhttp_port: 80<\/code><\/pre>\n\n\n\n<p><strong>\u53d8\u91cf\u8c03\u7528\u65b9\u5f0f<\/strong><\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>{{ variable_name }}<\/code><\/pre>\n\n\n\n<p>\u6709\u65f6\u5019\u9700\u8981\u52a0\u53cc\u5f15\u53f7\u751f\u6548<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>\"{{ variable_name }}\"<\/code><\/pre>\n\n\n\n<p><strong>\u53d8\u91cf\u6765\u6e90<\/strong><\/p>\n\n\n\n<p>1.ansible\u7684setup facts\u8fdc\u7a0b\u4e3b\u673a\u7684\u6240\u6709\u53d8\u91cf\u90fd\u53ef\u76f4\u63a5\u8c03\u7528\u3002<\/p>\n\n\n\n<p>2.\u547d\u4ee4\u884c\u6307\u5b9a\u53d8\u91cf\uff08\u4f18\u5148\u7ea7\u6700\u9ad8\uff09<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>ansible-playbook -e varname=value test.yml<\/code><\/pre>\n\n\n\n<p>3.\u5728playbook\u6587\u4ef6\u4e2d\u5b9a\u4e49<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>vars: \n  var1: value1\n  var2: value2<\/code><\/pre>\n\n\n\n<p>4.\u5728\u72ec\u7acb\u7684\u53d8\u91cfYAML\u6587\u4ef6\u4e2d\u5b9a\u4e49<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>- host: webservers\n  vars_file:\n    - vars.yml<\/code><\/pre>\n\n\n\n<p>5.\u5728\u4e3b\u673a\u6e05\u5355\u6587\u4ef6\u4e2d\u5b9a\u4e49<\/p>\n\n\n\n<p>6.\u5728\u9879\u76ee\u4e2d\u9488\u5bf9\u4e3b\u673a\u548c\u4e3b\u673a\u7ec4\u5b9a\u4e49<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>\u5728\u9879\u76ee\u76ee\u5f55\u4e2d\u521b\u5efahost_vars\u548cgroup_vars\u76ee\u5f55<\/code><\/pre>\n\n\n\n<p>7.\u5728role\u4e2d\u5b9a\u4e49<\/p>\n\n\n\n<p><strong>\u5b9a\u4e49\u53d8\u91cf\u7684\u4f18\u5148\u7ea7\u4ece\u9ad8\u5230\u4f4e<\/strong><\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>\u547d\u4ee4\u884c-e\u9009\u9879\u5b9a\u4e49\u7684 &gt; playbook\u4e2dvars_file &gt; playbook\u4e2dvars\u53d8\u91cf &gt; \u9879\u76ee\u76ee\u5f55\/host_vars\/\u4e3b\u673a\u540d\u6587\u4ef6 &gt; \u4e3b\u673a\u6e05\u5355\u4e2d\u7684\u4e3b\u673a\u53d8\u91cf &gt; \u9879\u76ee\u76ee\u5f55\/group_vars\/\u4e3b\u673a\u7ec4\u540d\u6587\u4ef6 &gt; group_vars\/all\u6587\u4ef6 &gt; \u4e3b\u673a\u6e05\u5355\u4e2d\u7684\u7ec4\u53d8\u91cf<\/code><\/pre>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h2 class=\"wp-block-heading\">setup \u6a21\u5757\u53d8\u91cf<\/h2>\n\n\n\n<p>\u672c\u6a21\u5757\u81ea\u52a8\u5728playbook\u8c03\u7528\uff0c\u4e0d\u8981\u7528ansible\u547d\u4ee4\u8c03\u7528\uff0c\u751f\u6210\u7cfb\u7edf\u72b6\u6001\u4fe1\u606f,\uff0c\u5e76\u5b58\u653e\u5728facts\u53d8\u91cf\u4e2d\u3002<\/p>\n\n\n\n<p>facts \u5305\u62ec\u7684\u4fe1\u606f\u5f88\u591a\uff0c\u5982: \u4e3b\u673a\u540d\u3001IP\u3001CPU\u3001\u5185\u5b58\u3001\u7f51\u5361\u7b49\u3002<\/p>\n\n\n\n<p><strong>\u8303\u4f8b<\/strong><\/p>\n\n\n\n<p>\u5728\/tmp\u4e0b\u521b\u5efa\u540d\u4e3a\u4e3b\u673a\u540d\u7684log\u6587\u4ef6<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>---\n- hosts: webservers\n  tasks:\n    - name: Create Log File\n      file: path='\/tmp\/{{ ansible_nodename }}.log' state=touch owner=root mode=600<\/code><\/pre>\n\n\n\n<p>\u663e\u793a eth0 \u7f51\u5361\u7684IP\u5730\u5740<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>- hosts: webservers\n  tasks:\n    - name: Show Eth0 Ip Address\n      debug:\n        msg:\n          - IP Address: \"{{ ansible_eth0.ipv4.address }}\"\n          - Eth0 is active: \"{{ ansible_eth0.active }}\"<\/code><\/pre>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h2 class=\"wp-block-heading\">\u547d\u4ee4\u884c\u53d8\u91cf<\/h2>\n\n\n\n<p>-e \u9009\u9879\u6307\u5b9a\u53d8\u91cf<\/p>\n\n\n\n<p><strong>\u8303\u4f8b<\/strong><\/p>\n\n\n\n<p>\u5b89\u88c5\u6307\u5b9a\u7684\u5305<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>---\n#\u521b\u5efa\u6587\u4ef6var3.yml\n- hosts: webservers\n  tasks:\n    - name: Install {{ pkname }}\n      yum: name={{ pkname }} state=present      <\/code><\/pre>\n\n\n\n<pre class=\"wp-block-code\"><code>ansible-playbook -e pkname=sl,cowsay var3.yml <\/code><\/pre>\n\n\n\n<p>\u4e5f\u53ef\u4ee5\u628a\u53d8\u91cf\u653e\u5728\u5f53\u524d\u76ee\u5f55\u7684vars\u6587\u4ef6\uff0c\u518d\u7528 -e \u9009\u9879\u8c03\u7528<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>---\n#\u521b\u5efa\u6587\u4ef6var4.yml\n- hosts: webservers\n  tasks:\n    - name: Install {{ pkname }}\n      yum: name={{ pkname }} state=present <\/code><\/pre>\n\n\n\n<pre class=\"wp-block-code\"><code>ansible-playbook -e '@vars' var4.yml<\/code><\/pre>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h2 class=\"wp-block-heading\">Playbook\u6587\u4ef6\u4e2d\u53d8\u91cf<\/h2>\n\n\n\n<p><strong>\u8303\u4f8b<\/strong><\/p>\n\n\n\n<p>\u521b\u5efanginx\u7ec4\u548c\u7528\u6237<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>---\n- hosts: webservers\n  vars:\n    groupname: nginx\n    username: nginx\n  tasks:\n    - name: Create group {{ groupname }}\n      group: name={{ groupname }} state=present system=yes\n    - name: Create user {{ username }}\n      user: name={{ username }} state=present system=yes group={{ groupname }} create_home=no shell=\/sbin\/nologin<\/code><\/pre>\n\n\n\n<p>\u53d8\u91cf\u7684\u76f8\u4e92\u8c03\u7528<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>---\n- hosts: webservers\n  vars:\n    var1: \"\/tmp\/{{ ansible_default_ipv4.address }}\"\n  tasks:\n    - name: Create Directory\n      file: name={{ var1 }} state=directory     <\/code><\/pre>\n\n\n\n<p>\u5b89\u88c5\u591a\u4e2a\u5305\uff0c\u591a\u79cd\u5199\u6cd5<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>---\n- hosts: webservers\n  tasks:\n    - name: Install \n      yum: \n        name:\n          - nginx\n          - redis\n        state: present<\/code><\/pre>\n\n\n\n<pre class=\"wp-block-code\"><code>---\n- hosts: webservers\n  vars: \n    web: nginx\n    db: redis\n  tasks:\n    - name: Install {{ web }} {{ db }}\n      yum: \n        name:\n          - \"{{ web }}\"\n          - \"{{ db }}\"\n        state: present<\/code><\/pre>\n\n\n\n<pre class=\"wp-block-code\"><code>---\n- hosts: webservers\n  tasks:\n    - name: Install {{ pk }}\n      vars: \n        pk:\n          - nginx\n          - redis\n      yum: \n        name: \"{{ pk }}\"\n        state: present<\/code><\/pre>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h2 class=\"wp-block-heading\">Playbook\u5f15\u7528\u53d8\u91cf\u6587\u4ef6<\/h2>\n\n\n\n<p>\u53ef\u4ee5\u5728\u4e00\u4e2a\u72ec\u7acb\u7684playbook\u6587\u4ef6\u4e2d\u5b9a\u4e49\u53d8\u91cf\uff0c\u5728\u53e6\u4e00\u4e2aplaybook\u6587\u4ef6\u4e2d\u5f15\u7528\u53d8\u91cf\u6587\u4ef6\u4e2d\u7684\u53d8\u91cf\uff0c\u6bd4playbook\u4e2d\u76f4\u63a5\u5b9a\u4e49\u7684\u53d8\u91cf\u4f18\u5148\u7ea7\u9ad8\u3002<\/p>\n\n\n\n<p><strong>\u8303\u4f8b<\/strong><\/p>\n\n\n\n<p>\u53d8\u91cf\u6587\u4ef6vars.yml\u548c\u8c03\u7528\u5b83\u7684playbook\u6587\u4ef6\u9700\u8981\u5728\u540c\u4e00\u4e2a\u76ee\u5f55<\/p>\n\n\n\n<p>\u521b\u5efa\u53d8\u91cf\u6587\u4ef6 vars.yml<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>---\n#vars.yml\nweb: nginx\ndb: redis<\/code><\/pre>\n\n\n\n<p>\u5728playbook\u6587\u4ef6\u4e2d\u8c03\u7528<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>---\n#yum3.yml\n- hosts: webservers\n  vars_files:\n    - vars.yml\n  tasks:\n    - name: install {{ web }} {{ db }}\n      yum:\n        name:\n          - \"{{ web }}\"\n          - \"{{ db }}\"\n        state: present<\/code><\/pre>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h2 class=\"wp-block-heading\">\u4e3b\u673a\u6e05\u5355\u53d8\u91cf<\/h2>\n\n\n\n<p>\u5728inventory \u4e3b\u673a\u6e05\u5355\u6587\u4ef6\u4e2d\u4e3a\u6307\u5b9a\u7684\u4e3b\u673a\u5b9a\u4e49\u53d8\u91cf\u4ee5\u4fbf\u4e8e\u5728playbook\u4e2d\u4f7f\u7528<\/p>\n\n\n\n<p>\u4e3b\u673a\u6e05\u5355\u9ed8\u8ba4\u8def\u5f84\uff1a\/etc\/ansible\/hosts<\/p>\n\n\n\n<p><strong>\u8303\u4f8b<\/strong><\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>&#91;webservers]\r\n10.0.0.1 hname=www1 domain=frogvps.com\r\n10.0.0.2 hname=www2 \r\n\r\n#webservers\u7ec4\u7684\u516c\u5171\u53d8\u91cf\r\n&#91;webservers:vars]\r\nhttp_port=80\r\n\r\n#\u6240\u6709\u7ec4\u7684\u516c\u5171\u53d8\u91cf\r\n&#91;all:vars]\r\nCONTAINER_RUNTIME=\"docker\"\r\nCLUSTER_NETWORK=\"calico\"\r\nPROXY_MODE=\"ipvs\"\r\nSERVICE_CIDR=\"192.168.0.0\/16\"\r\nCLUSTER_CIDR=\"172.16.0.0\/16\"\r\nNODE_PORT_RANGE=\"20000-60000\"\r\nCLUSTER_DNS_DOMAIN=\"frogvps.local.\"\r\nbin_dir=\"\/usr\/bin\"\r\nca_dir=\"\/etc\/kubernetes\/ssl\"\r\nbase_dir=\"\/etc\/ansible\"<\/code><\/pre>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h2 class=\"wp-block-heading\">\u9879\u76ee\u6587\u4ef6\u53d8\u91cf<\/h2>\n\n\n\n<p>\u751f\u4ea7\u5efa\u8bae\u5728\u9879\u76ee\u76ee\u5f55\u4e2d\u521b\u5efa\u989d\u5916\u7684\u4e24\u4e2a\u53d8\u91cf\u76ee\u5f55,\u5206\u522b\u662fhost_vars\u548cgroup_vars<\/p>\n\n\n\n<p>host_vars\u4e0b\u9762\u7684\u6587\u4ef6\u540d\u548c\u4e3b\u673a\u6e05\u5355\u4e3b\u673a\u540d\u4e00\u81f4\uff0c\u9488\u5bf9\u5355\u4e2a\u4e3b\u673a\u8fdb\u884c\u53d8\u91cf\u5b9a\u4e49\uff0c\u683c\u5f0f: host_vars\/hostname<\/p>\n\n\n\n<p>group_vars\u4e0b\u9762\u7684\u6587\u4ef6\u540d\u548c\u4e3b\u673a\u6e05\u5355\u4e2d\u7ec4\u540d\u4e00\u81f4\uff0c\u9488\u5bf9\u5355\u4e2a\u7ec4\u8fdb\u884c\u53d8\u91cf\u5b9a\u4e49\uff0c\u683c\u5f0f: gorup_vars\/groupname<\/p>\n\n\n\n<p>group_vars\/all\u6587\u4ef6\u5185\u5b9a\u4e49\u7684\u53d8\u91cf\u5bf9\u6240\u6709\u7ec4\u90fd\u6709\u6548<\/p>\n\n\n\n<p><strong>\u8303\u4f8b<\/strong><\/p>\n\n\n\n<p>\u8fd9\u662f\u5b9e\u9a8c\u7528\u7684hosts\u6587\u4ef6\uff0c\u4e00\u53f0\u817e\u8baf\u4e91\uff0c\u4e00\u53f0<a rel=\"nofollow\" href=\"https:\/\/www.dmit.io\/aff.php?aff=2222\" target=\"_blank\" rel=\"noreferrer noopener\">dmit<\/a><\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>&#91;webservers]\r\n175.24.227.179\r\n\r\n&#91;dmit]\r\n154.17.22.52<\/code><\/pre>\n\n\n\n<p>\u9996\u5148\uff0c\u5728\/data\u6587\u4ef6\u5939\u65b0\u5efa\u4e00\u4e2a\u9879\u76ee<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>mkdir -p \/data\/ansible<\/code><\/pre>\n\n\n\n<p>\u7136\u540e\uff0c\u521b\u5efa\u53d8\u91cf\u76ee\u5f55<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>cd \/data\/ansible\nmkdir host_vars\nmkdir group_vars<\/code><\/pre>\n\n\n\n<p>\u5728\u76ee\u5f55\u4e0b\u8bbe\u7f6e\u4e0d\u540c\u7684\u53d8\u91cf<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>&#91;root@VM-4-13-ubuntu \/data\/ansible]#cat host_vars\/175.24.227.179 \nvps: txyun\n&#91;root@VM-4-13-ubuntu \/data\/ansible]#cat host_vars\/154.17.22.52\nvps: dmit\n&#91;root@VM-4-13-ubuntu \/data\/ansible]#cat group_vars\/webservers \nname: web1\n&#91;root@VM-4-13-ubuntu \/data\/ansible]#cat group_vars\/dmit \nname: web2\n&#91;root@VM-4-13-ubuntu \/data\/ansible]#cat group_vars\/all \ndomain: frogvps.com<\/code><\/pre>\n\n\n\n<p>\u76ee\u5f55\u7ed3\u6784<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>&#91;root@VM-4-13-ubuntu \/data\/ansible]#tree \/data\/ansible\/\n\/data\/ansible\/\n\u251c\u2500\u2500 group_vars\n\u2502&amp;nbsp;&amp;nbsp; \u251c\u2500\u2500 all\n\u2502&amp;nbsp;&amp;nbsp; \u251c\u2500\u2500 dmit\n\u2502&amp;nbsp;&amp;nbsp; \u2514\u2500\u2500 webservers\n\u251c\u2500\u2500 host_vars\n\u2502&amp;nbsp;&amp;nbsp; \u251c\u2500\u2500 154.17.22.52\n\u2502&amp;nbsp;&amp;nbsp; \u2514\u2500\u2500 175.24.227.179\n\u2514\u2500\u2500 test.yml<\/code><\/pre>\n\n\n\n<p>\u5728playbook\u4e2d\u8c03\u7528\u53d8\u91cf\uff0ctest.yml\u3001host_vars\u3001group_vars\u5728\u76f8\u540c\u76ee\u5f55\u4e0b<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>---\n#test.yml\n- hosts: all\n  tasks:\n    - name: Print Variable\n      debug:\n        msg: \"{{ vps }}{{ name }}.{{domain}}\"<\/code><\/pre>\n\n\n\n<p>\u8fd0\u884c\u7ed3\u679c<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>&#91;root@VM-4-13-ubuntu \/data\/ansible]#ansible-playbook test.yml \n\nPLAY &#91;all] ************************************************************************************************************\n\nTASK &#91;Gathering Facts] ************************************************************************************************\nok: &#91;175.24.227.179]\nok: &#91;154.17.22.52]\n\nTASK &#91;Print Variable] *************************************************************************************************\nok: &#91;175.24.227.179] =&gt; {\n    \"msg\": \"txyunweb.frogvps.com\"\n}\nok: &#91;154.17.22.52] =&gt; {\n    \"msg\": \"dmitweb2.frogvps.com\"\n}\n\nPLAY RECAP ************************************************************************************************************\n154.17.22.52               : ok=2    changed=0    unreachable=0    failed=0    skipped=0    rescued=0    ignored=0   \n175.24.227.179             : ok=2    changed=0    unreachable=0    failed=0    skipped=0    rescued=0    ignored=0<\/code><\/pre>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h2 class=\"wp-block-heading\">register \u6ce8\u518c\u53d8\u91cf<\/h2>\n\n\n\n<p>\u5728playbook\u4e2d\u53ef\u4ee5\u4f7f\u7528register\u5c06\u6355\u83b7\u547d\u4ee4\u7684\u8f93\u51fa\u4fdd\u5b58\u5728\u4e34\u65f6\u53d8\u91cf\u4e2d\uff0c\u7136\u540e\u4f7f\u7528debug\u6a21\u5757\u8fdb\u884c\u663e\u793a\u8f93\u51fa\u3002<\/p>\n\n\n\n<p><strong>\u8303\u4f8b<\/strong><\/p>\n\n\n\n<p>\u5229\u7528debug \u6a21\u5757\u8f93\u51fa\u53d8\u91cf<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>---\n- hosts: all\n  tasks:\n    - name: Get variable\n      shell: hostname\n      register: name\n    - name: Print variable\n      debug:\n        msg: \n          - \"{{ name }}\"<\/code><\/pre>\n\n\n\n<p>\u63a7\u5236\u547d\u4ee4\u7684\u8f93\u51fa\u7ed3\u679c<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>---\n- hosts: all\n  tasks:\n    - name: Get variable\n      shell: hostname\n      register: name\n    - name: Print variable\n      debug:\n        msg: \n          - \"{{ name.stdout}}\"\n          - \"{{ name.cmd }}\"\n          - \"{{ name.stdout_lines }}\"<\/code><\/pre>\n\n\n\n<p>\u4f7f\u7528 register \u6ce8\u518c\u53d8\u91cf\u521b\u5efa\u6587\u4ef6<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>---\n- hosts: webservers\n  tasks:\n    - name: Get variable\n      shell: hostname\n      register: name\n    - name: Create file\n      file: path=\/tmp\/{{ name.stdout }}.log state=touch    <\/code><\/pre>\n\n\n\n<p>debug\u81ea\u5b9a\u4e49\u8f93\u51fa\u53d8\u91cf\u4ee3\u66ffmsg<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>---\n- hosts: webservers\n  tasks:\n    - name: Print hello\n      shell: echo hello\n      register: hi\n    - name: Print user\n      shell: \"awk -F: 'NR==1{print $1}' \/etc\/passwd\"\n      register: user\n    - debug:\n        var=hi.stdout\n    - debug:\n        var=user.stdout<\/code><\/pre>\n","protected":false},"excerpt":{"rendered":"<p>Ansible Playbook\u4e2d\u4e5f\u652f\u6301\u53d8\u91cf\u3002 \u53d8\u91cf\u540d\uff1a\u4ec5\u80fd\u7531\u5b57\u6bcd\u3001\u6570\u5b57\u548c\u4e0b\u5212\u7ebf\u7ec4\u6210\uff0c\u4e14\u53ea\u80fd\u4ee5\u5b57\u6bcd\u5f00\u5934\u3002 \u53d8\u91cf\u5b9a\u4e49 \u8303\u4f8b \u53d8\u91cf\u8c03\u7528\u65b9\u5f0f \u6709\u65f6\u5019\u9700\u8981\u52a0\u53cc\u5f15\u53f7\u751f\u6548 \u53d8\u91cf\u6765\u6e90 1.ansible\u7684setup facts\u8fdc\u7a0b\u4e3b\u673a\u7684\u6240\u6709\u53d8\u91cf\u90fd\u53ef\u76f4\u63a5\u8c03&#8230;<\/p>\n","protected":false},"author":1,"featured_media":439,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[43],"tags":[44],"topic":[],"class_list":["post-461","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-ansible","tag-ansible"],"_links":{"self":[{"href":"https:\/\/frogvps.com\/index.php?rest_route=\/wp\/v2\/posts\/461","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/frogvps.com\/index.php?rest_route=\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/frogvps.com\/index.php?rest_route=\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/frogvps.com\/index.php?rest_route=\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/frogvps.com\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=461"}],"version-history":[{"count":3,"href":"https:\/\/frogvps.com\/index.php?rest_route=\/wp\/v2\/posts\/461\/revisions"}],"predecessor-version":[{"id":464,"href":"https:\/\/frogvps.com\/index.php?rest_route=\/wp\/v2\/posts\/461\/revisions\/464"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/frogvps.com\/index.php?rest_route=\/wp\/v2\/media\/439"}],"wp:attachment":[{"href":"https:\/\/frogvps.com\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=461"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/frogvps.com\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=461"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/frogvps.com\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=461"},{"taxonomy":"topic","embeddable":true,"href":"https:\/\/frogvps.com\/index.php?rest_route=%2Fwp%2Fv2%2Ftopic&post=461"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}