]> gitweb.fluxo.info Git - puppet-php.git/commitdiff
Refactor and add php-fpm support
authorSilvio Rhatto <rhatto@riseup.net>
Thu, 12 Apr 2018 15:29:24 +0000 (12:29 -0300)
committerSilvio Rhatto <rhatto@riseup.net>
Thu, 12 Apr 2018 15:29:24 +0000 (12:29 -0300)
12 files changed:
manifests/dpa.pp [new file with mode: 0644]
manifests/fpm.pp [new file with mode: 0644]
manifests/fpm/pool.pp [new file with mode: 0644]
manifests/init.pp
manifests/ppa.pp [new file with mode: 0644]
manifests/resources.pp
manifests/series5.pp
manifests/series5/packages.pp [moved from manifests/series5/packages/dpa.pp with 63% similarity]
manifests/series5/packages/default.pp [deleted file]
manifests/series5/packages/ppa.pp [deleted file]
manifests/series7.pp
manifests/series7/packages.pp [new file with mode: 0644]

diff --git a/manifests/dpa.pp b/manifests/dpa.pp
new file mode 100644 (file)
index 0000000..8292d61
--- /dev/null
@@ -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 (file)
index 0000000..25b1ee5
--- /dev/null
@@ -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 (file)
index 0000000..75560db
--- /dev/null
@@ -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"],
+  }
+}
index 3c699fcd7926a96cc9a19a61a1855f423f9e4aec..4714e44a8aed0588871619956ae82067b480a771 100644 (file)
 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 (file)
index 0000000..d78492a
--- /dev/null
@@ -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,
+  }
+}
index 88e173c54af86e13e42baf9abf7f935e6fdd4f1c..fee86134c2f580c45aa67843bea872d8dc3a9476 100644 (file)
@@ -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)
 }
index 50ab6f465a21cac72b88befe1fd5b5de14dff439..f05efb224a9f8cf2cc65fafc464253b4b0406619 100644 (file)
@@ -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
 
similarity index 63%
rename from manifests/series5/packages/dpa.pp
rename to manifests/series5/packages.pp
index 297c4a280dedf18fd7eebe0e131f4e411950f85c..2d7e196586db4bcdea9d482b19b9ebf9b1a8a816 100644 (file)
@@ -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 (file)
index 7dd51af..0000000
+++ /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 (file)
index e420822..0000000
+++ /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'],
-  }
-}
index 97fddd294308ee33c6e55b947e7c487bf3b11375..64125f3edb0e7d0dcb8c9f15c1bb3822de2458e8 100644 (file)
@@ -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 (file)
index 0000000..1e949b8
--- /dev/null
@@ -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,
+  }
+}