# PHP build and rpm packaging server
# Used for adding (compiling) extensions for PHP (ie: mysql native driver)
#
# Copy the php-5.3.28.tar.gz source to /BUILDS and extract
# Copy php_config_script to /BUILDS/php-5.3.28 and run to set compilation options
# Run /BUILDS/make_install_pkg.sh
# -- End result should be an rpm in /BUILDS
#
# 03/11/14 mfeenstra
node /mybuildserver0[1|2].yourdomain.net/ {
class { "yum":
enable_base_6_4 => '1',
enable_updates_6_4 => '1',
epel => 'yes',
sernet_samba => 'yes'
}
class { "sudoers":
sudoer => {
"%ops" => [ "ALL=(ALL) ALL" ],
"%secteam" => [ "ALL=(ALL) ALL" ],
"%releng" => [ "ALL=(ALL) ALL" ],
"%dev" => [ "ALL=(ALL) ALL" ],
"%qa" => [ "ALL=(ALL) ALL" ],
"%qa-unix" => [ "ALL=(ALL) ALL" ],
}
}
class { "base": }
class { "sites": }
class { "motd": description => 'PHP build and rpm packaging server' }
class { "ssh":
pamsshd => {
"dev" => [ "account sufficient pam_succeed_if.so user ingroup" ],
"releng" => [ "account sufficient pam_succeed_if.so user ingroup" ],
"qa" => [ "account sufficient pam_succeed_if.so user ingroup" ],
"qa-unix" => [ "account sufficient pam_succeed_if.so user ingroup" ],
}
}
package { "gcc":
ensure => present
}
package { "httpd":
ensure => present
}
package { "httpd-devel":
ensure => present
}
package { "httpd-tools":
ensure => present
}
package { "libxml2-devel":
ensure => present
}
package { "openssl-devel":
ensure => '1.0.0-27.el6_4.2'
}
package { "bzip2-devel":
ensure => present
}
package { "libcurl-devel":
ensure => present
}
package { "gmp-devel":
ensure => present
}
package { "unixODBC":
ensure => present
}
package { "freetds":
ensure => present
}
file { '/usr/lib/libsybdb.so.5':
ensure => 'link',
target => '/usr/lib64/libsybdb.so.5',
require => Package["freetds"]
}
file { '/usr/lib/libsybdb.so.5.0.0':
ensure => 'link',
target => '/usr/lib64/libsybdb.so.5.0.0',
require => Package["freetds"]
}
package { "freetds-devel":
ensure => present,
require => Package["freetds"]
}
file { '/usr/lib/libsybdb.so':
ensure => 'link',
target => '/usr/lib64/libsybdb.so',
require => Package["freetds-devel"]
}
package { "readline":
ensure => present
}
package { "readline-devel":
ensure => present
}
package { "pcre":
ensure => present
}
package { "pcre-devel":
ensure => present
}
# FPM is a super awesome and easy RPM packaging tool written in Ruby
package { "ruby":
ensure => present
}
package { "ruby-devel":
ensure => present,
require => Package["ruby"]
}
package { "ruby-irb":
ensure => present,
require => Package["ruby"]
}
package { "ruby-libs":
ensure => present,
require => Package["ruby"]
}
package {"ruby-rdoc":
ensure => present,
require => Package["ruby"]
}
package {"rubygems":
ensure => present,
require => Package["ruby"]
}
package { "rpm-build":
ensure => present
}
# ruby gem FPM for creating RPM packages
package { "fpm":
ensure => 'installed',
provider => 'gem',
require => Package["rubygems"]
}
# build scripts
file { "/BUILDS":
ensure => "directory"
}
file { "/BUILDS/make_install_pkg.sh":
ensure => present,
owner => root,
group => root,
mode => '0755',
source => 'puppet:///files/phpbuild/make_install_pkg.sh',
path => '/BUILDS/make_install_pkg.sh',
require => File["/BUILDS"]
}
file { "/BUILDS/php_config_script":
ensure => present,
owner => root,
group => root,
mode => '0755',
source => 'puppet:///files/phpbuild/php_config_script',
path => '/BUILDS/php_config_script',
require => File["/BUILDS"]
}
}