diff --git a/php/ng/hhvm/config.sls b/php/ng/hhvm/config.sls new file mode 100644 index 0000000..095bb5c --- /dev/null +++ b/php/ng/hhvm/config.sls @@ -0,0 +1,16 @@ +# Manages the php-hhvm main ini file +{% from "php/ng/map.jinja" import php with context %} +{% from "php/ng/ini.jinja" import php_ini %} + +{% set ini_settings = php.ini.defaults %} +{% do ini_settings.update(php.hhvm.config.ini.settings) %} + +{% set conf_settings = php.lookup.hhvm.defaults %} +{% do conf_settings.update(php.hhvm.config.conf.settings) %} + +php_hhvm_ini_config: + {{ php_ini(php.lookup.hhvm.ini, php.hhvm.config.ini.opts, ini_settings) }} + +php_hhvm_conf_config: + {{ php_ini(php.lookup.hhvm.conf, php.hhvm.config.conf.opts, conf_settings) }} + diff --git a/php/ng/hhvm/init.sls b/php/ng/hhvm/init.sls new file mode 100644 index 0000000..deea0f9 --- /dev/null +++ b/php/ng/hhvm/init.sls @@ -0,0 +1,23 @@ +# Meta-state to fully install php.hhvm + +include: + - php.ng.hhvm.repo + - php.ng.hhvm.config + - php.ng.hhvm.service + +extend: + php_hhvm_service: + service: + - watch: + - file: php_hhvm_ini_cnfig + - file: php_hhvm_conf_config + - require: + - sls: php.ng.hhvm.config + php_hhvm_ini_config: + file: + - require: + - pkg: php_install_hhvm + php_hhvm_conf_config: + file: + - require: + - pkg: php_install_hhvm diff --git a/php/ng/hhvm/install.sls b/php/ng/hhvm/install.sls new file mode 100644 index 0000000..1c1b277 --- /dev/null +++ b/php/ng/hhvm/install.sls @@ -0,0 +1,2 @@ +{% set state = 'hhvm' %} +{% include "php/ng/installed.jinja" %} diff --git a/php/ng/hhvm/repo.sls b/php/ng/hhvm/repo.sls new file mode 100644 index 0000000..fa790a0 --- /dev/null +++ b/php/ng/hhvm/repo.sls @@ -0,0 +1,19 @@ +# Manages the php-hhvm service. +{% from "php/ng/map.jinja" import php with context %} + +include: + - php.ng.hhvm.install + + +{% if salt['grains.get']('os_family') == 'Debian' -%} + +hhvm_repo: + pkgrepo.managed: + - name: deb http://dl.hhvm.com/{{ salt['grains.get']('os')|lower }} {{ salt['grains.get']('oscodename')}} main + - file: /etc/apt/sources.list.d/hhvm.list + - keyid: 0x5a16e7281be7a449 + - keyserver: keyserver.ubuntu.com + - refresh_db: True + - require_in: + - pkg: php_install_hhvm +{%- endif %} diff --git a/php/ng/hhvm/service.sls b/php/ng/hhvm/service.sls new file mode 100644 index 0000000..d7bcce9 --- /dev/null +++ b/php/ng/hhvm/service.sls @@ -0,0 +1,19 @@ +# Manages the php-hhvm service. +{% from "php/ng/map.jinja" import php with context %} +{% from "php/ng/macro.jinja" import sls_block %} + +{% set service_function = {True:'running', False:'dead'}.get(php.hhvm.service.enabled) %} + +include: + - php.ng.hhvm.install + +php_hhvm_service: + service.{{ service_function }}: + {{ sls_block(php.hhvm.service.opts) }} + - name: {{ php.lookup.hhvm.service }} + - enable: {{ php.hhvm.service.enabled }} + - require: + - sls: php.ng.hhvm.install + - watch: + - pkg: php_install_hhvm + diff --git a/php/ng/map.jinja b/php/ng/map.jinja index b540bc8..6e30cca 100644 --- a/php/ng/map.jinja +++ b/php/ng/map.jinja @@ -11,6 +11,7 @@ 'apache2': 'libapache2-mod-php5', 'curl': 'php5-curl', 'fpm': 'php5-fpm', + 'hhvm': 'hhvm', 'gd': 'php5-gd', 'gmp': 'php5-gmp', 'geoip': 'php5-geoip', @@ -50,6 +51,17 @@ ('include', '/etc/php5/fpm/pool.d/*.conf'), ]), }, + 'hhvm': { + 'conf': '/etc/hhvm/server.ini', + 'ini': '/etc/hhvm/php.ini', + 'service': 'hhvm', + 'defaults': odict([ + ('global', odict([ + ('pid', '/var/run/hhvm.pid'), + ('error_log', '/var/log/hhvm.log'), + ])), + ]), + }, 'cli': { 'ini': '/etc/php5/cli/php.ini', }, @@ -198,6 +210,22 @@ }, 'pools': {}, }, + 'hhvm': { + 'service': { + 'enabled': True, + 'opts': {}, + }, + 'config': { + 'ini': { + 'opts': {}, + 'settings': {}, + }, + 'conf': { + 'opts': {}, + 'settings': {}, + }, + }, + }, 'cli': { 'ini': { 'opts': {},