--- - name: Install and manage PHP environment collections: [ 'debops.debops', 'debops.roles01', 'debops.roles02', 'debops.roles03' ] hosts: [ 'debian10' ] become: True environment: '{{ inventory__environment | d({}) | combine(inventory__group_environment | d({})) | combine(inventory__host_environment | d({})) }}' vars: php__version_preference: [ 'php7.4' ] php__sury: '{{ ansible_local.php.sury |d(ansible_distribution_release in [ "buster" ]) | bool }}' php__sury_apt_key_id: '{{ php__sury_apt_key_id_map[ansible_distribution] }}' php__sury_apt_repo: '{{ php__sury_apt_repo_map[ansible_distribution] }}' php__sury_apt_key_id_map: 'Debian': - id: '1505 8500 A023 5D97 F5D1 0063 B188 E2B6 95BD 4743' repo: 'deb https://packages.sury.org/php/ {{ ansible_distribution_release }} main' state: '{{ "present" if php__sury|bool else "absent" }}' # Key replaced due to security concerns # Ref: https://www.patreon.com/posts/dpa-new-signing-25451165 - id: 'DF3D 585D B8F0 EB65 8690 A554 AC0E 4758 4A7A 714D' state: 'absent' php__sury_apt_repo_map: 'Debian': 'deb https://packages.sury.org/php/ {{ ansible_distribution_release }} main' 'Ubuntu': 'ppa:ondrej/php' php__base_packages: - unzip - git # mysql - это нужно только для WordPress # mbstring требует только некоторые пакеты в laravel # bcmath - нужно для работы парсера Excel файлов на одном из проектов php__packages: [ 'curl', 'xml', 'gd', 'zip', 'mbstring', 'mysql', 'bcmath' ] php__composer_upstream_enabled: '{{ True if (ansible_distribution_release in [ "buster" ]) else False }}' php__php_included_packages: '{{ php__common_included_packages + [ "sysvsem", "sysvshm" ] }}' pre_tasks: - name: Apply keyring configuration for php environment import_role: name: 'keyring' vars: keyring__dependent_apt_keys: - '{{ php__keyring__dependent_apt_keys }}' tags: [ 'role::keyring', 'skip::keyring', 'role::php' ] - name: Prepare php environment import_role: name: 'php' tasks_from: 'main_env' tags: [ 'role::php', 'role::php:env', 'role::logrotate' ] roles: - role: apt_preferences tags: [ 'role::apt_preferences', 'skip::apt_preferences' ] apt_preferences__dependent_list: - '{{ php__apt_preferences__dependent_list }}' - role: cron tags: [ 'role::cron', 'skip::cron' ] - role: logrotate tags: [ 'role::logrotate', 'skip::logrotate' ] logrotate__dependent_config: - '{{ php__logrotate__dependent_config }}' - role: apt_install - role: php tags: [ 'role::php', 'skip::php' ]