Execution
Date 02 Feb 2026 21:32:25 +0000
Duration 00:03:09.79
Controller ssh-gw-4.layershift.com
User root
Versions
Ansible 2.16.11
ara 1.7.4 / 1.7.4
Python 3.10.10
Summary
396 Hosts
6 Tasks
1970 Results
1 Plays
1 Files
0 Records

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

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

  tasks:
    - name: Initialize per-host report object (always)
      ansible.builtin.set_fact:
        rm10252_report:
          hostname: "{{ inventory_hostname }}"
          active_php_domains: []
          disabled_php_domains: []

    - name: Get Info
      plesk_info:
      register: plsk

    - name: Query domains using active EOL Plesk PHP handlers
      ansible.builtin.command:
        argv:
          - plesk
          - db
          - -Ne
          - "select d.name, h.php_handler_id from domains d join hosting h on h.dom_id=d.id where h.php = 'true' AND h.php_handler_id REGEXP '^plesk-php(81|80|7|5)';"
      register: active_eol_php
      when: (plsk.plesk_found and plsk.imunify_found) or (plsk.plesk_found and plsk.cloudlinux_found)
      changed_when: false
      failed_when: false

    - name: Query domains using disabled EOL Plesk PHP handlers
      ansible.builtin.command:
        args:
          - plesk
          - db
          - -Ne
          - "select d.name, h.php_handler_id from domains d join hosting h on h.dom_id=d.id where h.php = 'false' AND h.php_handler_id REGEXP '^plesk-php(81|80|7|5)';"
      register: disabled_eol_php
      when: (plsk.plesk_found and plsk.imunify_found) or (plsk.plesk_found and plsk.cloudlinux_found)
      changed_when: false
      failed_when: false

    - name: Update per-host report object with query results
      ansible.builtin.set_fact:
        rm10252_report:
          hostname: "{{ inventory_hostname }}"
          active_php_domains: "{{ active_eol_php.stdout_lines | default([]) }}"
          disabled_php_domains: "{{ disabled_eol_php.stdout_lines | default([]) }}"
      when: active_eol_php is defined or disabled_eol_php

    - name: Write report to JSON file
      ansible.builtin.copy:
        dest: "RM10252/eol_domains_report.json"
        mode: "0644"
        content: >-
          {{
            (ansible_play_hosts_all
              | map('extract', hostvars)
              | map(attribute='rm10252_report', default={})
              | reject('equalto', {})
              | list)
            | to_nice_json
          }}
      delegate_to: localhost
      run_once: true