Nodegrid upgrade through Redhat server

Nodegrid upgrade through Redhat server

Ansible can be used to upgrade Nodegrid device to newer version from server ( Redhat in this case ).
Make sure ISO file has been copied to /etc/ansible/Firmware/ folder.

First, one needs to create template to be copied on remote Nodegrid device.
nodegrid_upgrade.j2

  1. software_upgrade
  2. set image_location=local_system
  3. set filename={{ ng_filename }}
  4. upgrade
Next, one needs to create playbook : nodegrid_upgrade.yml


  1. ---
  2.  - name: Upgrade the Nodegrid
  3.    hosts: "{{ ipaddress }}"
  4.    gather_facts: no
  5.    vars_prompt:
  6.       - name: ipaddress
  7.         prompt: Enter the ip address or group name
  8.         private: no
  9.    vars:
  10.     ng_filename: Nodegrid_Platform_v4.2.1_20200626.iso
  11.     ng_full: /etc/ansible/Firmware/{{ ng_filename }}
  12.     ng_dest: /var/sw/{{ ng_filename }}
  13.     file_name_upgrade: upgrade.cli
  14.     file_name_backup: backup.cli
  15.     become: true

  16.    tasks:
  17.    - name: Copy ISO to Nodegrid
  18.      copy:
  19.       src: "{{ ng_full }}"
  20.       dest: "{{ ng_dest }}"

  21.    - name: Copy firmware update script
  22.      template:
  23.       src: templates/nodegrid_upgrade.j2
  24.       dest: /tmp/{{ file_name_upgrade }}

  25.    - name: Run Firmware update
  26.      command : cli -f /tmp/{{ file_name_upgrade }}

  27.    - name: Wait 300 seconds for target connection to become reachable/usable
  28.      wait_for_connection:
  29.       delay: 60
  30.       timeout: 300

  31.    - name: Current Version
  32.      command : grep ^VERSION= /software
  33.      register: ng_version_after

  34.    - name: Upgrade Successful
  35.      debug:
  36.        msg: "Upgrade successful new version: {{ ng_version_after['stdout'] }}"

  37.    - name: Deleting Cache
  38.      wait_for_connection:
  39.        delay: 5
  40.        timeout: 10

  41.    - name: Find and Delete
  42.      shell: sudo rm -rf /var/sw/*

  43.    - name: ACK
  44.      debug:
  45.        msg: " Nodegrid is up and running "   
Now, run the playbook with the command: ansible-playbook nodegrid_upgrade.yml
Note: One can change the timeout value in playbook based on the network connection.