Cleaned up pools.

This commit is contained in:
Chad Heuschober 2014-06-06 14:53:36 -04:00
parent 0a8b0ceaf1
commit ef19addb98
4 changed files with 108 additions and 34 deletions

View File

@ -9,14 +9,14 @@
{% set pool_states = [] %}
{% for pool, config in php.fpm.pools.managed.items() %}
{% for pool, config in php.fpm.pools.items() %}
{% set state = 'php_fpm_pool_conf_' ~ loop.index0 %}
{% set fpath = path_join(pool, php.lookup.fpm.pools) %}
{{ state }}:
{% if config.enabled %}
file.managed:
{{ sls_block(php.fpm.pools.managed_opts) }}
{{ sls_block(config.opts) }}
- name: {{ fpath }}
- source: salt://php/ng/files/php.ini
- template: jinja

View File

@ -5,23 +5,30 @@
{% set pkginfo = php.lookup.pkgs.get(state) %}
{%- if pkginfo is mapping -%}
{%- for pkg, opts in pkginfo.items() -%}
{% set pkgs = [] %}
{% set specials = [] %}
php_install_{{ state }}_{{ pkg }}:
pkg.installed:
{{ sls_block(opts) }}
- name: {{ state }}
{%- endfor -%}
{%- else -%}
{%- if pkginfo is not sequence or pkginfo is string -%}
{% set pkginfo = [pkginfo] %}
{%- endif -%}
{% 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) %}
{% endif %}
{% endfor %}
{% else %}
{% do pkgs.append(pkginfo) %}
{% endif %}
php_install_{{ state }}:
pkg.installed:
- name: {{ state }}
- pkgs: {{ php.lookup.pkgs.get(state)|json() }}
- pkgs: {{ pkgs|json() }}
{%- endif -%}
{% for pkg in specials %}
php_install_{{ state }}_{{ pkg.get('name') }}:
pkg.installed:
{{ sls_block(pkg) }}
{% endfor %}

View File

@ -102,16 +102,13 @@
'settings': {},
},
},
'pools': {
'managed_opts': {},
'absent_opts': {},
'managed': {},
},
'pools': {},
},
'cli': {
'ini':
'ini': {
'opts': {},
'settings': {},
}
},
'ini': {
'defaults': {

View File

@ -8,7 +8,8 @@ php:
# upstream inclusion
lookup:
# package definitions, these can lists, strings, or dictionaries
# package definitions, these can strings, lists of strings, or
# lists of dictionaries
pkgs:
memcached: php5-memcached
# ensures both will be installed
@ -17,23 +18,92 @@ php:
- curl
# a dictionary can be used in more complex cases where you want
# to pass forward special arguments to the pkg.installed call
# you MUST include the name argument for this to work
cli:
php-cli:
fromrepo: my-specialrepo
php-common:
-
name: php-cli
fromrepo: my-specialrepo
-
name: php-common
skip_verify: True
# php-fpm os-specific settings
fpm:
# the main php-fpm config file
conf: /etc/php5/fpm/php-fpm.conf
# the php-fpm php.ini
ini: /etc/php5/fpm/php.ini
# the location where pools are stored
pools: /etc/php5/fpm/pool.d
# the name of the php-fpm service
service: php5-fpm
conf: /location/of/php-fpm/config.conf
ini: /location/of/php-fpm/php.ini
pools: /location/of/php-fpm/pool.d
service: name-of-php5-fpm-service
# the default content of the php5-fpm main config file
defaults:
global:
pid: /var/run/php5-fpm.pid
# php-cli os-specific settings
cli:
ini: /location/of/php-cli/php.ini
# php-fpm settings
fpm:
# settings for the php-fpm service
service:
# if True, enables the php-fpm service, if False disables it
enabled: True
# additional arguments passed forward to
# service.enabled/disabled
opts:
reload: True
# settings for the relevant php-fpm configuration files
config:
# options to manage the php.ini file used by php-fpm
ini:
# arguments passed through to file.managed
opts:
recurse: True
# php.ini file contents that will be merged with the
# defaults in php.ng.ini.defaults. See php.ng.ini.defaults for
# syntax guidelines.
settings:
PHP:
engine: 'Off'
# options to manage the php-fpm conf file
conf:
# arguments passed through to file.managed
opts:
recurse: True
# php-fpm conf file contents that will be merged with
# php.ng.lookup.fpm.defaults. See php.ng.ini.defaults for
# ini-style syntax guidelines.
settings:
global:
pid: /var/run/php-fpm/special-pid.file
# settings for fpm-pools
pools:
# name of the pool file to be managed, this will be appended
# to the path specified in php.ng.lookup.fpm.pools
'mypool.conf':
# If true, the pool file will be managed, if False it will be
# absent
enabled: True
# arguments passed forward to file.managed or file.absent
opts:
replace: False
# pool file contents. See php.ng.ini.defaults for ini-style
# syntax guidelines.
settings:
myapp:
user: www-data
group: www-data
listen: /var/run/php5-fpm-myapp.sock
pm: dynamic
pm.max_children: 5
pm.start_servers: 2
pm.min_spare_servers: 1
pm.max_spare_servers: 3
'php_admin_value[memory_limit]': 300M