[WIP] Improve FPM management

- store configuration in local facts
- better socket generator
- php_admin_value/php_value
This commit is contained in:
Emilien Mantel
2019-12-26 11:38:06 +01:00
parent 1eea41cd39
commit ec1175af21
8 changed files with 80 additions and 60 deletions

View File

@@ -24,13 +24,13 @@
- name: TEMPLATE | Deploy pool configuration
template:
src: etc/__php__/fpm/pool.d/pool.conf.j2
dest: '{{ php_fpm_pool_dir }}/{{ item.pool_name }}.conf'
loop: "{{ php_fpm_poold }}"
dest: '{{ php_fpm_pool_dir }}/{{ item.name }}.conf'
loop: "{{ ansible_local.hanxhx_php.fpm_pool }}"
notify: restart php-fpm
- name: FILE | Delete default pool if necessary
file:
path: "{{ php_fpm_pool_dir }}/www.conf"
state: absent
when: '"www" not in (php_fpm_poold | map(attribute="pool_name") | list)'
when: '"www" not in (ansible_local.hanxhx_php.fpm_pool | map(attribute="name") | list)'
notify: restart php-fpm

View File

@@ -22,13 +22,13 @@
{% for p in php_fpm_poold %}
{
name: "{{ p.name | default(p.pool_name) }}",
listen: "{{ item.listen | default(php_version | php_socket(p.name | default(p.pool_name))) }}",
user: "{{ item.user | default(php_default_user_group) }}",
group: "{{ item.group | default(php_default_user_group) }}",
listen_owner: "{{ item.listen_owner | default(php_default_user_group) }}",
listen_group: "{{ item.listen_owner | default(php_default_user_group) }}",
{% for k, v in p.items() %}
{% if k not in ['name', 'pool_name', 'listen', 'user', 'group', 'listen_owner'] %}
listen: "{{ p.listen | default(php_version | php_socket(p.name | default(p.pool_name))) }}",
user: "{{ p.user | default(php_default_user_group) }}",
group: "{% if p.user is defined %}{{ p.group | default(p.user) }}{% else %}{{ p.group | default(php_default_user_group) }}{% endif %}",
php_value: {% if p.php_value is defined %}{{ p.php_value | to_nice_json }}{% else %}{}{% endif %},
php_admin_value: {% if p.php_admin_value is defined %}{{ p.php_admin_value | to_nice_json }}{% else %}{}{% endif %},
{% for k, v in p.items() | list %}
{% if k not in ['name', 'pool_name', 'listen', 'user', 'group', 'php_value', 'php_admin_value'] %}
{{ k }}: "{{ v }}"{% if not loop.last %},{% endif %}
{% endif %}
{% endfor %}
@@ -46,28 +46,32 @@
state: directory
recurse: yes
- name: COPY | Manage current repositories
- name: COPY | Manage facts
copy:
content: "{ \"php_fpm_full_pool\": {{ php_fpm_full_pool | to_json }} }"
dest: /etc/ansible/facts.d/php_fpm_pool.fact
content: "{ \"fpm_pool\": {{ php_fpm_full_pool | to_nice_json }} }"
dest: /etc/ansible/facts.d/hanxhx_php.fact
register: f
- debug: var=php_fpm_full_pool
- fail: msg='ok'
- name: SETUP | Gathers new facts
setup:
when: f.changed
tags:
- skip_ansible_lint
- name: APT | Install PHP packages
apt:
pkg: "{{ item }}"
pkg: "{{ pkgs }}"
state: present
update_cache: yes
cache_valid_time: 3600
loop: "{{ php_packages + php_extra_packages | flatten }}"
vars:
pkgs: "{{ php_packages + php_extra_packages | flatten }}"
notify: restart php-fpm
when: ansible_os_family == 'Debian'
- name: PKGNG | Install PHP packages
pkgng:
name: "{{ item }}"
loop: "{{ php_packages + php_extra_packages | flatten }}"
name: "{{ php_packages + php_extra_packages | flatten | join(',') }}"
notify: restart php-fpm
when: ansible_os_family == 'FreeBSD'