diff --git a/.travis.yml b/.travis.yml index 4fd0881..a6f77d8 100644 --- a/.travis.yml +++ b/.travis.yml @@ -1,46 +1,25 @@ env: - - PLATFORM='docker-debian-stretch-php70' ANSIBLE_VERSION='ansible>=2.0,<2.1' - - PLATFORM='docker-debian-stretch-php71' ANSIBLE_VERSION='ansible>=2.0,<2.1' - - PLATFORM='docker-debian-stretch-php72' ANSIBLE_VERSION='ansible>=2.0,<2.1' - - PLATFORM='docker-debian-stretch-php73' ANSIBLE_VERSION='ansible>=2.0,<2.1' - - PLATFORM='docker-debian-stretch-php70' ANSIBLE_VERSION='ansible>=2.1,<2.2' - - PLATFORM='docker-debian-stretch-php71' ANSIBLE_VERSION='ansible>=2.1,<2.2' - - PLATFORM='docker-debian-stretch-php72' ANSIBLE_VERSION='ansible>=2.1,<2.2' - - PLATFORM='docker-debian-stretch-php73' ANSIBLE_VERSION='ansible>=2.1,<2.2' - - PLATFORM='docker-debian-stretch-php70' ANSIBLE_VERSION='ansible>=2.2,<2.3' - - PLATFORM='docker-debian-stretch-php71' ANSIBLE_VERSION='ansible>=2.2,<2.3' - - PLATFORM='docker-debian-stretch-php72' ANSIBLE_VERSION='ansible>=2.2,<2.3' - - PLATFORM='docker-debian-stretch-php73' ANSIBLE_VERSION='ansible>=2.2,<2.3' - - PLATFORM='docker-debian-stretch-php70' ANSIBLE_VERSION='ansible>=2.3,<2.4' - - PLATFORM='docker-debian-stretch-php71' ANSIBLE_VERSION='ansible>=2.3,<2.4' - - PLATFORM='docker-debian-stretch-php72' ANSIBLE_VERSION='ansible>=2.3,<2.4' - - PLATFORM='docker-debian-stretch-php73' ANSIBLE_VERSION='ansible>=2.3,<2.4' - - PLATFORM='docker-debian-stretch-php70' ANSIBLE_VERSION='ansible>=2.4,<2.5' - - PLATFORM='docker-debian-stretch-php71' ANSIBLE_VERSION='ansible>=2.4,<2.5' - - PLATFORM='docker-debian-stretch-php72' ANSIBLE_VERSION='ansible>=2.4,<2.5' - - PLATFORM='docker-debian-stretch-php73' ANSIBLE_VERSION='ansible>=2.4,<2.5' - PLATFORM='docker-debian-stretch-php70' ANSIBLE_VERSION='ansible>=2.5,<2.6' - PLATFORM='docker-debian-stretch-php71' ANSIBLE_VERSION='ansible>=2.5,<2.6' - PLATFORM='docker-debian-stretch-php72' ANSIBLE_VERSION='ansible>=2.5,<2.6' - PLATFORM='docker-debian-stretch-php73' ANSIBLE_VERSION='ansible>=2.5,<2.6' + - PLATFORM='docker-ubuntu-xenial-php70' ANSIBLE_VERSION='ansible>=2.5,<2.6' + - PLATFORM='docker-ubuntu-bionic-php72' ANSIBLE_VERSION='ansible>=2.5,<2.6' + - PLATFORM='docker-ubuntu-bionic-php72' ANSIBLE_VERSION='ansible>=2.5,<2.6' - PLATFORM='docker-debian-stretch-php70' ANSIBLE_VERSION='ansible>=2.6,<2.7' - PLATFORM='docker-debian-stretch-php71' ANSIBLE_VERSION='ansible>=2.6,<2.7' - PLATFORM='docker-debian-stretch-php72' ANSIBLE_VERSION='ansible>=2.6,<2.7' - PLATFORM='docker-debian-stretch-php73' ANSIBLE_VERSION='ansible>=2.6,<2.7' - - PLATFORM='docker-ubuntu-xenial-php70' ANSIBLE_VERSION='ansible>=2.0,<2.1' - - PLATFORM='docker-ubuntu-xenial-php70' ANSIBLE_VERSION='ansible>=2.1,<2.2' - - PLATFORM='docker-ubuntu-xenial-php70' ANSIBLE_VERSION='ansible>=2.2,<2.3' - - PLATFORM='docker-ubuntu-xenial-php70' ANSIBLE_VERSION='ansible>=2.3,<2.4' - - PLATFORM='docker-ubuntu-xenial-php70' ANSIBLE_VERSION='ansible>=2.4,<2.5' - - PLATFORM='docker-ubuntu-xenial-php70' ANSIBLE_VERSION='ansible>=2.5,<2.6' - PLATFORM='docker-ubuntu-xenial-php70' ANSIBLE_VERSION='ansible>=2.6,<2.7' - - PLATFORM='docker-ubuntu-bionic-php72' ANSIBLE_VERSION='ansible>=2.0,<2.1' - - PLATFORM='docker-ubuntu-bionic-php72' ANSIBLE_VERSION='ansible>=2.1,<2.2' - - PLATFORM='docker-ubuntu-bionic-php72' ANSIBLE_VERSION='ansible>=2.2,<2.3' - - PLATFORM='docker-ubuntu-bionic-php72' ANSIBLE_VERSION='ansible>=2.3,<2.4' - - PLATFORM='docker-ubuntu-bionic-php72' ANSIBLE_VERSION='ansible>=2.4,<2.5' - - PLATFORM='docker-ubuntu-bionic-php72' ANSIBLE_VERSION='ansible>=2.5,<2.6' - PLATFORM='docker-ubuntu-bionic-php72' ANSIBLE_VERSION='ansible>=2.6,<2.7' + - PLATFORM='docker-ubuntu-bionic-php72' ANSIBLE_VERSION='ansible>=2.6,<2.7' + - PLATFORM='docker-debian-stretch-php70' ANSIBLE_VERSION='ansible>=2.7,<2.8' + - PLATFORM='docker-debian-stretch-php71' ANSIBLE_VERSION='ansible>=2.7,<2.8' + - PLATFORM='docker-debian-stretch-php72' ANSIBLE_VERSION='ansible>=2.7,<2.8' + - PLATFORM='docker-debian-stretch-php73' ANSIBLE_VERSION='ansible>=2.7,<2.8' + - PLATFORM='docker-ubuntu-xenial-php70' ANSIBLE_VERSION='ansible>=2.7,<2.8' + - PLATFORM='docker-ubuntu-bionic-php72' ANSIBLE_VERSION='ansible>=2.7,<2.8' + - PLATFORM='docker-ubuntu-bionic-php72' ANSIBLE_VERSION='ansible>=2.7,<2.8' sudo: required diff --git a/handlers/main.yml b/handlers/main.yml index 4fed4a9..6563f8d 100644 --- a/handlers/main.yml +++ b/handlers/main.yml @@ -5,3 +5,10 @@ name: '{{ php_fpm_service }}' state: restarted when: php_install_fpm + notify: docker restart php-fpm + +- name: docker restart php-fpm + command: 'service {{ php_fpm_service }} restart' + args: + warn: false + when: ansible_virtualization_type == 'docker' diff --git a/meta/main.yml b/meta/main.yml index fb8b2a1..fb597ab 100644 --- a/meta/main.yml +++ b/meta/main.yml @@ -1,10 +1,10 @@ --- galaxy_info: author: Emilien Mantel - description: Install and configure PHP 7.0/7.1/7.2 (+ FPM is wanted) + description: Install and configure PHP 7.0/7.1/7.2/7.3 company: license: GPLv2 - min_ansible_version: 2.0 + min_ansible_version: 2.5 platforms: - name: Debian versions: diff --git a/tasks/fpm.yml b/tasks/fpm.yml index ad35f49..c4b2b87 100644 --- a/tasks/fpm.yml +++ b/tasks/fpm.yml @@ -18,12 +18,12 @@ regexp: '^;?{{ item.key }}' line: '{{ item.key }} = {{ item.value }}' create: yes - with_dict: "{{ php_ini | combine(php_ini_fpm) }}" + loop: "{{ php_ini | combine(php_ini_fpm) | dict2items }}" notify: restart php-fpm - name: TEMPLATE | Deploy pool configuration template: src: etc/__php__/fpm/pool.d/pool.conf.j2 dest: '{{ php_fpm_pool_dir }}/{{ item.pool_name }}.conf' - with_items: "{{ php_fpm_poold }}" + loop: "{{ php_fpm_poold }}" notify: restart php-fpm diff --git a/tasks/main.yml b/tasks/main.yml index cf4f2ab..986438a 100644 --- a/tasks/main.yml +++ b/tasks/main.yml @@ -16,18 +16,14 @@ state: present update_cache: yes cache_valid_time: 3600 - with_flattened: - - "{{ php_packages }}" - - "{{ php_extra_packages }}" + loop: "{{ php_packages + php_extra_packages | flatten }}" notify: restart php-fpm when: ansible_os_family == 'Debian' - name: PKGNG | Install PHP packages pkgng: name: "{{ item }}" - with_flattened: - - "{{ php_packages }}" - - "{{ php_extra_packages }}" + loop: "{{ php_packages + php_extra_packages | flatten }}" notify: restart php-fpm when: ansible_os_family == 'FreeBSD' @@ -39,10 +35,34 @@ dest: '{{ php_cli_ini }}' regexp: '^;?{{ item.key }}' line: '{{ item.key }} = {{ item.value }}' - with_dict: "{{ php_ini | combine(php_ini_cli) }}" + loop: "{{ php_ini | combine(php_ini_cli) | dict2items }}" - name: INCLUDE | Xdebug include: xdebug.yml - name: APT | Install and configure opcache include: opcache.yml + +- name: SERVICE | Ensure PHP-FPM is started + service: + name: '{{ php_fpm_service }}' + state: started + when: php_install_fpm and ansible_virtualization_type != 'docker' + +- block: + + - name: COMMAND | Check if PHP-FPM is started (Docker) + command: 'service {{ php_fpm_service }} status' + args: + warn: false + register: dps + changed_when: false + failed_when: false + + - name: COMMAND | Ensure PHP-FPM is started (Docker) + command: 'service {{ php_fpm_service }} start' + args: + warn: false + when: dps.stdout.find('is not running') != -1 + + when: php_install_fpm and ansible_virtualization_type == 'docker' diff --git a/tests/includes/pre_Debian.yml b/tests/includes/pre_Debian.yml index bbf1a55..f7d67ae 100644 --- a/tests/includes/pre_Debian.yml +++ b/tests/includes/pre_Debian.yml @@ -6,18 +6,19 @@ - name: APT | Install packages apt: - pkg: "{{ item }}" + pkg: "{{ p }}" update_cache: yes cache_valid_time: 3600 - with_items: - - apt-transport-https - - ca-certificates - - curl - - lsb-release - - nginx + vars: + p: + - apt-transport-https + - ca-certificates + - curl + - lsb-release + - nginx - name: INCLUDE | Sury include: Debian/sury.yml when: > - ansible_distribution_major_version | version_compare(9, 'eq') and - php_version | version_compare('7.1', 'ge') + ansible_distribution_major_version is version(9, 'eq') and + php_version is version('7.1', 'ge') diff --git a/tests/includes/pre_FreeBSD.yml b/tests/includes/pre_FreeBSD.yml index 7237f11..823b42f 100644 --- a/tests/includes/pre_FreeBSD.yml +++ b/tests/includes/pre_FreeBSD.yml @@ -7,7 +7,4 @@ - name: PKGNG | Install packages pkgng: - name: "{{ item }}" - with_items: - - curl - - nginx + name: ['curl', 'nginx'] diff --git a/tests/test.yml b/tests/test.yml index 1295b25..c73923b 100644 --- a/tests/test.yml +++ b/tests/test.yml @@ -48,12 +48,44 @@ dest: "{{ __nginx_conf | dirname }}/fastcgi.conf" notify: reload nginx + - name: SERVICE | Ensure nginx is started + service: + name: nginx + state: started + when: ansible_virtualization_type != 'docker' + + - block: + + - name: COMMAND | Docker nginx status + command: service nginx status + args: + warn: false + changed_when: false + failed_when: false + register: ngs + + - name: COMMAND | Docker start nginx + command: service nginx start + args: + warn: false + when: ngs.stdout.find('nginx is not running') != -1 + + when: ansible_virtualization_type == 'docker' + handlers: - name: reload nginx service: name: nginx state: reloaded + notify: docker reload nginx + + - name: docker reload nginx + command: service nginx reload + args: + warn: false + notify: docker reload nginx + when: ansible_virtualization_type == 'docker' roles: - ../../