php

Ansible роль PHP 7.x, 8.x

CI MoleculeAnsible Role

Платформы

Тестирование репозиторий: дистрибутив репозиторий: сторонний
Debian 11 PHP 7.4 Sury
Debian 10 PHP 7.3 Sury
Ubuntu 20.04 PHP 7.4 ppa:andrej
Ubuntu 18.04 PHP 7.2 ppa:andrej
Oracle Linux 8 PHP 7.2-7.4 Remi
Rocky Linux 8 PHP 7.2-7.4 Remi

Установка

ansible-galaxy install darexsu.php --force

Поведение объединения

Замена или Объединение словарей (с "hash_behaviour=replace" в ansible.cfg):

# Замена             # Объединение
---                   ---
  vars:                 vars:
    dict:                 merge:
      a: "value"            dict: 
      b: "value"              a: "value" 
                              b: "value"

# Как работает объединение?:
Ваши vars [host_vars]  -->  vars по умолчанию [текущая роль] --> vars по умолчанию [включить роль]
  
  dict:          dict:              dict:
    a: "1" -->     a: "1"    -->      a: "1"
                   b: "2"    -->      b: "2"
                                      c: "3"
установка и настройка: PHP (вариант с объединением)
---
- hosts: all
  become: true

  vars:
    merge:
      # PHP
      php:
        enabled: true
        version: "7.4"
      # PHP -> установка
      php_install:
        enabled: true
        modules: [common, fpm]
      # PHP -> конфигурация -> php.ini
      php_ini:
        enabled: true
        file: "php.ini"
        src: "php_ini.j2"
        backup: false
        data:
          php:
            max_execution_time: "30"
            max_input_time: "60"
            memory_limit: "128M"
            upload_max_filesize: "2M"
      # PHP -> конфигурация -> php.fpm
      php_fpm:
        www_conf:
          enabled: true
          file: "www.conf"
          state: "present"
          data:
            webserver_user: "www-data"
            webserver_group: "www-data"
            pm: "dynamic"
            pm_max_children: "10"
            pm_start_servers: "5"
            pm_min_spare_servers: "5"
            pm_max_spare_servers: "5"
            pm_max_requests: "500"
            unix_socket:
              enabled: true
              file: "php{{ php.version }}-fpm.sock"
              user: "www-data"
              group: "www-data"

  tasks:
    - name: включить роль darexsu.php
      include_role:
        name: darexsu.php
установка: PHP, репозиторий: дистрибутив (вариант с объединением)
---
- hosts: all
  become: true

  vars:
    merge:
      # PHP
      php:
        enabled: true
        version: "7.4"
        repo: "distribution"
      # PHP -> установка
      php_install:
        enabled: true
        modules: [common, fpm]

  tasks:
    - name: включить роль darexsu.php
      include_role: 
        name: darexsu.php
установка: PHP, репозиторий: сторонний (вариант с объединением)
---
- hosts: all
  become: true

  vars:
    merge:
      # PHP
      php:
        enabled: true
        version: "8.0"
        repo: "third_party"

      # PHP -> установка
      php_install:
        enabled: true
        modules: [common, fpm]

  tasks:
    - name: включить роль darexsu.php
      include_role: 
        name: darexsu.php
установка: модули PHP (вариант с объединением)
---
- hosts: all
  become: true

  vars:
    merge:
      # PHP
      php:
        enabled: true
        version: "7.4"
        repo: "third_party"
      # PHP -> установка
      php_install:
        enabled: true
      # PHP -> установка -> установка пользовательских модулей
        modules: [common, fpm, gd]

  tasks:
    - name: включить роль darexsu.php
      include_role:
        name: darexsu.php
настройка: php.ini (вариант с объединением)
---
- hosts: all
  become: true

  vars:
    merge:
      # PHP
      php:
        enabled: true
        version: "7.4"
        repo: "third_party"
      # PHP -> конфигурация -> php.ini
      php_ini:
        enabled: true
        data:
          php:
            engine: "On"
            short_open_tag: "Off"
            precision: "14"
            output_buffering: "4096"
            zlib_output_compression: "Off"
            implicit_flush: "Off"
       #    ...

  tasks:
    - name: включить роль darexsu.php
      include_role:
        name: darexsu.php
