[php/ng] support the use of a list of php versionstags/v0.39.0
@@ -14,5 +14,16 @@ include: | |||
{% endif %} | |||
{% 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_ini(php.lookup.cli.ini, php.cli.ini.opts, settings) }} | |||
{% endif %} |
@@ -5,8 +5,19 @@ include: | |||
- php.ng.cli.install | |||
- 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: | |||
php_cli_ini: | |||
file: | |||
- require: | |||
- sls: php.ng.cli.install | |||
{% endif %} |
@@ -6,8 +6,18 @@ include: | |||
{%- if salt['grains.get']('os_family') == "Debian" %} | |||
{% 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 %} | |||
{% endif %} | |||
{% if phpng_version %} | |||
php_{{ phpng_version }}_link: | |||
alternatives.set: | |||
- name: php | |||
@@ -18,3 +28,4 @@ php_{{ phpng_version }}_link: | |||
- which php | |||
- test {{ current_php }} != $(which php{{ phpng_version }}) | |||
{% endif %} | |||
{% endif %} |
@@ -14,6 +14,39 @@ include: | |||
{% endif %} | |||
{% 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 %} | |||
{% do conf_settings.update(php.fpm.config.conf.settings) %} | |||
@@ -30,3 +63,4 @@ php_fpm_conf_config: | |||
- group: {{ php.lookup.fpm.group }} | |||
- file_mode: 755 | |||
- make_dirs: True | |||
{% endif %} |
@@ -6,14 +6,34 @@ include: | |||
- php.ng.fpm.service | |||
- php.ng.fpm.pools | |||
{% set pillar_php_ng_version = salt['pillar.get']('php:ng:version', '7.0') %} | |||
extend: | |||
php_fpm_service: | |||
service: | |||
- 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_conf_config | |||
{% endif %} | |||
- require: | |||
- 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: | |||
file: | |||
- require: | |||
@@ -22,3 +42,4 @@ extend: | |||
file: | |||
- require: | |||
- pkg: php_install_fpm | |||
{% endif %} |
@@ -20,7 +20,15 @@ include: | |||
{% 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) %} | |||
{% 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 }}: | |||
{% if config.enabled %} |
@@ -10,5 +10,5 @@ | |||
- source: salt://php/ng/files/php.ini | |||
- template: jinja | |||
- context: | |||
config: {{ serialize(settings) }} | |||
config: {{ serialize(odict(settings)) }} | |||
{%- endmacro -%} |
@@ -12,16 +12,31 @@ include: | |||
{% set pkgs = [] %} | |||
{% set specials = [] %} | |||
{% set pillar_php_ng_version = salt['pillar.get']('php:ng:version', '7.0') %} | |||
{% if pkginfo is iterable and pkginfo is not string %} | |||
{% for pkg in pkginfo %} | |||
{% if pkg is mapping %} | |||
{% do specials.append(pkg) %} | |||
{% else %} | |||
{% 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 %} | |||
{% endfor %} | |||
{% else %} | |||
{% 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 %} | |||
{% if grains['os_family'] == "Debian" and (state == 'cli' or state == 'fpm' or state == 'php') %} |
@@ -1,7 +1,12 @@ | |||
# -*- coding: utf-8 -*- | |||
# 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('.', '') %} | |||
{%- if salt['grains.get']('os') == "Ubuntu" %} |
@@ -20,6 +20,17 @@ php: | |||
# when you add the php.mongo formula to your execution list | |||
mongo_version: "1.5.5" | |||
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 | |||
# are possible in the pillar for unique cases, if your OS is not | |||
# represented, please consider adding it to the map.jinja for |