feat(php/ng): support the use of a list of php versions

Related to #138
This commit is contained in:
Arthur Lutz 2019-03-26 18:31:43 +01:00
parent 4dc3e14ca4
commit b3032391dd
6 changed files with 83 additions and 4 deletions

View File

@ -11,6 +11,39 @@
{% endif %}
{% endfor %}
{% if salt['pillar.get']('php:ng:version') is iterable %}
{% for version in salt['pillar.get']('php:ng:version') %}
{% set conf_settings = odict(php.lookup.fpm.defaults) %}
{% set first_version = salt['pillar.get']('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 %}
{% do conf_settings.update(php.fpm.config.conf.settings) %}
@ -27,3 +60,4 @@ php_fpm_conf_config:
- group: {{ php.lookup.fpm.group }}
- file_mode: 755
- make_dirs: True
{% endif %}

View File

@ -9,10 +9,29 @@ extend:
php_fpm_service:
service:
- watch:
{% if salt['pillar.get']('php:ng:version') is iterable %}
{% for version in salt['pillar.get']('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_conf_config
{% endif %}
- require:
- sls: php.ng.fpm.config
{% if salt['pillar.get']('php:ng:version') is iterable %}
{% for version in salt['pillar.get']('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:
file:
- require:
@ -21,3 +40,4 @@ extend:
file:
- require:
- pkg: php_install_fpm
{% endif %}

View File

@ -17,7 +17,14 @@
{% do pvalues.update(pool_defaults) %}
{% endfor %}
{% set state = 'php_fpm_pool_conf_' ~ loop.index0 %}
{% set fpath = path_join(config.get('filename', pool), php.lookup.fpm.pools) %}
{% if salt['pillar.get']('php:ng:version') is iterable %}
{% set first_fpath = path_join(config.get('filename', pool), php.lookup.fpm.pools) %}
{% set first_version = salt['pillar.get']('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 }}:
{% if config.enabled %}

View File

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

View File

@ -16,10 +16,24 @@
{% do specials.append(pkg) %}
{% else %}
{% do pkgs.append(pkg) %}
{% if salt['pillar.get']('php:ng:version') is iterable %}
{% set first_version = salt['pillar.get']('php:ng:version')[0]|string %}
{% for other_version in salt['pillar.get']('php:ng:version') %}
{% set other_version_str = other_version|string %}
{% do pkgs.append(pkg.replace(first_version, other_version_str)) %}
{% endfor %}
{% endif %}
{% endif %}
{% endfor %}
{% else %}
{% do pkgs.append(pkginfo) %}
{% if salt['pillar.get']('php:ng:version') is iterable %}
{% set first_version = salt['pillar.get']('php:ng:version')[0]|string %}
{% for other_version in salt['pillar.get']('php:ng:version') %}
{% set other_version_str = other_version|string %}
{% do pkgs.append(pkginfo.replace(first_version, other_version_str)) %}
{% endfor %}
{% endif %}
{% endif %}
{% if grains['os_family'] == "Debian" and (state == 'cli' or state == 'fpm' or state == 'php') %}
@ -60,7 +74,7 @@ php_ppa_{{ state }}:
- __env__:
- LC_ALL: C.UTF-8
- onlyif:
- test ! -e /etc/apt/sources.list.d/ondrej-php.list
- test ! -e /etc/apt/sources.list.d/ondrej-php.list
- require_in:
- pkg: php_install_{{ state }}
pkg.latest:

View File

@ -1,7 +1,11 @@
# -*- coding: utf-8 -*-
# vim: ft=jinja
{%- set phpng_version = salt['pillar.get']('php:ng:version', '7.0')|string %}
{%- if salt['pillar.get']('php:ng:version') is iterable %}
{%- set phpng_version = salt['pillar.get']('php:ng:version')[0]|string %}
{% else %}
{%- set phpng_version = salt['pillar.get']('php:ng:version', '7.0')|string %}
{% endif %}
{%- set freebsd_phpng_version = phpng_version.replace('.', '') %}
{%- if salt['grains.get']('os') == "Ubuntu" %}