настройка: сокет php-fpm tcpip (вариант с объединением)
---
- hosts: all
  become: yes

  vars:
    merge:
      # PHP
      php:
        enabled: true
        version: "7.4"
        repo: "third_party"
      # PHP -> конфигурация -> пул php-fpm
      php_fpm:
        www_conf:
          enabled: true
          file: "www.conf"
          state: "present"
          src: "php_fpm.j2"
          backup: true          
          data:
            webserver_user: "www-data"
            webserver_group: "www-data"
            pm: "dynamic"
            pm_max_children: "10"
            pm_start_servers: "5"
            pm_min_spare_servers: "5"
            pm_max_spare_servers: "5"
            pm_max_requests: "500"
      # PHP -> конфигурация -> пул php-fpm -> включить сокет tcp/ip   
            tcp_ip_socket:
              enabled: true
              listen: "127.0.0.1:9000"
      # PHP -> конфигурация -> пул php-fpm -> отключить сокет unix
            unix_socket:
              enabled: false
              file: "php{{ php.version }}-fpm.sock"
              user: "www-data"
              group: "www-data"  

  tasks:
    - name: включить роль darexsu.php
      include_role: 
        name: darexsu.php
настройка: сокет php-fpm unix (вариант с объединением)
---
- hosts: all
  become: yes

  vars:
    merge:
      # PHP
      php:
        enabled: true
        version: "7.4"
        repo: "third_party"
      # PHP -> конфигурация -> пул php-fpm
      php_fpm:
        www_conf:
          enabled: true
          file: "www.conf"
          state: "present"
          src: "php_fpm.j2"
          backup: true         
          data:
            webserver_user: "www-data"
            webserver_group: "www-data"
            pm: "dynamic"
            pm_max_children: "10"
            pm_start_servers: "5"
            pm_min_spare_servers: "5"
            pm_max_spare_servers: "5"
            pm_max_requests: "500"
      # PHP -> конфигурация -> пул php-fpm -> отключить сокет tcp/ip       
            tcp_ip_socket:
              enabled: false
              listen: "127.0.0.1:9000"
      # PHP -> конфигурация -> пул php-fpm -> включить сокет unix
            unix_socket:
              enabled: true
              file: "php{{ php.version }}-fpm.sock"
              user: "www-data"
              group: "www-data"  

  tasks:
    - name: включить роль darexsu.php
      include_role: 
        name: darexsu.php
настройка: добавление нескольких конфигураций (вариант с объединением)
---
- hosts: all
  become: yes

  vars:
    merge:
      # PHP
      php:
        enabled: true
        version: "7.4"
        repo: "third_party"
      # PHP -> конфигурация -> пул php-fpm
      php_fpm:
      # PHP -> конфигурация -> пул php.fpm -> удалить www.conf  
        www_conf:
          enabled: true
          state: "absent"
      # PHP -> конфигурация -> пул php.fpm -> добавить new.conf
        first_conf:
          enabled: true
          file: "first.conf"
          state: "present"
          src: "php_fpm.j2"
          backup: true         
          data:
            webserver_user: "www-data"
            webserver_group: "www-data"
            pm: "dynamic"
            pm_max_children: "10"
            pm_start_servers: "5"
            pm_min_spare_servers: "5"
            pm_max_spare_servers: "5"
            pm_max_requests: "500"      
            tcp_ip_socket:
              enabled: false
              listen: "127.0.0.1:9000"
            unix_socket:
              enabled: true
              file: "php{{ php.version }}-first-fpm.sock"
              user: "www-data"
              group: "www-data"
      # PHP -> конфигурация -> пул php.fpm -> добавить second.conf
        second_conf:
          enabled: true
          file: "second.conf"
          state: "present"
          src: "php_fpm.j2"
          backup: true         
          data:
            webserver_user: "www-data"
            webserver_group: "www-data"
            pm: "dynamic"
            pm_max_children: "10"
            pm_start_servers: "5"
            pm_min_spare_servers: "5"
            pm_max_spare_servers: "5"
            pm_max_requests: "500"      
            tcp_ip_socket:
              enabled: false
              listen: "127.0.0.1:9000"
            unix_socket:
              enabled: true
              file: "php{{ php.version }}-second-fpm.sock"
              user: "www-data"
              group: "www-data"  

  tasks:
    - name: включить роль darexsu.php
      include_role: 
        name: darexsu.php
