diff --git a/README.md b/README.md index fc1ffb7..ca6ccfd 100644 --- a/README.md +++ b/README.md @@ -223,3 +223,31 @@ uwsgi::app: module: 'mysite.wsgi:application' socket: '/tmp/uwsgi_django2.sock' ``` + +Example using hiera to use Debian Jessie APT packages & default file locations + +```yaml +--- +classes: + - uwsgi +uwsgi::package_name: + - 'uwsgi-emperor' + - 'uwsgi-plugins-all' +uwsgi::package_provider: 'apt' +uwsgi::service_name: 'uwsgi-emperor' +uwsgi::service_provider: 'debian' +uwsgi::manage_service_file: false +uwsgi::config_file: '/etc/uwsgi-emperor/emperor.ini' +uwsgi::log_dir: '/var/log/uwsgi/emperor.log' +uwsgi::app_directory: '/etc/uwsgi-emperor/vassals' +uwsgi::install_pip: false +uwsgi::install_python_dev: false +uwsgi::socket: undef +uwsgi::pidfile: '/run/uwsgi-emperor.pid' +uwsgi::emperor_options: + uid: 'www-data' + gid: 'www-data' + workers: '2' + no-orphans: 'true' +``` + diff --git a/manifests/app.pp b/manifests/app.pp index 4c5e133..af98c73 100644 --- a/manifests/app.pp +++ b/manifests/app.pp @@ -44,7 +44,6 @@ group => $gid, mode => '0644', content => template($template), - require => Package[$::uwsgi::package_name], - notify => Service[$::uwsgi::service_name] + require => Package[$::uwsgi::package_name] } } diff --git a/manifests/init.pp b/manifests/init.pp index 0c14b18..8f92b81 100644 --- a/manifests/init.pp +++ b/manifests/init.pp @@ -98,6 +98,8 @@ $install_python_dev = $uwsgi::params::install_python_dev, $python_pip = $uwsgi::params::python_pip, $python_dev = $uwsgi::params::python_dev, + $pidfile = $uwsgi::params::pidfile, + $socket = $uwsgi::params::socket, $emperor_options = undef ) inherits uwsgi::params { @@ -136,44 +138,49 @@ require => Package[$package_name] } - if $service_file == undef { - $service_file_real = $service_provider ? { - redhat => '/etc/init.d/uwsgi', - upstart => '/etc/init/uwsgi.conf', - default => '/etc/init/uwsgi.conf', - } - } else { - $service_file_real = $service_file - } + if $manage_service_file == true { + if $service_file == undef { + $service_file_real = $service_provider ? { + redhat => '/etc/init.d/uwsgi', + upstart => '/etc/init/uwsgi.conf', + default => '/etc/init/uwsgi.conf', + } + } else { + $service_file_real = $service_file + } - if $service_file_mode == undef { - $service_file_mode_real = $service_provider ? { - redhat => '0555', - upstart => '0644', - default => '0644', - } - } else { - $service_file_mode_real = $service_file_mode - } + if $service_file_mode == undef { + $service_file_mode_real = $service_provider ? { + redhat => '0555', + upstart => '0644', + default => '0644', + } + } else { + $service_file_mode_real = $service_file_mode + } - if $service_template == undef { - $service_template_real = $service_provider ? { - redhat => 'uwsgi/uwsgi_service-redhat.erb', - upstart => 'uwsgi/uwsgi_upstart.conf.erb', - default => 'uwsgi/uwsgi_upstart.conf.erb', - } - } else { - $service_template_real = $service_template - } + if $service_template == undef { + $service_template_real = $service_provider ? { + redhat => 'uwsgi/uwsgi_service-redhat.erb', + upstart => 'uwsgi/uwsgi_upstart.conf.erb', + default => 'uwsgi/uwsgi_upstart.conf.erb', + } + } else { + $service_template_real = $service_template + } - file { $service_file_real: - ensure => $file_ensure, - owner => 'root', - group => 'root', - mode => $service_file_mode_real, - replace => $manage_service_file, - content => template($service_template_real), - require => Package[$package_name] + file { $service_file_real: + ensure => $file_ensure, + owner => 'root', + group => 'root', + mode => $service_file_mode_real, + replace => $manage_service_file, + content => template($service_template_real), + require => Package[$package_name] + } + $required_files = [ $config_file, $service_file_real ] + } else { + $required_files = $config_file } file { $app_directory: @@ -192,13 +199,9 @@ provider => $service_provider, require => [ Package[$package_name], - File[$config_file], - File[$service_file_real] + File[$required_files] ], - subscribe => [ - File[$config_file], - File[$service_file_real] - ] + subscribe => File[$required_files] } # finally, configure any applications necessary diff --git a/templates/uwsgi.ini.erb b/templates/uwsgi.ini.erb index 15572b2..c78d1b3 100644 --- a/templates/uwsgi.ini.erb +++ b/templates/uwsgi.ini.erb @@ -4,14 +4,18 @@ # uWSGI main process configuration # [uwsgi] +<% if @socket -%> socket = <%= @socket %> +<% end -%> pidfile = <%= @pidfile %> emperor = <%= @app_directory %> emperor-tyrant = true master = true autoload = true log-date = true +<% if @log_file -%> logto = <%= @log_file %> +<% end -%> <% if @emperor_options @emperor_options.sort.each do |key, value|