Execution
Date 24 Feb 2026 20:33:05 +0000
Duration 00:07:15.02
Controller ssh-gw-4.layershift.com
User root
Versions
Ansible 2.16.13
ara 1.7.4 / 1.7.4
Python 3.10.10
Summary
398 Hosts
6 Tasks
1978 Results
1 Plays
1 Files
0 Records

File: /home/ssh-gateway/ansible/ansible-luca/plesk-php-checker.yaml

---
- name: RM10252 - PHP EOL Checker
  hosts: all
  gather_facts: false

  tasks:
    - name: Get Info
      plesk_info:
      register: plsk

    - name: Check handlers and capture list
      ansible.builtin.shell: |
        set -euo pipefail
        handlers="$(plesk bin php_handler --list)"
        echo "$handlers"

        echo "$handlers" | grep -q 'plesk-php84' && echo "$handlers" | grep -q 'plesk-php85'
      args:
        executable: /bin/bash
      register: php_check
      when: (plsk.plesk_found and plsk.imunify_found)
      changed_when: false
      failed_when: false

    - name: Record servers missing plesk-php84 or plesk-php85
      ansible.builtin.lineinfile:
        create: true
        mode: '0644'
        path: RM10252/hostnames_bad
        line: "{{ inventory_hostname }}"
      when:
        - php_check is defined
        - php_check.rc != 0
      delegate_to: localhost

    - name: Set good host entry (hostname + handlers stdout)
      ansible.builtin.set_fact:
        good_host_entry:
          host: "{{ inventory_hostname }}"
          handlers_stdout: "{{ php_check.stdout }}"
      when:
        - php_check is defined
        - php_check.rc == 0

    - name: Aggregate good hosts on localhost
      ansible.builtin.set_fact:
        good_hosts: "{{ (good_hosts | default([])) + [hostvars[item].good_host_entry] }}"
      loop: "{{ ansible_play_hosts }}"
      when:
        - inventory_hostname == ansible_play_hosts[0]   # only once
        - hostvars[item].good_host_entry is defined
      delegate_to: localhost
      run_once: true

    - name: Save good hosts JSON on localhost
      ansible.builtin.copy:
        dest: RM10252/hostnames_good.json
        mode: '0644'
        content: "{{ good_hosts | to_nice_json }}"
      delegate_to: localhost
      run_once: true
      when: good_hosts is defined