установка и настройка: PHP (полная версия)
---
- hosts: all
  become: true

  vars:
    # PHP
    php:
      enabled: true
      version: "7.4"
      repo: "third_party"
      service:
        enabled: true
        state: "started"
    # PHP -> установка
    php_install:
      enabled: true
      modules: [common, fpm]
    # PHP -> конфигурация -> php.ini
    php_ini:
      enabled: true
      file: "php.ini"
      src: "php_ini.j2"
      backup: false
      data:
        php:
          engine: "On"
          short_open_tag: "Off"
          precision: "14"
          output_buffering: "4096"
          zlib_output_compression: "Off"
          implicit_flush: "Off"
          unserialize_callback_func: ""
          serialize_precision: "-1"
          disable_functions: ""
          disable_classes: ""
          zend_enable_gc: ""
          zend_exception_ignore_args: "On"
          zend_exception_string_param_max_len: "0"
          expose_php: "On"
          max_execution_time: "30"
          max_input_time: "60"
          memory_limit: "128M"
          error_reporting: "E_ALL & ~E_DEPRECATED & ~E_STRICT"
          display_errors: "Off"
          display_startup_errors: "Off"
          log_errors: "On"
          log_errors_max_len: "1024"
          ignore_repeated_errors: "Off"
          ignore_repeated_source: "Off"
          report_memleaks: "On"
          variables_order: "GPCS"
          request_order: "GP"
          register_argc_argv: "Off"
          auto_globals_jit: "On"
          post_max_size: "8M"
          auto_prepend_file: ""
          auto_append_file: ""
          default_mimetype: "text/html"
          default_charset: "UTF-8"
          doc_root: ""
          user_dir: ""
          enable_dl: "Off"
          file_uploads: "On"
          upload_max_filesize: "2M"
          max_file_uploads: "20"
          allow_url_fopen: "On"
          allow_url_include: "Off"
          default_socket_timeout: "60"
    # PHP -> конфигурация -> php.fpm
    php_fpm:
      www_conf:
        enabled: true
        file: "www.conf"
        state: "present"
        src: "php_fpm.j2"
        backup: false
        data:
          webserver_user: "www-data"
          webserver_group: "www-data"
          pm: "dynamic"
          pm_max_children: "10"
          pm_start_servers: "5"
          pm_min_spare_servers: "5"
          pm_max_spare_servers: "5"
          pm_max_requests: "500"
          tcp_ip_socket:
            enabled: false
            listen: "127.0.0.1:9000"
          unix_socket:
            enabled: true
            file: "php{{ php.version }}-fpm.sock"
            user: "www-data"
            group: "www-data"

  tasks:
    - name: включить роль darexsu.php
      include_role: 
        name: darexsu.php
установка: PHP, репозиторий: дистрибутив (полная версия)
---
- hosts: all
  become: true

  vars:
    # PHP
    php:
      enabled: true
      version: "7.4"
      repo: "distribution"
      service:
        enabled: true
        state: "started"
    # PHP -> установка
    php_install:
      enabled: true
      modules: [common, fpm]

  tasks:
    - name: включить роль darexsu.php
      include_role: 
        name: darexsu.php
установка: PHP, репозиторий: сторонний (полная версия)
---
- hosts: all
  become: true

  vars:
    # PHP
    php:
      enabled: true
      version: "8.0"
      repo: "third_party"
      service:
        enabled: true
        state: "started"
    # PHP -> установка
    php_install:
      enabled: true
      modules: [common, fpm]

  tasks:
    - name: включить роль darexsu.php
      include_role: 
        name: darexsu.php
установка: модули PHP (полная версия)
---
- hosts: all
  become: true

  vars:
    # PHP
    php:
      enabled: true
      version: "7.4"
      repo: "third_party"
      service:
        enabled: true
        state: "started"
    # PHP -> установка
    php_install:
      enabled: true
    # PHP -> установка -> установка пользовательских модулей
      modules: [common, fpm, gd]

  tasks:
    - name: включить роль darexsu.php
      include_role: 
        name: darexsu.php 
настройка: php.ini (полная версия)
---
- hosts: all
  become: true

  vars:
    # PHP
    php:
      enabled: true
      version: "7.4"
      repo: "third_party"
      service:
        enabled: true
        state: "started"
    # PHP -> конфигурация -> php.ini
    php_ini:
      enabled: true
      file: "php.ini"
      src: "php_ini.j2"
      backup: false
      data:
        php:
          engine: "On"
          short_open_tag: "Off"
          precision: "14"
          output_buffering: "4096"
          zlib_output_compression: "Off"
          implicit_flush: "Off"
          unserialize_callback_func: ""
          serialize_precision: "-1"
          disable_functions: ""
          disable_classes: ""
          zend_enable_gc: ""
          zend_exception_ignore_args: "On"
          zend_exception_string_param_max_len: "0"
          expose_php: "On"
          max_execution_time: "30"
          max_input_time: "60"
          memory_limit: "128M"
          error_reporting: "E_ALL & ~E_DEPRECATED & ~E_STRICT"
          display_errors: "Off"
          display_startup_errors: "Off"
          log_errors: "On"
          log_errors_max_len: "1024"
          ignore_repeated_errors: "Off"
          ignore_repeated_source: "Off"
          report_memleaks: "On"
          variables_order: "GPCS"
          request_order: "GP"
          register_argc_argv: "Off"
          auto_globals_jit: "On"
          post_max_size: "8M"
          auto_prepend_file: ""
          auto_append_file: ""
          default_mimetype: "text/html"
          default_charset: "UTF-8"
          doc_root: ""
          user_dir: ""
          enable_dl: "Off"
          file_uploads: "On"
          upload_max_filesize: "2M"
          max_file_uploads: "20"
          allow_url_fopen: "On"
          allow_url_include: "Off"
          default_socket_timeout: "60"

  tasks:
    - name: включить роль darexsu.php
      include_role: 
        name: darexsu.php
