Browse Source

Merge pull request #167 from arthurlogilab/multiphp

[php/ng] support the use of a list of php versions
tags/v0.39.0
Imran Iqbal 5 years ago
parent
commit
ef25eb93ca
No account linked to committer's email address
10 changed files with 130 additions and 3 deletions
  1. +11
    -0
      php/ng/cli/ini.sls
  2. +11
    -0
      php/ng/cli/init.sls
  3. +11
    -0
      php/ng/cli/install.sls
  4. +34
    -0
      php/ng/fpm/config.sls
  5. +21
    -0
      php/ng/fpm/init.sls
  6. +9
    -1
      php/ng/fpm/pools_config.sls
  7. +1
    -1
      php/ng/ini.jinja
  8. +15
    -0
      php/ng/installed.jinja
  9. +6
    -1
      php/ng/map.jinja
  10. +11
    -0
      pillar.example

+ 11
- 0
php/ng/cli/ini.sls View File

{% endif %} {% endif %}
{% endfor %} {% endfor %}


{% set pillar_php_ng_version = salt['pillar.get']('php:ng:version', '7.0') %}
{% if pillar_php_ng_version is iterable and pillar_php_ng_version is not string %}
{% for version in pillar_php_ng_version %}
{% set first_version = pillar_php_ng_version[0]|string %}
{% set ini = php.lookup.cli.ini|replace(first_version, version) %}
php_cli_ini_{{ version }}:
{{ php_ini(ini, php.cli.ini.opts, settings) }}
{% endfor %}
{% else %}

php_cli_ini: php_cli_ini:
{{ php_ini(php.lookup.cli.ini, php.cli.ini.opts, settings) }} {{ php_ini(php.lookup.cli.ini, php.cli.ini.opts, settings) }}
{% endif %}

+ 11
- 0
php/ng/cli/init.sls View File

- php.ng.cli.install - php.ng.cli.install
- php.ng.cli.ini - php.ng.cli.ini


{% set pillar_php_ng_version = salt['pillar.get']('php:ng:version', '7.0') %}
{% if pillar_php_ng_version is iterable and pillar_php_ng_version is not string %}
extend:
{% for version in pillar_php_ng_version %}
php_cli_ini_{{ version }}:
file:
- require:
- sls: php.ng.cli.install
{% endfor %}
{% else %}
extend: extend:
php_cli_ini: php_cli_ini:
file: file:
- require: - require:
- sls: php.ng.cli.install - sls: php.ng.cli.install
{% endif %}

+ 11
- 0
php/ng/cli/install.sls View File



{%- if salt['grains.get']('os_family') == "Debian" %} {%- if salt['grains.get']('os_family') == "Debian" %}
{% set current_php = salt['alternatives.show_current']('php') %} {% set current_php = salt['alternatives.show_current']('php') %}
{% set pillar_php_ng_version = salt['pillar.get']('php:ng:version', '7.0') %}
{% if pillar_php_ng_version is iterable and pillar_php_ng_version is not string %}
{% if 'alternatives_version' in salt['pillar.get']('php:ng') %}
{% set phpng_version = salt['pillar.get']('php:ng:alternatives_version') %}
{% else %}
{% set phpng_version = false %}
{% endif %}
{% else %}
{% set phpng_version = salt['pillar.get']('php:ng:version', '7.0')|string %} {% set phpng_version = salt['pillar.get']('php:ng:version', '7.0')|string %}
{% endif %}


{% if phpng_version %}
php_{{ phpng_version }}_link: php_{{ phpng_version }}_link:
alternatives.set: alternatives.set:
- name: php - name: php
- which php - which php
- test {{ current_php }} != $(which php{{ phpng_version }}) - test {{ current_php }} != $(which php{{ phpng_version }})
{% endif %} {% endif %}
{% endif %}

+ 34
- 0
php/ng/fpm/config.sls View File

{% endif %} {% endif %}
{% endfor %} {% endfor %}


