install_site.pp 1.23 KB
# Define: install_site
#
# Install nginx vhost
# This definition is private, not intended to be called directly
#
define nginx::install_site($content=undef) {
  # first, make sure the site config exists
  case $content {
    undef: {
      file { "/etc/nginx/sites-available/${name}":
        ensure  => present,
        mode    => '0644',
        owner   => 'root',
        group   => 'root',
        alias   => "sites-${name}",
        notify  => Service['nginx'],
        require => Package[$nginx::nginx_packages],
      }
    }
    default: {
      file { "/etc/nginx/sites-available/${name}":
        ensure  => present,
        mode    => '0644',
        owner   => 'root',
        group   => 'root',
        alias   => "sites-$name",
        content => $content,
        require => Package[$nginx::nginx_packages],
        notify  => Service['nginx'],
      }
    }
  }

  # now, enable it.
  exec { "ln -s /etc/nginx/sites-available/${name} /etc/nginx/sites-enabled/${name}":
    unless  => "/bin/sh -c '[ -L /etc/nginx/sites-enabled/${name} ] && \
      [ /etc/nginx/sites-enabled/${name} -ef /etc/nginx/sites-available/${name} ]'",
    path    => ['/usr/bin/', '/bin/'],
    notify  => Service['nginx'],
    require => File["sites-${name}"],
  }
}