Execution
Date 05 Nov 2024 19:00:04 +0000
Duration 00:00:06.89
Controller ssh-gw-4.layershift.com
User root
Versions
Ansible 2.16.11
ara 1.7.2 / 1.7.2
Python 3.10.10
Summary
2 Hosts
7 Tasks
7 Results
1 Plays
1 Files
0 Records

File: /home/ssh-gateway/ansible/kuly/agent360_check_and_upgrade.yaml

---
- name: Playbook to check agent360 version and upgrade it
  hosts: all
  vars:
    desired_agent360_version: "1.3.0"
    output_file: /home/ssh-gateway/ansible/kuly/outputs/agent_versions.txt
  tasks:
    - name: Get installed agent360 version using pip
      ansible.builtin.shell: |
        set -o pipefail
        pip$(head -1 $(which agent360) | awk -F 'python' '{print $2}') show agent360 | grep Version | awk '{print $2}'
      args:
        executable: /bin/bash
      register: agent360_version_result
      changed_when: false
      failed_when: agent360_version_result.rc != 0

    - name: Display installed version of agent360
      ansible.builtin.debug:
        msg: "Installed agent360 version: {{ agent360_version_result.stdout }}"

    - name: Save hostname and version if agent360 version is outdated and save_to_file is true
      ansible.builtin.lineinfile:
        dest: "{{ output_file }}"
        create: true
        mode: '0644'
        line: "{{ inventory_hostname }} - Agent360 version {{ agent360_version_result.stdout }} (outdated)"
      delegate_to: 127.0.0.1
      when:
        - agent360_version_result.stdout is version(desired_agent360_version, '<')
        - save_to_file | default(false) | bool

    - name: Upgrade agent360 if version is outdated and run_upgrade is true
      when:
        - agent360_version_result.stdout is version(desired_agent360_version, '<')
        - run_upgrade | default(false) | bool
      block:
        - name: Upgrade agent360 package via pip
          ansible.builtin.shell: |
            set -o pipefail
            pip$(head -1  $(which agent360)| awk -F "python" '{print $2}') install --upgrade agent360
          args:
            executable: /bin/bash
          changed_when: false
        - name: Restart agent360 service
          ansible.builtin.systemd:
            name: agent360.service
            state: restarted
            enabled: true
        - name: Verify agent360 service is running
          ansible.builtin.systemd:
            name: agent360.service
          register: agent360_status
        - name: Check if agent360 service is active
          ansible.builtin.debug:
            msg: "The agent360 service is not running as expected!"
          when: agent360_status.status.ActiveState != "active"