{% set pillar_php_ng_version = salt['pillar.get']('php:ng:version', '7.0') %}
{% if pillar_php_ng_version is iterable and pillar_php_ng_version is not string %}
{% for version in pillar_php_ng_version %}
{% set conf_settings = odict(php.lookup.fpm.defaults) %}
{% set first_version = pillar_php_ng_version[0]|string %}
{% set ini = php.lookup.fpm.ini|replace(first_version, version) %}
{% set conf = php.lookup.fpm.conf|replace(first_version, version) %}
{% set pools = php.lookup.fpm.pools|replace(first_version, version) %}

{% for key, value in conf_settings.items() %}
{% if value is string %}
{% do conf_settings.update({key: value.replace(first_version, version)}) %}
{% endif %}
{% endfor %}
{% do conf_settings.global.update({'pid': '/var/run/php' + version + '-fpm.pid' }) %}
{% do conf_settings.global.update({'error_log': '/var/log/php' + version + '-fpm.log' }) %}

php_fpm_ini_config_{{ version }}:
{{ php_ini(ini, php.fpm.config.ini.opts, ini_settings) }}

php_fpm_conf_config_{{ version }}:
{{ php_ini(conf, php.fpm.config.conf.opts, odict(conf_settings)) }}

{{ pools }}:
file.directory:
- name: {{ pools }}
- user: {{ php.lookup.fpm.user }}
- group: {{ php.lookup.fpm.group }}
- file_mode: 755
- make_dirs: True
{% endfor %}
{% else %}

{% set conf_settings = php.lookup.fpm.defaults %} {% set conf_settings = php.lookup.fpm.defaults %}
{% do conf_settings.update(php.fpm.config.conf.settings) %} {% do conf_settings.update(php.fpm.config.conf.settings) %}


- group: {{ php.lookup.fpm.group }} - group: {{ php.lookup.fpm.group }}
- file_mode: 755 - file_mode: 755
- make_dirs: True - make_dirs: True
{% endif %}

+ 21
- 0
php/ng/fpm/init.sls View File

- php.ng.fpm.service - php.ng.fpm.service
- php.ng.fpm.pools - php.ng.fpm.pools


{% set pillar_php_ng_version = salt['pillar.get']('php:ng:version', '7.0') %}
extend: extend:
php_fpm_service: php_fpm_service:
service: service:
- watch: - watch:
{% if pillar_php_ng_version is iterable and pillar_php_ng_version is not string %}
{% for version in pillar_php_ng_version %}
- file: php_fpm_ini_config_{{ version }}
- file: php_fpm_conf_config_{{ version }}
{% endfor %}
{% else %}
- file: php_fpm_ini_config - file: php_fpm_ini_config
- file: php_fpm_conf_config - file: php_fpm_conf_config
{% endif %}
- require: - require:
- sls: php.ng.fpm.config - sls: php.ng.fpm.config
{% if pillar_php_ng_version is iterable and pillar_php_ng_version is not string %}
{% for version in pillar_php_ng_version %}
php_fpm_ini_config_{{ version }}:
file:
- require:
- pkg: php_install_fpm
php_fpm_conf_config_{{ version }}:
file:
- require:
- pkg: php_install_fpm
{% endfor %}
{% else %}
php_fpm_ini_config: php_fpm_ini_config:
file: file:
- require: - require:
file: file:
- require: - require:
- pkg: php_install_fpm - pkg: php_install_fpm
{% endif %}

+ 9
- 1
php/ng/fpm/pools_config.sls View File

{% do pvalues.update(pool_defaults) %} {% do pvalues.update(pool_defaults) %}
{% endfor %} {% endfor %}
{% set state = 'php_fpm_pool_conf_' ~ loop.index0 %} {% set state = 'php_fpm_pool_conf_' ~ loop.index0 %}
{% set fpath = path_join(config.get('filename', pool), php.lookup.fpm.pools) %}

{% set pillar_php_ng_version = salt['pillar.get']('php:ng:version', '7.0') %}
{% if pillar_php_ng_version is iterable and pillar_php_ng_version is not string %}
{% set first_fpath = path_join(config.get('filename', pool), php.lookup.fpm.pools) %}
{% set first_version = pillar_php_ng_version[0]|string %}
{% set fpath = first_fpath.replace(first_version, config.get('phpversion', '7.0')) %}
{% else %}
{% set fpath = path_join(config.get('filename', pool), php.lookup.fpm.pools) %}
{% endif %}


