--- # pseudocode: # reboot to get new disk size # get info on existing swap: swapon -s # TURN OFF swap: swapoff -a # fstab grep swap && reuse UUID so no modify fstab # NOTE this script relies on swap being on sdb1, and only 1 swap partition - hosts: testvms tasks: - name: install parted pkg if missing package: name: parted state: present - name: get swapinfo - partition size b4 shell: "swapon -s > /root/swapinfo.txt" # straight up copied from patch - name: reboot server to get latest disk size reboot: reboot_timeout: 600 test_command: uptime post_reboot_delay: 45 - name: turn swap off shell: swapoff -a - name: VERIFY swap off shell: "free |awk '{print $2}' > /root/swapalloc.txt" args: creates: /root/swapalloc.txt # TODO - print $2 and fail !=0 - name: reuse existing swap uuid - get UUID from fstab instead of blkid, less trouble shell: "grep swap /etc/fstab |head -n 1 |awk '{print $1}' > /root/blkidswapinfo.txt" # shell: "blkid |grep swap |head -n 1 |awk '{print $2}' > /root/blkidswapinfo.txt" args: creates: /root/blkidswapinfo.txt # expected result: # UUID=BLAH # TODO Fail if swap not on sdb - name: delete existing swap on sdb parted: device: /dev/sdb number: 1 state: absent # have to shell this because parted module not support swap - name: create new swap partition using all space on sdb shell: "parted -s /dev/sdb mkpart primary linux-swap 1MiB 100%" - name: verify new partition shell: parted -s /dev/sdb1 print register: partedprintout - debug: msg="DEBUG {{ partedprintout.stdout }}" # - name: create new partition with existing blkid # parted: # device: /dev/sdb # number: 1 # part_type: primary # part_start: 0% # part_end: 100% # state: present # - name: change partid to 82/swap # shell: | # "parted -s /dev/sdb1 print" # "parted -s /dev/sdb1 set swap on" # "parted -s /dev/sdb1 print" - name: replace UUID=blah and get just blah replace: path: /root/blkidswapinfo.txt regexp: "{{ item }}" replace: '' with_items: - 'UUID=' # - '"' - name: turn swap off AGAIN JIC, cuz WE WERE GETTING ERRORS THAT IT WAS STILL MOUNTED!!! shell: swapoff -a become: true - name: remake swap partition with old UUID / no fstab changes shell: mkswap -U $(awk '{print $1}' /root/blkidswapinfo.txt) /dev/sdb1 - name: verify swap from blkid shell: "blkid |grep swap" register: blkidoutput - debug: msg="DEBUG {{ blkidoutput.stdout }}" - name: turn swap back on shell: swapon -a - name: verify changes shell: swapon -s register: swaponS - debug: msg="DEBUG {{ swaponS.stdout }}" - name: verify changes2 shell: free register: swaponS - debug: msg="DEBUG {{ swaponS.stdout }}" # - name: cleanup ################## # Author: dave.bechtel@asmr # script to delete and expand existing swap partition on sdb1 # 2020.0820 alpha ver # 2020.0821 got it working in test env