90 lines
		
	
	
		
			2.5 KiB
		
	
	
	
		
			Puppet
		
	
	
			
		
		
	
	
			90 lines
		
	
	
		
			2.5 KiB
		
	
	
	
		
			Puppet
		
	
	
| if $hhvm_values == undef { $hhvm_values = hiera_hash('hhvm', false) }
 | |
| if $apache_values == undef { $apache_values = hiera_hash('apache', false) }
 | |
| if $nginx_values == undef { $nginx_values = hiera_hash('nginx', false) }
 | |
| 
 | |
| include puphpet::params
 | |
| include puphpet::supervisord
 | |
| 
 | |
| if hash_key_equals($hhvm_values, 'install', 1) {
 | |
|   if hash_key_equals($apache_values, 'install', 1) {
 | |
|     $hhvm_webserver         = 'httpd'
 | |
|     $hhvm_webserver_restart = true
 | |
|   } elsif hash_key_equals($nginx_values, 'install', 1) {
 | |
|     $hhvm_webserver         = 'nginx'
 | |
|     $hhvm_webserver_restart = true
 | |
|   } else {
 | |
|     $hhvm_webserver         = undef
 | |
|     $hhvm_webserver_restart = true
 | |
|   }
 | |
| 
 | |
|   class { 'puphpet::hhvm':
 | |
|     nightly   => $hhvm_values['nightly'],
 | |
|     webserver => $hhvm_webserver
 | |
|   }
 | |
| 
 | |
|   if ! defined(User['hhvm']) {
 | |
|     user { 'hhvm':
 | |
|       home       => '/home/hhvm',
 | |
|       groups     => 'www-data',
 | |
|       ensure     => present,
 | |
|       managehome => true,
 | |
|       require    => Group['www-data']
 | |
|     }
 | |
|   }
 | |
| 
 | |
|   $supervisord_hhvm_cmd = "hhvm --mode server -vServer.Type=fastcgi -vServer.Port=${hhvm_values['settings']['port']}"
 | |
| 
 | |
|   supervisord::program { 'hhvm':
 | |
|     command     => $supervisord_hhvm_cmd,
 | |
|     priority    => '100',
 | |
|     user        => 'hhvm',
 | |
|     autostart   => true,
 | |
|     autorestart => 'true',
 | |
|     environment => { 'PATH' => '/bin:/sbin:/usr/bin:/usr/sbin' },
 | |
|     require     => [
 | |
|       User['hhvm'],
 | |
|       Package['hhvm']
 | |
|     ]
 | |
|   }
 | |
| 
 | |
|   file { '/usr/bin/php':
 | |
|     ensure  => 'link',
 | |
|     target  => '/usr/bin/hhvm',
 | |
|     require => Package['hhvm']
 | |
|   }
 | |
| 
 | |
|   if count($hhvm_values['ini']) > 0 {
 | |
|     $hhvm_inis = merge({
 | |
|       'date.timezone' => $hhvm_values['timezone'],
 | |
|     }, $hhvm_values['ini'])
 | |
| 
 | |
|     $hhvm_ini = '/etc/hhvm/php.ini'
 | |
| 
 | |
|     each( $hhvm_inis ) |$key, $value| {
 | |
|       exec { "hhvm-php.ini@${key}/${value}":
 | |
|         command => "perl -p -i -e 's#${key} = .*#${key} = ${value}#gi' ${hhvm_ini}",
 | |
|         onlyif  => "test -f ${hhvm_ini}",
 | |
|         unless  => "grep -x '${key} = ${value}' ${hhvm_ini}",
 | |
|         path    => [ '/bin/', '/sbin/', '/usr/bin/', '/usr/sbin/' ],
 | |
|         require => Package['hhvm'],
 | |
|         notify  => Supervisord::Supervisorctl['restart_hhvm'],
 | |
|       }
 | |
|     }
 | |
| 
 | |
|     supervisord::supervisorctl { 'restart_hhvm':
 | |
|       command     => 'restart',
 | |
|       process     => 'hhvm',
 | |
|       refreshonly => true,
 | |
|     }
 | |
|   }
 | |
| 
 | |
|   if hash_key_equals($hhvm_values, 'composer', 1)
 | |
|     and ! defined(Class['puphpet::php::composer'])
 | |
|   {
 | |
|     class { 'puphpet::php::composer':
 | |
|       php_package   => 'hhvm',
 | |
|       composer_home => $hhvm_values['composer_home'],
 | |
|     }
 | |
|   }
 | |
| }
 |