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
2.9 KiB

  1. ---
  2. - name: Install and manage PHP environment
  3. collections: [ 'debops.debops', 'debops.roles01',
  4. 'debops.roles02', 'debops.roles03' ]
  5. hosts: [ 'debian10' ]
  6. become: True
  7. environment: '{{ inventory__environment | d({})
  8. | combine(inventory__group_environment | d({}))
  9. | combine(inventory__host_environment | d({})) }}'
  10. vars_files:
  11. - ./../../vars/php.yml
  12. vars:
  13. php__sury_apt_key_id_map:
  14. 'Debian':
  15. - id: '1505 8500 A023 5D97 F5D1 0063 B188 E2B6 95BD 4743'
  16. repo: 'deb https://packages.sury.su/php/ {{ ansible_distribution_release }} main'
  17. state: '{{ "present" if php__sury|bool else "absent" }}'
  18. # Key replaced due to security concerns
  19. # Ref: https://www.patreon.com/posts/dpa-new-signing-25451165
  20. - id: 'DF3D 585D B8F0 EB65 8690 A554 AC0E 4758 4A7A 714D'
  21. state: 'absent'
  22. php__sury_apt_repo_map:
  23. 'Debian': 'deb https://packages.sury.su/php/ {{ ansible_distribution_release }} main'
  24. 'Ubuntu': 'ppa:ondrej/php'
  25. php__sury_apt_key_id: '{{ php__sury_apt_key_id_map[ansible_distribution] }}'
  26. php__sury_apt_repo: '{{ php__sury_apt_repo_map[ansible_distribution] }}'
  27. php__base_packages:
  28. - unzip
  29. - git
  30. # mysql - это нужно только для WordPress
  31. # mbstring требует только некоторые пакеты в laravel
  32. # bcmath - нужно для работы парсера Excel файлов на одном из проектов
  33. php__packages: [ 'curl', 'xml', 'gd', 'zip', 'mbstring', 'mysql', 'bcmath' ]
  34. php__composer_upstream_enabled: '{{ True
  35. if (ansible_distribution_release in
  36. [ "buster" ])
  37. else False }}'
  38. php__php_included_packages: '{{ php__common_included_packages
  39. + [ "sysvsem", "sysvshm" ] }}'
  40. pre_tasks:
  41. - name: Apply keyring configuration for php environment
  42. import_role:
  43. name: 'keyring'
  44. vars:
  45. keyring__dependent_apt_keys:
  46. - '{{ php__keyring__dependent_apt_keys }}'
  47. tags: [ 'role::keyring', 'skip::keyring', 'role::php' ]
  48. - name: Prepare php environment
  49. import_role:
  50. name: 'php'
  51. tasks_from: 'main_env'
  52. tags: [ 'role::php', 'role::php:env', 'role::logrotate' ]
  53. roles:
  54. - role: apt_preferences
  55. tags: [ 'role::apt_preferences', 'skip::apt_preferences' ]
  56. apt_preferences__dependent_list:
  57. - '{{ php__apt_preferences__dependent_list }}'
  58. - role: cron
  59. tags: [ 'role::cron', 'skip::cron' ]
  60. - role: logrotate
  61. tags: [ 'role::logrotate', 'skip::logrotate' ]
  62. logrotate__dependent_config:
  63. - '{{ php__logrotate__dependent_config }}'
  64. - role: apt_install
  65. - role: php
  66. tags: [ 'role::php', 'skip::php' ]