{"id":7446,"sha1":"a385e5742ae2e24cbf156376609870f02e22e264","playbook":{"id":5288,"items":{"plays":1,"tasks":3,"results":15,"hosts":6,"files":1,"records":0},"arguments":{"version":null,"verbosity":0,"private_key_file":"/home/ssh-gateway/.ssh/id_rsa","remote_user":"root","connection":"ssh","timeout":null,"ssh_common_args":null,"sftp_extra_args":null,"scp_extra_args":null,"ssh_extra_args":null,"ask_pass":false,"connection_password_file":null,"force_handlers":false,"flush_cache":false,"become":false,"become_method":"sudo","become_user":null,"become_ask_pass":false,"become_password_file":null,"tags":["all"],"skip_tags":[],"check":false,"diff":false,"inventory":["/home/ssh-gateway/ansible/ansible-luca/ioncube-canary-inventory"],"listhosts":false,"subset":null,"extra_vars":"Not saved by ARA as configured by 'ignored_arguments'","vault_ids":[],"ask_vault_pass":false,"vault_password_files":[],"forks":20,"module_path":null,"syntax":false,"listtasks":false,"listtags":false,"step":false,"start_at_task":null,"args":["ioncube-fixer.yaml"]},"labels":[{"id":1,"name":"remote_user:root"},{"id":2,"name":"check:False"},{"id":3,"name":"tags:all"}],"started":"2026-03-03T20:11:27.715817Z","ended":"2026-03-03T20:12:02.503034Z","duration":"00:00:34.787217","name":null,"ansible_version":"2.16.13","client_version":"1.7.4","python_version":"3.10.10","server_version":"1.7.4","status":"completed","path":"/home/ssh-gateway/ansible/ansible-luca/ioncube-fixer.yaml","controller":"ssh-gw-4.layershift.com","user":"root"},"content":"---\n- name: RM10252 - PHP EOL Checker\n  hosts: all\n  gather_facts: false\n\n  tasks:\n    - name: Get Info\n      plesk_info:\n      register: plsk\n\n    - name: Fixing poorly loaded ioncube Zend module\n      ansible.builtin.shell: |\n        set -o pipefail\n        paths=$(find /opt/alt/php* -name \"default.ini\" | xargs grep -l \"ioncube_loader_lin\" 2>/dev/null)\n\n        if [[ -n \"$paths\" ]]; then\n          package_names=$(echo \"$paths\" | awk -F'/' '{ print $3 \"-\" $4 \"-ioncube-loader\" }' )\n\n          while IFS= read -r path <&3 && IFS= read -r package <&4; do\n\n            if [[ \"$package\" == *\"alt-php\"* && \"$path\" == \"/opt/alt/php\"* ]]; then\n              echo \"[ INFO ] Installing package: $package\"\n\n              if dnf install -y \"$package\"; then\n                echo \"[ INFO ] Removing the ioncube_loader_lin.so module from $path!\"\n                sed -i '/zend_extension=\\/opt\\/alt\\/php.*\\/ioncube_loader_lin_.*\\.so/d' \"$path\"\n\n                php_bin=$(echo $path | sed 's|/etc/php.d/default.ini|/usr/bin/php|')\n                ioncube_ini=$(echo $path | sed 's|/php.d/default.ini|/php.d.all/ioncube_loader.ini|')\n                dest_path=$(echo $path | sed 's|default.ini|10-ioncube_loader.ini|')\n\n                ln -s \"$ioncube_ini\" \"$dest_path\"\n\n                if ! \"$php_bin\" -i |  grep -w \"ionCube24 v1[4-5]\"; then\n                  echo \"[ ERROR ] Ioncube wasn't enabled successfully!\"\n                  exit 128\n                else\n                  echo \"[ INFO ] Ioncube was enabled successfully!\"\n                  exit 0\n                fi\n\n              else\n                echo \"[ ERROR ] Failed to install $package. Stopping script!\"\n                exit 128\n              fi\n\n            else\n              echo \"[ ERROR ] Something went wrong: $path $package\"\n              exit 128\n            fi\n\n          done 3<<< \"$paths\" 4<<< \"$package_names\"\n          find /opt/alt/php* -name \"ioncube_loader_lin*.so\" -type f -delete\n\n        else\n          echo \"[ INFO ] ioncube_loader_lin.so file wasn't found!\"\n        fi\n\n      args:\n        executable: /bin/bash\n      register: output\n      when: (plsk.plesk_found and plsk.imunify_found) or (plsk.plesk_found and plsk.cloudlinux_found)\n      changed_when: output.rc == 0\n      failed_when: false\n\n    - name: Record servers where the script failed\n      ansible.builtin.lineinfile:\n        create: true\n        mode: '0644'\n        path: RM10252/hostnames\n        line: \"{{ inventory_hostname }}\"\n      when: output.rc != 0\n      delegate_to: localhost\n","created":"2026-03-03T20:11:27.739122Z","updated":"2026-03-03T20:11:27.739167Z","path":"/home/ssh-gateway/ansible/ansible-luca/ioncube-fixer.yaml"}