Execution
Date 02 Feb 2026 22:07:25 +0000
Duration 00:03:15.83
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
395 Hosts
6 Tasks
1689 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

  vars:
    active_php_sql: >-
      select d.name, h.php_handler_id
      from domains d
      from hosting h on h.dom_id=d.id
      where h.php = 'true'
        AND h.php_handler_id REGEXP '^plesk-php(81|80|7|5)';

    disabled_php_eol: >-
      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)';

  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
          - "{{ active_php_sql }}"
      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:
        argv:
          - plesk
          - db
          - -Ne
          - "{{ disabled_php_sql }}"
      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 is defined

    - 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
      when: >-
        (
          ansible_play_hosts_all
          | map('extract', hostvars)
          | map(attribute='rm10252_report', default={})
          | selectattr('active_eol_php', 'defined')
          | selectattr('active_php_domains', 'length')
          | list
          | length
        ) > 0
        or
        (
          ansible_play_hosts_all
          | map('extract', hostvars)
          | map(attribute='rm10252_report', default={})
          | selectattr('disabled_eol_php', 'defined')
          | selectattr('disabled_eol_php', 'length')
          | list
          | length
        ) > 0