aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorSilvio Rhatto <rhatto@riseup.net>2018-04-12 12:29:24 -0300
committerSilvio Rhatto <rhatto@riseup.net>2018-04-12 12:29:24 -0300
commit19a3a2cda8682e8b00f8c8962461cd8b4fef10d5 (patch)
treec018047e563e9b39018597186fc316cb2a97fb3e
parent43017883c2d5533b083bfc0386f3fc064e80a65d (diff)
downloadpuppet-php-19a3a2cda8682e8b00f8c8962461cd8b4fef10d5.tar.gz
puppet-php-19a3a2cda8682e8b00f8c8962461cd8b4fef10d5.tar.bz2
Refactor and add php-fpm support
-rw-r--r--manifests/dpa.pp25
-rw-r--r--manifests/fpm.pp29
-rw-r--r--manifests/fpm/pool.pp22
-rw-r--r--manifests/init.pp10
-rw-r--r--manifests/ppa.pp37
-rw-r--r--manifests/resources.pp4
-rw-r--r--manifests/series5.pp22
-rw-r--r--manifests/series5/packages.pp (renamed from manifests/series5/packages/dpa.pp)26
-rw-r--r--manifests/series5/packages/default.pp16
-rw-r--r--manifests/series5/packages/ppa.pp84
-rw-r--r--manifests/series7.pp36
-rw-r--r--manifests/series7/packages.pp12
12 files changed, 173 insertions, 150 deletions
diff --git a/manifests/dpa.pp b/manifests/dpa.pp
new file mode 100644
index 0000000..8292d61
--- /dev/null
+++ b/manifests/dpa.pp
@@ -0,0 +1,25 @@
+class php::dpa {
+ file { '/etc/apt/trusted.gpg.d/deb.sury.org-php.gpg':
+ ensure => present,
+ owner => "root",
+ group => "root",
+ mode => "0644",
+ source => 'puppet:///modules/php/deb.sury.org.gpg',
+ }
+
+ file { '/etc/apt/sources.list.d/php.list':
+ ensure => present,
+ owner => "root",
+ group => "root",
+ mode => "0644",
+ content => "deb https://packages.sury.org/php/ ${::lsbdistcodename} main\n",
+ require => File['/etc/apt/trusted.gpg.d/deb.sury.org-php.gpg'],
+ notify => Exec['php-apt-auto-update'],
+ }
+
+ exec { 'php-apt-auto-update':
+ command => "/usr/bin/apt-get update",
+ user => "root",
+ refreshonly => true,
+ }
+}
diff --git a/manifests/fpm.pp b/manifests/fpm.pp
new file mode 100644
index 0000000..25b1ee5
--- /dev/null
+++ b/manifests/fpm.pp
@@ -0,0 +1,29 @@
+class php::fpm(
+ $ensure = 'present',
+) {
+ $series = $::php::series
+
+ if $series == '5' {
+ $version = $::php::series5::version
+ }
+ else {
+ $version = $::php::series7::version
+ }
+
+ package { 'php-fpm':
+ ensure => $ensure,
+ }
+
+ service { "php${version}-fpm":
+ ensure => $ensure ? {
+ 'present' => running,
+ default => stopped,
+ },
+ require => Package['php-fpm'],
+ }
+
+ apache::module { [ "proxy_fcgi", "setenvif" ]:
+ ensure => $ensure,
+ require => Package["apache"],
+ }
+}
diff --git a/manifests/fpm/pool.pp b/manifests/fpm/pool.pp
new file mode 100644
index 0000000..75560db
--- /dev/null
+++ b/manifests/fpm/pool.pp
@@ -0,0 +1,22 @@
+define php::fpm::pool(
+ $source,
+ $ensure = 'present',
+) {
+ $series = $::php::series
+
+ if $series == '5' {
+ $version = $::php::series5::version
+ $folder = $::php::series5::folder
+ }
+ else {
+ $version = $::php::series7::version
+ $folder = $::php::series7::folder
+ }
+
+ file { "/etc/php/${version}/fpm/pool.d/${name}":
+ ensure => $ensure,
+ source => $source,
+ require => Package['php-fpm'],
+ notify => Service["php-${version}-fpm"],
+ }
+}
diff --git a/manifests/init.pp b/manifests/init.pp
index 3c699fc..4714e44 100644
--- a/manifests/init.pp
+++ b/manifests/init.pp
@@ -19,8 +19,18 @@
class php(
$series = '5',
$hardened = true,
+ $apc = absent,
+ $fpm = absent,
){
class { "php::series${series}":
hardened => $hardened,
}
+
+ package { [ 'php-apcu', 'php-apcu-bc' ]:
+ ensure => $apc,
+ }
+
+ class php::fpm {
+ ensure => $fpm,
+ }
}
diff --git a/manifests/ppa.pp b/manifests/ppa.pp
new file mode 100644
index 0000000..d78492a
--- /dev/null
+++ b/manifests/ppa.pp
@@ -0,0 +1,37 @@
+class php::ppa {
+ #package { 'python-software-properties':
+ # ensure => present,
+ #}
+
+ # This required alternative checking of repository key!
+ #exec { 'add-apt-repository-ondrej-php':
+ # command => '/usr/bin/add-apt-repository -y ppa:ondrej/php && apt-get update',
+ # user => 'root',
+ # creates => '/etc/apt/sources.list.d/ondrej-ubuntu-php-xenial.list',
+ # require => Package['python-software-properties'],
+ #}
+
+ file { '/etc/apt/trusted.gpg.d/ondrej_ubuntu_php.gpg':
+ ensure => present,
+ owner => "root",
+ group => "root",
+ mode => "0644",
+ source => 'puppet:///modules/php/ondrej_ubuntu_php.gpg',
+ }
+
+ file { '/etc/apt/sources.list.d/php.list':
+ ensure => present,
+ owner => "root",
+ group => "root",
+ mode => "0644",
+ content => "deb http://ppa.launchpad.net/ondrej/php/ubuntu ${::lsbdistcodename} main\n",
+ require => File['/etc/apt/trusted.gpg.d/ondrej_ubuntu_php.gpg'],
+ notify => Exec['php-apt-auto-update'],
+ }
+
+ exec { 'php-apt-auto-update':
+ command => "/usr/bin/apt-get update",
+ user => "root",
+ refreshonly => true,
+ }
+}
diff --git a/manifests/resources.pp b/manifests/resources.pp
index 88e173c..fee8613 100644
--- a/manifests/resources.pp
+++ b/manifests/resources.pp
@@ -1,6 +1,8 @@
class php::resources {
$configs = hiera('php::config', {})
+ $pools = hiera('php::pool', {})
# Apply instances
- create_resources('php::config', $configs)
+ create_resources('php::config', $configs)
+ create_resources('php::fpm::pool', $pools)
}
diff --git a/manifests/series5.pp b/manifests/series5.pp
index 50ab6f4..f05efb2 100644
--- a/manifests/series5.pp
+++ b/manifests/series5.pp
@@ -1,19 +1,24 @@
-class php::series5($hardened = true) {
+class php::series5(
+ $hardened = true
+) {
case $::lsbdistcodename {
'xenial': {
- include php::series5::packages::ppa
+ include php::ppa
}
'stretch': {
- include php::series5::packages::dpa
- }
- default: {
- include php::series5::packages::default
+ include php::dpa
}
}
+ $version = $::lsbdistcodename ? {
+ 'xenial' => '5.6',
+ 'stretch' => '5.6',
+ default => '5',
+ }
+
$folder = $::lsbdistcodename ? {
- 'xenial' => '/etc/php/5.6',
- 'stretch' => '/etc/php/5.6',
+ 'xenial' => "/etc/php/${version}",
+ 'stretch' => "/etc/php/${version}",
default => '/etc/php5',
}
@@ -52,6 +57,7 @@ class php::series5($hardened = true) {
# require => [ Package['php5'], File["${folder}/apache2"] ],
#}
+ include php::series5::packages
include php::resources
include php::series5::defaults
diff --git a/manifests/series5/packages/dpa.pp b/manifests/series5/packages.pp
index 297c4a2..2d7e196 100644
--- a/manifests/series5/packages/dpa.pp
+++ b/manifests/series5/packages.pp
@@ -1,28 +1,4 @@
-class php::series5::packages::dpa {
- file { '/etc/apt/trusted.gpg.d/deb.sury.org-php.gpg':
- ensure => present,
- owner => "root",
- group => "root",
- mode => "0644",
- source => 'puppet:///modules/php/deb.sury.org.gpg',
- }
-
- file { '/etc/apt/sources.list.d/php.list':
- ensure => present,
- owner => "root",
- group => "root",
- mode => "0644",
- content => "deb https://packages.sury.org/php/ ${::lsbdistcodename} main\n",
- require => File['/etc/apt/trusted.gpg.d/deb.sury.org-php.gpg'],
- notify => Exec['php-apt-auto-update'],
- }
-
- exec { 'php-apt-auto-update':
- command => "/usr/bin/apt-get update",
- user => "root",
- refreshonly => true,
- }
-
+class php::series5::packages {
# The needed packages: we could also try libapache2-mod-php5.6filter
package { 'php5':
name => 'php5.6',
diff --git a/manifests/series5/packages/default.pp b/manifests/series5/packages/default.pp
deleted file mode 100644
index 7dd51af..0000000
--- a/manifests/series5/packages/default.pp
+++ /dev/null
@@ -1,16 +0,0 @@
-class php::series5::packages::default {
- # The needed packages: we could also try libapache2-mod-php5filter
- package { [ 'php5', 'php5-mysql', 'php5-sqlite', 'php5-cli', 'php5-curl', 'php5-gmp', 'libapache2-mod-php5' ]:
- ensure => installed,
- }
-
- # Optional packages
- package { [ "php5-gd", "php5-imagick" ]:
- ensure => installed,
- }
-
- # Not available anymore
- package { 'php5-suhosin':
- ensure => absent,
- }
-}
diff --git a/manifests/series5/packages/ppa.pp b/manifests/series5/packages/ppa.pp
deleted file mode 100644
index e420822..0000000
--- a/manifests/series5/packages/ppa.pp
+++ /dev/null
@@ -1,84 +0,0 @@
-class php::series5::packages::ppa {
- #package { 'python-software-properties':
- # ensure => present,
- #}
-
- # This required alternative checking of repository key!
- #exec { 'add-apt-repository-ondrej-php':
- # command => '/usr/bin/add-apt-repository -y ppa:ondrej/php && apt-get update',
- # user => 'root',
- # creates => '/etc/apt/sources.list.d/ondrej-ubuntu-php-xenial.list',
- # require => Package['python-software-properties'],
- #}
-
- file { '/etc/apt/trusted.gpg.d/ondrej_ubuntu_php.gpg':
- ensure => present,
- owner => "root",
- group => "root",
- mode => "0644",
- source => 'puppet:///modules/php/ondrej_ubuntu_php.gpg',
- }
-
- file { '/etc/apt/sources.list.d/php.list':
- ensure => present,
- owner => "root",
- group => "root",
- mode => "0644",
- content => "deb http://ppa.launchpad.net/ondrej/php/ubuntu ${::lsbdistcodename} main\n",
- require => File['/etc/apt/trusted.gpg.d/ondrej_ubuntu_php.gpg'],
- notify => Exec['php-apt-auto-update'],
- }
-
- exec { 'php-apt-auto-update':
- command => "/usr/bin/apt-get update",
- user => "root",
- refreshonly => true,
- }
-
- # The needed packages: we could also try libapache2-mod-php5.6filter
- package { 'php5':
- name => 'php5.6',
- #require => Exec['add-apt-repository-ondrej-php'],
- }
-
- package { 'php5-cli':
- name => 'php5.6-cli',
- #require => Exec['add-apt-repository-ondrej-php'],
- }
-
- package { [ 'php5.6-mysql', 'php5.6-sqlite3', 'php5.6-curl', 'php5.6-gmp', 'libapache2-mod-php5.6' ]:
- ensure => installed,
- #require => Exec['add-apt-repository-ondrej-php'],
- }
-
- # Optional packages
- package { [ "php5.6-gd", "php-imagick", "php5.6-xml", "php5.6-mbstring" ]:
- ensure => installed,
- #require => Exec['add-apt-repository-ondrej-php'],
- }
-
- # Not available anymore
- package { 'php5.6-suhosin':
- ensure => absent,
- #require => Exec['add-apt-repository-ondrej-php'],
- }
-
- # The old module
- apache::module { 'php5':
- ensure => absent,
- }
-
- # The needed apache modules
- apache::module { 'php5.6':
- ensure => present,
- require => [ Package['libapache2-mod-php5.6'], Apache::Module['php5'] ],
- }
-
- # Default alternative
- file { "/etc/alternatives/php":
- ensure => "/usr/bin/php5.6",
- owner => root,
- group => root,
- require => Package['php5'],
- }
-}
diff --git a/manifests/series7.pp b/manifests/series7.pp
index 97fddd2..64125f3 100644
--- a/manifests/series7.pp
+++ b/manifests/series7.pp
@@ -1,19 +1,30 @@
-class php::series7($hardened = true) {
- $folder = '/etc/php/7.0'
-
- package { [ 'php', 'php-mysql', 'php-sqlite3', 'php-cli', 'php-curl', 'php-gmp', 'libapache2-mod-php7.0' ]:
- ensure => installed,
+class php::series7(
+ $hardened = true
+) {
+ case $::lsbdistcodename {
+ 'xenial': {
+ include php::ppa
+ }
+ 'stretch': {
+ include php::dpa
+ }
}
- # Optional packages
- package { [ "php-gd", "php-imagick" ]:
- ensure => installed,
+ $version = '7.2'
+ $folder = "/etc/php/${version}"
+
+ include php::packages
+ include php::resources
+ include php::series7::defaults
+
+ if $hardened == true {
+ include php::series7::hardened
}
# The needed apache modules
#apache::module { 'php':
# ensure => present,
- # require => Package['libapache2-mod-php7.0'],
+ # require => Package["libapache2-mod-php${version}"],
#}
file { [ "${folder}", "${folder}/cli", "${folder}/apache2", "${folder}/cli/conf.d", "${folder}/apache2/conf.d" ]:
@@ -23,11 +34,4 @@ class php::series7($hardened = true) {
mode => '0755',
require => Package['php'],
}
-
- include php::resources
- include php::series7::defaults
-
- if $hardened == true {
- include php::series7::hardened
- }
}
diff --git a/manifests/series7/packages.pp b/manifests/series7/packages.pp
new file mode 100644
index 0000000..1e949b8
--- /dev/null
+++ b/manifests/series7/packages.pp
@@ -0,0 +1,12 @@
+class php::series7::packages {
+ $version = $::php::series7::version
+
+ package { [ 'php', 'php-mysql', 'php-sqlite3', 'php-cli', 'php-curl', 'php-gmp', "libapache2-mod-php${version}" ]:
+ ensure => installed,
+ }
+
+ # Optional packages
+ package { [ "php-gd", "php-imagick" ]:
+ ensure => installed,
+ }
+}