{{ state }}: {{ state }}:
{% if config.enabled %} {% if config.enabled %}

+ 1
- 1
php/ng/ini.jinja View File

- source: salt://php/ng/files/php.ini - source: salt://php/ng/files/php.ini
- template: jinja - template: jinja
- context: - context:
config: {{ serialize(settings) }}
config: {{ serialize(odict(settings)) }}
{%- endmacro -%} {%- endmacro -%}

+ 15
- 0
php/ng/installed.jinja View File

{% set pkgs = [] %} {% set pkgs = [] %}
{% set specials = [] %} {% set specials = [] %}


{% set pillar_php_ng_version = salt['pillar.get']('php:ng:version', '7.0') %}
{% if pkginfo is iterable and pkginfo is not string %} {% if pkginfo is iterable and pkginfo is not string %}
{% for pkg in pkginfo %} {% for pkg in pkginfo %}
{% if pkg is mapping %} {% if pkg is mapping %}
{% do specials.append(pkg) %} {% do specials.append(pkg) %}
{% else %} {% else %}
{% do pkgs.append(pkg) %} {% do pkgs.append(pkg) %}
{% if pillar_php_ng_version is iterable and pillar_php_ng_version is not string %}
{% set first_version = pillar_php_ng_version[0]|string %}
{% for other_version in pillar_php_ng_version %}
{% set other_version_str = other_version|string %}
{% do pkgs.append(pkg.replace(first_version, other_version_str)) %}
{% endfor %}
{% endif %}
{% endif %} {% endif %}
{% endfor %} {% endfor %}
{% else %} {% else %}
{% do pkgs.append(pkginfo) %} {% do pkgs.append(pkginfo) %}
{% if pillar_php_ng_version is iterable and pillar_php_ng_version is not string %}
{% set first_version = pillar_php_ng_version[0]|string %}
{% for other_version in pillar_php_ng_version %}
{% set other_version_str = other_version|string %}
{% do pkgs.append(pkginfo.replace(first_version, other_version_str)) %}
{% endfor %}
{% endif %}
{% endif %} {% endif %}


{% if grains['os_family'] == "Debian" and (state == 'cli' or state == 'fpm' or state == 'php') %} {% if grains['os_family'] == "Debian" and (state == 'cli' or state == 'fpm' or state == 'php') %}

+ 6
- 1
php/ng/map.jinja View File

# -*- coding: utf-8 -*- # -*- coding: utf-8 -*-
# vim: ft=jinja # vim: ft=jinja


{%- set phpng_version = salt['pillar.get']('php:ng:version', '7.0')|string %}
{% set pillar_php_ng_version = salt['pillar.get']('php:ng:version', '7.0') %}
{%- if pillar_php_ng_version is iterable and pillar_php_ng_version is not string %}
{%- set phpng_version = pillar_php_ng_version[0]|string %}
{% else %}
{%- set phpng_version = pillar_php_ng_version|string %}
{% endif %}
{%- set freebsd_phpng_version = phpng_version.replace('.', '') %} {%- set freebsd_phpng_version = phpng_version.replace('.', '') %}


{%- if salt['grains.get']('os') == "Ubuntu" %} {%- if salt['grains.get']('os') == "Ubuntu" %}

+ 11
- 0
pillar.example View File

# when you add the php.mongo formula to your execution list # when you add the php.mongo formula to your execution list
mongo_version: "1.5.5" mongo_version: "1.5.5"
ng: ng:
# set the version of php to be used
version: "7.3"
# can be a list of versions :
# version:
# - "7.3"
# - "7.2"

# set the version for the Debian alternatives system, when using a list of versions,
# php:ng:version is used otherwise.
alternatives_version: "7.3"

# this section contains mostly grain filtered data, while overrides # this section contains mostly grain filtered data, while overrides
# are possible in the pillar for unique cases, if your OS is not # are possible in the pillar for unique cases, if your OS is not
# represented, please consider adding it to the map.jinja for # represented, please consider adding it to the map.jinja for

Loading…
Cancel
Save