Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- ---
- - name: FIND VM BY NAME
- hosts: localhost
- tasks:
- - include_vars: /etc/ansible/roles/vmware/vars/main.yml
- - debug:
- msg: "{{ vmuser }}"
- - name: Find Guest's info using name
- vmware_guest_facts:
- hostname: "{{ vmhost }}"
- username: "{{ vmuser }}"
- password: "{{ vmpass }}"
- validate_certs: no
- datacenter: ""
- name: "{{ target }}"
- register: vmfacts
- - debug:
- msg: "{{ vmfacts.instance.instance_uuid }}"
- # - debug:
- # msg: "{{ vmfacts }}"
- - name: Take Snapshot
- vmware_guest_snapshot:
- hostname: "{{ vmhost }}"
- username: "{{ vmuser }}"
- password: "{{ vmpass }}"
- validate_certs: no
- datacenter: ""
- name: "{{ vmfacts.instance.hw_name }}"
- folder: "{{ vmfacts.instance.hw_folder }}"
- memory_dump: yes
- quiesce: yes
- state: present
- snapshot_name: pre-upgrade
- connection: local
- delegate_to: localhost
- - name: Run System Updates
- hosts: "{{ target }}"
- tasks:
- - include_vars: /etc/ansible/roles/vmware/vars/main.yml
- - name: Get pre-update kernel version
- command: uname -r
- register: kernel
- - debug:
- msg: "{{ kernel.stdout }}"
- - block:
- - name: apt-get update && apt-get dist-upgrade && apt-get autoremove
- apt:
- force_apt_get: yes
- update_cache: yes
- upgrade: dist
- autoremove: yes
- register: stdout
- #- debug:
- # msg: "{{ stdout }}"
- - name: Reboot
- shell: "sleep 2 && shutdown -r now"
- async: 30
- ignore_errors: true
- - name: Pause a bit to let the target reboot
- pause:
- minutes: 1
- # Now we will run a local 'ansible -m ping' on this host until it returns.
- # This works with the existing ansible hosts inventory and so any custom ansible_ssh_hosts definitions are being used
- - name: Ping til host comes back
- local_action: shell ansible -u {{ ansible_user_id }} -m ping {{ inventory_hostname }}
- register: result
- until: result.rc == 0
- # retries should be set to 30 and delay 10 for prod use
- retries: 5
- delay: 5
- # And finally, execute 'uname -r' when the host is back.
- - name: Check New Kernel Version
- command: uname -r
- register: uname
- - debug:
- msg: "{{ uname.stdout }}"
- rescue:
- - name: Find Guest details so we can revert
- hosts: localhost
- vmware_guest_facts:
- hostname: "{{ vmhost }}"
- username: "{{ vmuser }}"
- password: "{{ vmpass }}"
- validate_certs: no
- datacenter: ""
- name: "{{ target }}"
- register: vmfacts
- delegate_to: localhost
- - name: restore snapshot
- hosts: localhost
- vmware_guest_snapshot:
- hostname: "{{ vmhost }}"
- username: "{{ vmuser }}"
- password: "{{ vmpass }}"
- validate_certs: no
- datacenter: ""
- name: "{{ vmfacts.instance.hw_name }}"
- folder: "{{ vmfacts.instance.hw_folder }}"
- state: revert
- snapshot_name: pre-upgrade
- connection: local
- delegate_to: localhost
- become: false
- - name: Delete now unnecessary snapshot
- hosts: localhost
- vmware_guest_snapshot:
- hostname: "{{ vmhost }}"
- username: "{{ vmuser }}"
- password: "{{ vmpass }}"
- validate_certs: no
- datacenter: ""
- name: "{{ vmfacts.instance.hw_name }}"
- folder: "{{ vmfacts.instance.hw_folder }}"
- state: absent
- snapshot_name: pre-upgrade
- connection: local
- delegate_to: localhost
- become: false
- ----------------
- /etc/ansible/roles/vmware/vars/main.yml
- ---
- # vars file for /etc/ansible/roles/vmware
- vmuser: "<VMWAREUSERNAMEGOESHERE>"
- vmpass: "<VMWAREPASSWORDGOESHERE"
- vmhost: "<VMWAREHOSTGOESHERE>"
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement