{"id":815,"date":"2022-08-24T10:00:28","date_gmt":"2022-08-24T02:00:28","guid":{"rendered":"https:\/\/blog.espnlol.com\/?p=815"},"modified":"2023-02-06T15:14:08","modified_gmt":"2023-02-06T07:14:08","slug":"ansible-playbook%e5%8a%a8%e6%80%81%e6%9c%80%e5%a4%a7%e5%8c%96%e5%88%9b%e5%bb%balvm","status":"publish","type":"post","link":"https:\/\/blog.espnlol.com\/?p=815","title":{"rendered":"ansible-playbook\u52a8\u6001\u6700\u5927\u5316\u521b\u5efalvm"},"content":{"rendered":"\n<p>\u61c2\u7684\u90fd\u61c2\uff0c\u4e0a\u6a21\u677f<\/p>\n\n\n\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"generic\" data-enlighter-theme=\"\" data-enlighter-highlight=\"\" data-enlighter-linenumbers=\"\" data-enlighter-lineoffset=\"\" data-enlighter-title=\"\" data-enlighter-group=\"\">- name: Setup LVM PV VG\n  hosts: 192.168.1.2\n  #hosts: all\n  gather_facts: True\n  vars:\n    mntp: \"\/data\"\n    vgname: \"datavg\"\n    pvname: \"\/dev\/vdb\"\n    lvname: \"datalv\"\n    vgfree: \"2000\"\n  tasks:\n  - name: pvcreate\n    shell: \"pvcreate {{pvname}}\"\n    when:\n      - ansible_lvm[\"pvs\"][\"{{pvname}}\"] is not defined\n\n  - name: Check for \"{{vgname}}\" VG\n    shell: \"vgcreate {{vgname}} {{pvname}} &amp;&amp; sleep 10\"\n    when:\n      - ansible_lvm[\"vgs\"][\"{{vgname}}\"] is not defined\n\n  - name: gather facts\n    setup:\n\n  - name: \"Check for {{vgname}} VG Size of {{vgfree}}GiB\"\n    fail:\n      msg: 'vg free_g &lt; {{vgfree}}'\n    when:\n      - ansible_facts['lvm']['vgs']['{{vgname}}']['free_g'] | int &lt; {{vgfree}}\n  \n  - name: Create LVM and Filesystem and Mount\n    block:\n      - name: \"Create {{vgfree}}GiB LVM on {{vgname}} VG\"\n        lvol:\n          lv: \"{{lvname}}\"\n          vg: \"{{vgname}}\"\n          size: \"+100%FREE\"\n    #rescue:\n    #  - name: Fall back and Create 2000GiB LVM on databin VG\n    #    lvol:\n    #      size: \"+100%FREE\"\n    #      vg: \"{{vgname}}\"\n    #      lv: \"{{lvname}}\"\n    always:\n      - name: Set Filesystem\n        filesystem:\n          dev: \"\/dev\/{{vgname}}\/{{lvname}}\"\n          fstype: xfs\n      - name: Mount LV \n        mount:\n          path: \"{{mntp}}\"\n          src: \"\/dev\/{{vgname}}\/{{lvname}}\"\n          fstype: xfs\n          state: mounted<\/pre>\n","protected":false},"excerpt":{"rendered":"<p>\u61c2\u7684\u90fd\u61c2\uff0c\u4e0a\u6a21\u677f<\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[21],"tags":[],"class_list":["post-815","post","type-post","status-publish","format-standard","hentry","category-linux"],"_links":{"self":[{"href":"https:\/\/blog.espnlol.com\/index.php?rest_route=\/wp\/v2\/posts\/815","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/blog.espnlol.com\/index.php?rest_route=\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/blog.espnlol.com\/index.php?rest_route=\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/blog.espnlol.com\/index.php?rest_route=\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/blog.espnlol.com\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=815"}],"version-history":[{"count":1,"href":"https:\/\/blog.espnlol.com\/index.php?rest_route=\/wp\/v2\/posts\/815\/revisions"}],"predecessor-version":[{"id":816,"href":"https:\/\/blog.espnlol.com\/index.php?rest_route=\/wp\/v2\/posts\/815\/revisions\/816"}],"wp:attachment":[{"href":"https:\/\/blog.espnlol.com\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=815"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/blog.espnlol.com\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=815"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/blog.espnlol.com\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=815"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}