Compare commits

..

1 commit

Author SHA1 Message Date
8efd90b379 first version 2018-08-12 09:04:49 +02:00
15 changed files with 56 additions and 110 deletions

View file

@ -1,4 +1,3 @@
---
driver: driver:
name: docker_cli name: docker_cli
@ -9,15 +8,16 @@ provisioner:
name: ansible_playbook name: ansible_playbook
hosts: localhost hosts: localhost
require_ansible_repo: false require_ansible_repo: false
require_ansible_omnibus: false require_ansible_omnibus: true
require_chef_for_busser: true require_chef_for_busser: true
ansible_verbose: false ansible_verbose: false
ansible_version: <% if ENV['ANSIBLE_VERSION'] %><%= ENV['ANSIBLE_VERSION'] %><% else %><%= '2.4.6.0' %><% end %>
ansible_inventory: ./test/integration/inventory ansible_inventory: ./test/integration/inventory
platforms: platforms:
- name: debian-9 - name: debian-9
driver_config: driver_config:
image: "nishiki/debian9:ansible-<%= ENV['ANSIBLE_VERSION'] ? ENV['ANSIBLE_VERSION'] : '2.7' %>" image: nishiki/ansible:stretch
command: /bin/systemd command: /bin/systemd
volume: volume:
- /sys/fs/cgroup:/sys/fs/cgroup:ro - /sys/fs/cgroup:/sys/fs/cgroup:ro

View file

@ -1,4 +1,4 @@
---
AllCops: AllCops:
Exclude: Exclude:
- db/**/* - db/**/*

View file

@ -1,28 +1,18 @@
---
sudo: required sudo: required
language: ruby language: ruby
env: env:
- ANSIBLE_VERSION=2.5 - ANSIBLE_VERSION=2.4.6.0
- ANSIBLE_VERSION=2.6 - ANSIBLE_VERSION=2.5.7.0
- ANSIBLE_VERSION=2.7 - ANSIBLE_VERSION=2.6.2.0
services: services:
- docker - docker
before_install: before_install:
- bundle install - bundle install
- sudo pip install --upgrade pip
- sudo pip install yamllint
- sudo pip install ansible-lint
- git clone https://github.com/ansible/galaxy-lint-rules.git
script: script:
- kitchen conv phpfpm-debian-9 - kitchen conv phpfpm-debian-9
- kitchen conv phpfpm-debian-9 | grep changed=0 - kitchen conv phpfpm-debian-9 | grep changed=0
- kitchen verify phpfpm-debian-9 - kitchen verify phpfpm-debian-9
- ansible-lint -r galaxy-lint-rules/rules .
- yamllint .
notifications:
webhooks: https://galaxy.ansible.com/api/v1/notifications/

View file

