Skip to content
Snippets Groups Projects
main.yml 6.78 KiB
---
- name: Install and configure PHP
  block:

    - name: Include local facts tasks
      ansible.builtin.include_tasks: local_facts.yml

    - name: Include check tasks
      ansible.builtin.include_tasks: checks.yml

    - name: Include apt repo config for Sury PHP packages
      ansible.builtin.include_tasks: apt.yml
      when: php_sury | bool

    - name: PHP versions absent
      block:

        - name: "PHP versioned packages absent"
          ansible.builtin.apt:
            pkg: "php{{ version }}*"
            state: absent
            purge: true
            autoclean: true
            autoremove: true
          loop: "{{ php_versions_absent }}"
          loop_control:
            loop_var: version
            label: "{{ version }}"

        - name: "PHP versioned config files absent"
          ansible.builtin.file:
            path: "/etc/php/{{ version }}/"
            state: absent
          loop: "{{ php_versions_absent }}"
          loop_control:
            loop_var: version
            label: "{{ version }}"

      when: ( php_versions_absent is defined ) and ( php_versions_absent != [] )

    - name: PHP versions present
      block:

        - name: PHP versioned packages absent
          ansible.builtin.apt:
            pkg: "{{ php_versions[version].packages_absent }}"
            state: absent
          loop: "{{ php_versions_proposed }}"
          loop_control:
            loop_var: version
            label: "{{ version }}"
          when: ( php_versions[version].packages_absent is defined ) and ( php_versions[version].packages_absent != [] )

        - name: PHP SAPIs absent
          ansible.builtin.include_tasks: sapi_absent.yml
          loop: "{{ php_versions_proposed }}"
          loop_control:
            loop_var: version
            label: "{{ version }}"
          when: php_versions[version].sapis is defined

        - name: PHP versioned packages present
          ansible.builtin.apt:
            pkg: "{{ php_versions[version].packages_present }}"
            state: present
          loop: "{{ php_versions_proposed }}"
          loop_control:
            loop_var: version
            label: "{{ version }}"
          when: ( php_versions[version].packages_present is defined ) and ( php_versions[version].packages_present != [] )