настройка: php-fpm tcpip (полная версия)
---
- hosts: all
  become: yes

  vars:
    # PHP
    php:
      enabled: true
      version: "7.4"
      repo: "third_party"
    # PHP -> конфигурация -> пул php-fpm
    php_fpm:
      www_conf:
        enabled: true
        file: "www.conf"
        state: "present"
        src: "php_fpm.j2"
        backup: true          
        data:
          webserver_user: "www-data"
          webserver_group: "www-data"
          pm: "dynamic"
          pm_max_children: "10"
          pm_start_servers: "5"
          pm_min_spare_servers: "5"
          pm_max_spare_servers: "5"
          pm_max_requests: "500"
    # PHP -> конфигурация -> пул php-fpm -> включить сокет tcp/ip   
          tcp_ip_socket:
            enabled: true
            listen: "127.0.0.1:9000"
    # PHP -> конфигурация -> пул php-fpm -> отключить сокет unix
          unix_socket:
            enabled: false
            file: "php{{ php.version }}-fpm.sock"
            user: "www-data"
            group: "www-data"  

  tasks:
    - name: включить роль darexsu.php
      include_role: 
        name: darexsu.php
настройка: php-fpm unix-сокет (полная версия)
---
- hosts: all
  become: yes

  vars:
    # PHP
    php:
      enabled: true
      version: "7.4"
      repo: "third_party"
    # PHP -> конфигурация -> пул php-fpm
    php_fpm:
      www_conf:
        enabled: true
        file: "www.conf"
        state: "present"
        src: "php_fpm.j2"
        backup: true         
        data:
          webserver_user: "www-data"
          webserver_group: "www-data"
          pm: "dynamic"
          pm_max_children: "10"
          pm_start_servers: "5"
          pm_min_spare_servers: "5"
          pm_max_spare_servers: "5"
          pm_max_requests: "500"
    # PHP -> конфигурация -> пул php-fpm -> отключить сокет tcp/ip       
          tcp_ip_socket:
            enabled: false
            listen: "127.0.0.1:9000"
    # PHP -> конфигурация -> пул php-fpm -> включить сокет unix
          unix_socket:
            enabled: true
            file: "php{{ php.version }}-fpm.sock"
            user: "www-data"
            group: "www-data"  

  tasks:
    - name: включить роль darexsu.php
      include_role: 
        name: darexsu.php
настройка: добавление нескольких конфигураций (полная версия)
---
- hosts: all
  become: yes

  vars:
    # PHP
    php:
      enabled: true
      version: "7.4"
      repo: "third_party"
    # PHP -> конфигурация -> пул php-fpm
    php_fpm:
    # PHP -> конфигурация -> пул php.fpm -> удалить www.conf  
      www_conf:
        enabled: true
        state: "absent"
    # PHP -> конфигурация -> пул php.fpm -> добавить new.conf
      first_conf:
        enabled: true
        file: "first.conf"
        state: "present"
        src: "php_fpm.j2"
        backup: true         
        data:
          webserver_user: "www-data"
          webserver_group: "www-data"
          pm: "dynamic"
          pm_max_children: "10"
          pm_start_servers: "5"
          pm_min_spare_servers: "5"
          pm_max_spare_servers: "5"
          pm_max_requests: "500"      
          tcp_ip_socket:
            enabled: false
            listen: "127.0.0.1:9000"
          unix_socket:
            enabled: true
            file: "php{{ php.version }}-first-fpm.sock"
            user: "www-data"
            group: "www-data"
    # PHP -> конфигурация -> пул php.fpm -> добавить second.conf
      second_conf:
        enabled: true
        file: "second.conf"
        state: "present"
        src: "php_fpm.j2"
        backup: true         
        data:
          webserver_user: "www-data"
          webserver_group: "www-data"
          pm: "dynamic"
          pm_max_children: "10"
          pm_start_servers: "5"
          pm_min_spare_servers: "5"
          pm_max_spare_servers: "5"
          pm_max_requests: "500"      
          tcp_ip_socket:
            enabled: false
            listen: "127.0.0.1:9000"
          unix_socket:
            enabled: true
            file: "php{{ php.version }}-second-fpm.sock"
            user: "www-data"
            group: "www-data"

  tasks:
    - name: включить роль darexsu.php
      include_role: 
        name: darexsu.php
О проекте

install and configure php 7.x, php 8.x.

Установить
ansible-galaxy install darexsu/ansible-role-php
Лицензия
mit
Загрузки
2705
Владелец