| --- |
| - hosts: 127.0.0.1 |
| connection: local |
| vars: |
| vbox_manage: 'VBoxManage' |
| vmdk_path: '~/.vagrant.d/boxes/uclbioresource-VAGRANTSLASH-oracle68/1.0.0/virtualbox' |
| original_hd: '{{ vmdk_path }}/box-disk1.vmdk' |
| resize_hd: '{{ vmdk_path }}/resized-box-disk1.vdi' |
| swap_hd: '{{ vmdk_path }}/swap-box-disk1.vmdk' |
| size: '32678' |
| |
| tasks: |
| - name: Check for existing resize hd |
| stat: |
| path: '{{ resize_hd }}' |
| register: exists |
| tags: |
| - clean |
| |
| - name: Remove existing resize hd |
| ignore_errors: yes |
| shell: "{{ vbox_manage }} closemedium {{ resize_hd }}" |
| register: exists.stat.exists |
| tags: |
| - clean |
| |
| - name: Remove existing resize hd file if it still remains |
| file: |
| path: '{{ resize_hd }}' |
| state: absent |
| register: exists.stat.exists |
| tags: |
| - clean |
| |
| - name: Clone and reformat hd |
| shell: "{{ vbox_manage }} clonehd {{ original_hd }} {{ resize_hd }} --format VDI" |
| tags: |
| - clone |
| |
| - name: Resize hd |
| shell: "{{ vbox_manage }} modifyhd {{ resize_hd }} --resize {{ size }}" |
| tags: |
| - resize |
| |
| - name: Reformat resized hd for swap |
| shell: "{{ vbox_manage }} clonehd {{ original_hd }} {{ swap_hd }} --format VMDK" |
| tags: |
| - format |
| |
| - name: Removed interim resize |
| shell: "{{ vbox_manage }} closemedium {{ resize_hd }}" |
| tags: |
| - remove |
| |
| # - name: Remove original_hd |
| # shell: "{{ vbox_manage }} closemedium {{ original_hd }}" |
| # tags: |
| # - remove |
| |
| - name: Rename swap file to original |
| copy: |
| src: '{{ swap_hd }}' |
| dest: '{{ original_hd }}' |
| force: yes |
| tags: |
| - rename |
| |
| # - name: Attached resized hd to vm |
| # shell: "{{ vbox_manage }} modifyvm {{ vm_id }} --hda {{ original_hd }}" |
| # tags: |
| # - attach |
| |