You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
80 lines
3.0 KiB
80 lines
3.0 KiB
---
|
|
|
|
- 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' ]
|