diff --git a/defaults/main.yml b/defaults/main.yml index 154d3302b5f918b507b5edbeab8788079384d134..e45c34971f1e7d90b9ff30f00e89f67571769663 100644 --- a/defaults/main.yml +++ b/defaults/main.yml @@ -6,7 +6,6 @@ php_versions: '8.1': state: present packages_absent: - - php8.1-apcu - libapache2-mod-php8.1 - php8.1-phpdbg packages_present: @@ -31,8 +30,84 @@ php_versions: state: absent cli: state: present + modules_disabled: [] + modules_enabled: + - apcu + - bcmath + - bz2 + - calendar + - ctype + - curl + - dom + - exif + - ffi + - fileinfo + - ftp + - gettext + - iconv + - imap + - intl + - ldap + - mbstring + - opcache + - pdo + - pdo_sqlite + - phar + - posix + - readline + - shmop + - simplexml + - sockets + - sqlite3 + - sysvmsg + - sysvsem + - sysvshm + - tokenizer + - uploadprogress + - xml + - xmlreader + - xmlwriter + - xsl fpm: state: present + modules_disabled: [] + modules_enabled: + - apcu + - bcmath + - bz2 + - calendar + - ctype + - curl + - dom + - exif + - ffi + - fileinfo + - ftp + - gettext + - iconv + - imap + - intl + - ldap + - mbstring + - opcache + - pdo + - pdo_sqlite + - phar + - posix + - readline + - shmop + - simplexml + - sockets + - sqlite3 + - sysvmsg + - sysvsem + - sysvshm + - tokenizer + - uploadprogress + - xml + - xmlreader + - xmlwriter + - xsl phpdbg: state: absent '8.0': @@ -62,8 +137,82 @@ php_versions: state: absent cli: state: present + modules_disabled: [] + modules_enabled: + - apcu + - bcmath + - bz2 + - calendar + - ctype + - curl + - dom + - exif + - ffi + - fileinfo + - ftp + - gettext + - iconv + - imap + - intl + - ldap + - opcache + - pdo + - pdo_sqlite + - phar + - posix + - readline + - shmop + - simplexml + - sockets + - sqlite3 + - sysvmsg + - sysvsem + - sysvshm + - tokenizer + - uploadprogress + - xml + - xmlreader + - xmlwriter + - xsl fpm: state: present + modules_disabled: [] + modules_enabled: + - apcu + - bcmath + - bz2 + - calendar + - ctype + - curl + - dom + - exif + - ffi + - fileinfo + - ftp + - gettext + - iconv + - imap + - intl + - ldap + - opcache + - pdo + - pdo_sqlite + - phar + - posix + - readline + - shmop + - simplexml + - sockets + - sqlite3 + - sysvmsg + - sysvsem + - sysvshm + - tokenizer + - uploadprogress + - xml + - xmlreader + - xmlwriter + - xsl phpdbg: state: absent '7.4': @@ -96,8 +245,108 @@ php_versions: state: absent cli: state: present + modules_disabled: [] + modules_enabled: + - apcu + - apcu_bc + - bcmath + - bz2 + - calendar + - ctype + - curl + - dom + - exif + - ffi + - fileinfo + - ftp + - gd + - geoip + - gettext + - gmp + - iconv + - imagick + - imap + - intl + - json + - ldap + - mbstring + - mysqli + - mysqlnd + - opcache + - pdo + - pdo_mysql + - pdo_sqlite + - phar + - posix + - readline + - shmop + - simplexml + - soap + - sockets + - sqlite3 + - sysvmsg + - sysvsem + - sysvshm + - tokenizer + - uploadprogress + - xml + - xmlreader + - xmlrpc + - xmlwriter + - xsl + - zip fpm: state: present + modules_disabled: [] + modules_enabled: + - apcu + - apcu_bc + - bcmath + - bz2 + - calendar + - ctype + - curl + - dom + - exif + - ffi + - fileinfo + - ftp + - gd + - geoip + - gettext + - gmp + - iconv + - imagick + - imap + - intl + - json + - ldap + - mbstring + - mysqli + - mysqlnd + - opcache + - pdo + - pdo_mysql + - pdo_sqlite + - phar + - posix + - readline + - shmop + - simplexml + - soap + - sockets + - sqlite3 + - sysvmsg + - sysvsem + - sysvshm + - tokenizer + - uploadprogress + - xml + - xmlreader + - xmlrpc + - xmlwriter + - xsl + - zip phpdbg: state: absent '7.3': diff --git a/tasks/checks.yml b/tasks/checks.yml index 8f19521ca97dc2429f078732935014ee7e97ea62..92d062dcafe406d5ec413a17d5bb8efcfc95e1eb 100644 --- a/tasks/checks.yml +++ b/tasks/checks.yml @@ -51,7 +51,7 @@ var: php_versions_proposed verbosity: 2 - - name: Check that for each proposed version of PHP there are not packages due to be absent and present at the same time + - name: Check that for each proposed version of PHP there are not packages due to be present and absent at the same time include_tasks: pkg_checks.yml loop: "{{ php_versions_proposed }}" loop_control: @@ -99,13 +99,15 @@ label: "{{ version }}" when: ( php_versions_absent is defined ) and ( php_versions_absent != [] ) - # - name: Include SAPI checks for PHP proposed versions - # include_tasks: sapi_checks.yml - # loop: "{{ php_versions_proposed }}" - # loop_control: - # loop_var: version - # label: "{{ version }}" - # when: ( php_versions_proposed is defined ) and ( php_versions_proposed != [] ) + - name: Include SAPI checks for PHP proposed versions + include_tasks: sapi_checks.yml + loop: "{{ php_versions_proposed }}" + loop_control: + loop_var: version + label: "{{ version }}" + when: + - ( php_versions[version].sapis is defined ) + - ( php_versions_proposed is defined ) and ( php_versions_proposed != [] ) # - name: Debug fail # fail: diff --git a/tasks/sapi_checks.yml b/tasks/sapi_checks.yml index 61f634600e191fa4e38d54d896b1e89c4126f746..2d934fe55650ea859a8f8e7f9947ad1f9c51ad9c 100644 --- a/tasks/sapi_checks.yml +++ b/tasks/sapi_checks.yml @@ -11,82 +11,17 @@ loop_control: loop_var: sapi label: "{{ sapi.key }}" - when: php_versions[version].sapis is defined -# - name: "Include PHP {{ version }} SAPI state checks" -# include_tasks: sapi_state_checks.yml -# loop: "{{ php_versions[version].sapis | dict2items }}" -# loop_control: -# loop_var: sapi -# label: "{{ sapi.key }}" -# when: -# - php_versions[version].sapis is defined - # - php_versions[version].sapis.sapi is defined - # - php_versions[version].sapis.sapi.state is defined - - # - name: "Debug PHP {{ version }} SAPI state" - # debug: - # var: sapi.value.state - # verbosity: 2 - # loop: "{{ php_versions[version].sapis | dict2items }}" - # loop_control: - # loop_var: sapi - # label: "{{ sapi.key }}" - # when: - # - php_versions[version].sapis is defined - # - php_versions[version].sapis.sapi is defined - # - php_versions[version].sapis.sapi.state is defined - - # - name: "Check that no SAPI is set to be present when PHP {{ version }} is set to be removed" - # assert: - # that: - # - sapi.value.state != "present" - # loop: "{{ php_versions[version].sapis | dict2items }}" - # loop_control: - # loop_var: sapi - # label: "{{ sapi.key }}" - # when: - # - php_versions[version].sapis is defined - # - php_versions[version].sapis.sapi is defined - # - php_versions[version].sapis.sapi.state is defined - - # - name: Fail - # fail: - - # - name: "Debug existing SAPIs for PHP {{ version }}" - # debug: - # var: ansible_local.phpquery.versions[version].sapis - # verbosity: 3 - # when: ansible_local.phpquery.versions[version].sapis is defined - - # - name: "Set an array for the existing SAPIs for PHP {{ version }}" - # set_fact: - # php_existing_sapis: "{{ php_existing_sapis | default([]) }} + [ '{{ existing_sapi.key }}' ]" - # when: - # - ansible_local.phpquery.versions[version].sapis is defined - # - existing_sapi.value.state == "present" - # loop: "{{ ansible_local.phpquery.versions[version].sapis | dict2items }}" - # loop_control: - # loop_var: existing_sapi - # label: "{{ existing_sapi.key }}" - - # - name: "Debug existing SAPIs for PHP {{ version }}" - # debug: - # var: php_existing_sapis - - # - name: Generate an array of proposed PHP SAPIs - # set_fact: - # php_proposed_sapis: "{{ php_proposed_sapis | default([]) }} + [ '{{ proposed_sapi.key }}' ]" - # when: ( proposed_sapi.value.state is defined ) and ( proposed_sapi.value.state == "present" ) - # loop: "{{ sapis }}" - # loop_control: - # loop_var: proposed_sapi - # label: "{{ proposed_sapi.key }}" - - # - name: Debug proposed PHP SAPIs - # debug: - # var: php_proposed_sapis - # when: php_proposed_sapis is defined + - name: "Check that no SAPI modules are set to be enabled and disabled at the same time for PHP {{ version }}" + include_tasks: sapi_module_checks.yml + loop: "{{ php_versions[version].sapis | dict2items }}" + loop_control: + loop_var: sapi + label: "{{ sapi.key }}" + when: + - ( sapi.value.state is defined ) and ( sapi.value.state == "present" ) + - ( sapi.value.modules_enabled is defined ) and ( sapi.value.modules_enabled != [] ) + - ( sapi.value.modules_disabled is defined ) and ( sapi.value.modules_disabled != [] ) tags: - php diff --git a/tasks/sapi_module_checks.yml b/tasks/sapi_module_checks.yml new file mode 100644 index 0000000000000000000000000000000000000000..0bf56f4949a64ccedbe287af6414019c7535b445 --- /dev/null +++ b/tasks/sapi_module_checks.yml @@ -0,0 +1,19 @@ +--- +- name: Check that no SAPI modules are set to be enabled and disabled at the same time + block: + + - name: "Loop through the modules_enabled for SAPI {{ sapi.key }} for PHP {{ version }} to check that none are also set to be disabled" + assert: + that: + - mod not in sapi.value.modules_disabled + loop: "{{ sapi.value.modules_enabled }}" + loop_control: + loop_var: mod + label: "{{ mod }}" + when: + - ( sapi.value.modules_enabled is defined ) and ( sapi.value.modules_enabled != [] ) + - ( sapi.value.modules_disabled is defined ) and ( sapi.value.modules_disabled != [] ) + + tags: + - php +...