@ -1,12 +0,0 @@
---
extends: default
ignore: |
.kitchen/*
vendor/
rules:
line-length:
max: 120
level: warning
truthy: false

View file

@ -1,21 +1,4 @@
# CHANGELOG # CHANGELOG
## v1.0.0 (2018-08-11)
This project adheres to [Semantic Versioning](http://semver.org/). * first version
Which is based on [Keep A Changelog](http://keepachangelog.com/)
## [Unreleased]
## v1.2.0 (2018-12-01)
- BREAKING CHANGE: change with_items to loop
- test: add test with ansible 2.7
- test: add ansible-lint
- test: add yamllint
## v1.1.0 (2018-09-30)
- feat: set attributes on homes directories
- feat: remove phpfpm_group var
- style: replace include_tasks to import_tasks
- fix: group permission in pools template
## v1.0.0 (2018-08-15)
- first version

View file

@ -1,5 +1,5 @@
# Ansible role: PHP FPM # Ansible role: PHP FPM
[![Version](https://img.shields.io/badge/latest_version-1.2.0-green.svg)](https://git.yaegashi.fr/nishiki/ansible-role-phpfpm/releases) [![Version](https://img.shields.io/badge/latest_version-1.0.0-dev-green.svg)](https://git.yaegashi.fr/nishiki/ansible-role-phpfpm/releases)
[![Build Status](https://travis-ci.org/nishiki/ansible-role-phpfpm.svg?branch=master)](https://travis-ci.org/nishiki/ansible-role-phpfpm) [![Build Status](https://travis-ci.org/nishiki/ansible-role-phpfpm.svg?branch=master)](https://travis-ci.org/nishiki/ansible-role-phpfpm)
[![License](https://img.shields.io/badge/license-Apache--2.0-blue.svg)](https://git.yaegashi.fr/nishiki/ansible-role-phpfpm/src/branch/master/LICENSE) [![License](https://img.shields.io/badge/license-Apache--2.0-blue.svg)](https://git.yaegashi.fr/nishiki/ansible-role-phpfpm/src/branch/master/LICENSE)
@ -7,7 +7,7 @@ Install and configure PHP FPM
## Requirements ## Requirements
* Ansible >= 2.5 * Ansible >= 2.4
* Debian Stretch * Debian Stretch
## Role variables ## Role variables
@ -33,6 +33,7 @@ Install and configure PHP FPM
See [php pool directives documentation](http://php.net/manual/en/install.fpm.configuration.php) See [php pool directives documentation](http://php.net/manual/en/install.fpm.configuration.php)
* `phpfpm_group` - (default: `www-data`)
* `phpfpm_ping_path` - (default: `/ping`) * `phpfpm_ping_path` - (default: `/ping`)
* `phpfpm_ping_response` - (default: `pong`) * `phpfpm_ping_response` - (default: `pong`)
* `phpfpm_pm` - (default: `ondemand`) * `phpfpm_pm` - (default: `ondemand`)

View file

@ -1,5 +1,5 @@
---
phpfpm_version: 7.0 phpfpm_version: 7.0
phpfpm_group: www-data
phpfpm_dir: /etc/php/{{ phpfpm_version }}/fpm phpfpm_dir: /etc/php/{{ phpfpm_version }}/fpm
phpfpm_dir_log: /var/log/phpfpm phpfpm_dir_log: /var/log/phpfpm
phpfpm_packages: phpfpm_packages:

View file

@ -1,4 +1,3 @@
---
- name: reload php-fpm - name: reload php-fpm
systemd: systemd:
name: 'php{{ phpfpm_version }}-fpm' name: 'php{{ phpfpm_version }}-fpm'

View file

@ -1,20 +0,0 @@
---
galaxy_info:
role_name: phpfpm
author: Adrien Waksberg
company: Adrien Waksberg
description: Install and configure PHP-FPM
license: Apache2
min_ansible_version: 2.5
platforms:
- name: Debian
versions:
- stretch
galaxy_tags:
- php
- fpm
- web
dependencies: []

View file

@ -1,4 +1,3 @@
---
- name: install php-fpm package - name: install php-fpm package
package: package:
name: 'php{{ phpfpm_version }}-fpm' name: 'php{{ phpfpm_version }}-fpm'
@ -6,7 +5,8 @@
- name: install additionnal packages - name: install additionnal packages
package: package:
name: '{{ phpfpm_packages }}' name: '{{ item }}'
with_items: '{{ phpfpm_packages }}'
tags: phpfpm tags: phpfpm
- name: create log directory - name: create log directory

View file

@ -1,9 +1,6 @@
--- - include_tasks: base.yml
- import_tasks: base.yml
tags: phpfpm
- import_tasks: pools.yml - include_tasks: pools.yml
tags: phpfpm
- name: enable and start php-fpm - name: enable and start php-fpm
systemd: systemd:

View file

@ -1,13 +1,38 @@
--- - name: create user for php-fpm with a specify uid
user:
name: '{{ item.user }}'
group: '{{ item.group|default(phpfpm_group) }}'
uid: '{{ item.uid }}'
home: '{{ item.home }}'
with_items: '{{ phpfpm_pools }}'
when: item.uid is defined
tags: phpfpm
- name: create user for php-fpm without a specify uid
user:
name: '{{ item.user }}'
group: '{{ item.group|default(phpfpm_group) }}'
home: '{{ item.home }}'
with_items: '{{ phpfpm_pools }}'
when: not item.uid is defined
tags: phpfpm
- name: set attributes on homes directories
file:
path: '{{ item.home }}'
owner: '{{ item.user }}'
group: www-data
mode: 0750
state: directory
with_items: '{{ phpfpm_pools }}'
tags: phpfpm
- name: check if pools log files exist - name: check if pools log files exist
stat: stat:
path: '{{ phpfpm_dir_log }}/{{ item[0].name }}.{{ item[1] }}' path: '{{ phpfpm_dir_log }}/{{ item[0].name }}.{{ item[1] }}'
loop: '{{ phpfpm_pools|product(log_files)|list }}' with_nested:
vars: - '{{ phpfpm_pools }}'
log_files: - ['slow.log', 'access.log', 'log']
- slow.log
- access.log
- log
register: st register: st
tags: phpfpm tags: phpfpm
@ -18,7 +43,7 @@
group: www-data group: www-data
mode: 0640 mode: 0640
state: touch state: touch
loop: '{{ st.results }}' with_items: '{{ st.results }}'
when: not item.stat.exists when: not item.stat.exists
tags: phpfpm tags: phpfpm

View file

@ -4,11 +4,11 @@
[{{ pool.name }}] [{{ pool.name }}]
user = {{ pool.user }} user = {{ pool.user }}
group = {{ pool.group|default(pool.user) }} group = {{ pool.group|default(phpfpm_group) }}
listen = /var/run/php{{ phpfpm_version }}-fpm-{{ pool.name }}.sock listen = /var/run/php{{ phpfpm_version }}-fpm-{{ pool.name }}.sock
listen.owner = {{ pool.user }} listen.owner = {{ pool.user }}
listen.group = www-data listen.group = {{ pool.group|default(phpfpm_group) }}
pm = {{ pool.pm|default(phpfpm_pm) }} pm = {{ pool.pm|default(phpfpm_pm) }}
pm.max_children = {{ pool.pm_max_children|default(phpfpm_pm_max_children) }} pm.max_children = {{ pool.pm_max_children|default(phpfpm_pm_max_children) }}

View file

@ -1,18 +1,11 @@
---
- hosts: localhost - hosts: localhost
connection: local connection: local
vars: vars:
phpfpm_pools: phpfpm_pools:
- name: website1 - name: www
user: www user: www
- name: website2 home: /opt/www
user: www uid: 1001
pm: static
pm_max_children: 4
pre_tasks:
- user:
name: www
roles: roles:
- ansible-role-phpfpm - ansible-role-phpfpm

View file

@ -40,11 +40,10 @@ describe file('/etc/php/7.0/fpm/pools.conf') do
it { should be_owned_by 'root' } it { should be_owned_by 'root' }
it { should be_grouped_into 'root' } it { should be_grouped_into 'root' }
its(:content) { should match(/pm\s+= ondemand/) } its(:content) { should match(/pm\s+= ondemand/) }
its(:content) { should match(/pm\s+= static/) }
end end
%w[slow.log access.log log].each do |ext| %w[slow.log access.log log].each do |ext|
describe file("/var/log/phpfpm/website1.#{ext}") do describe file("/var/log/phpfpm/www.#{ext}") do
it { should be_file } it { should be_file }
it { should be_mode 640 } it { should be_mode 640 }
it { should be_owned_by 'root' } it { should be_owned_by 'root' }
@ -56,12 +55,3 @@ describe service('php7.0-fpm') do
it { should be_enabled } it { should be_enabled }
it { should be_running.under('systemd') } it { should be_running.under('systemd') }
end end
describe process('php-fpm: pool website1') do
its(:count) { should eq 0 }
end
describe process('php-fpm: pool website2') do
its(:count) { should eq 4 }
end