2017-06-15 2 views
2

Wir bewegen uns mit Puppet zu verwalten. Verwenden des Apache-Moduls (von Puppet).Marionette Apache läuft ab

Der Versuch, Syntax, um herauszufinden, zu Puppen produzieren so etwas wie zu machen:

<Directory "/data/websites/mysite"> 
    ExpiresActive On 
    ExpiresDefault "access plus 0 seconds" 
    ExpiresByType text/javascript "access plus 12 hours" 
    ExpiresByType application/x-javascript "access plus 12 hours" 
    ExpiresByType text/css "access plus 12 hours" 
    ExpiresByType image/gif "access plus 12 hours" 
    ExpiresByType image/jpeg "access plus 12 hours" 
    ExpiresByType application/x-shockwave-flash "access plus 12 hours" 
</Directory> 

Ich versuchte dies:

apache::vhost { 'mysite': 
    servername  => 'mysite.com', 
    vhost_name  => $::ipaddress, 
    port   => '80', 
    docroot   => $docroot, 

    directories => [ 
     { 
     path => '/var/www/mysite, 
     provider => 'directory', 
     options => ['-Indexes','FollowSymLinks'], 
     expires_active => 'On', 
     expires_default => 'access plus 0 seconds', 
     expires_by_type => [ 
      {'text/javascript' => 'access plus 12 hours' }, 
      {'application/x-javascript' => 'access plus 12 hours' }, 
      {'text/css' => 'access plus 12 hours' }, 
      {'image/gif' => 'access plus 12 hours' }, 
      {'image/jpeg' => 'access plus 12 hours' }, 
      {'application/x-shockwave-flash' => 'access plus 12 hours' }, 
     ], 
     }, 
    ], 

    } 

Dies wird dies zu schaffen, das ist nicht ganz das, was ich will:

<Directory "/var/www/mysite"> 
    Options -Indexes FollowSymLinks 
    AllowOverride None 
    Require all granted 
    ExpiresActive On 
    ExpiresDefault access plus 0 seconds 
    ExpiresByType {"text/javascript"=>"access plus 12 hours"} 
    ExpiresByType {"application/x-javascript"=>"access plus 12 hours"} 
    ExpiresByType {"text/css"=>"access plus 12 hours"} 
    ExpiresByType {"image/gif"=>"access plus 12 hours"} 
    ExpiresByType {"image/jpeg"=>"access plus 12 hours"} 
    ExpiresByType {"application/x-shockwave-flash"=>"access plus 12 hours"} 
    </Directory> 

Die ExpiresDefault und ExpiresByType funktioniert nicht. Der Rest sieht gut aus.

Antwort

1

Wenn Sie Ihren Code ändern:

apache::vhost { 'mysite': 
    servername  => 'mysite.com', 
    vhost_name  => '1.1.1.1', 
    port   => '80', 
    docroot   => 'mydocroot', 
    directories => [ 
     { 
     path => '/var/www/mysite', 
     provider => 'directory', 
     options => ['-Indexes','FollowSymLinks'], 
     expires_active => 'On', 
     expires_default => '"access plus 0 seconds"', 
     expires_by_type => [ 
      'text/javascript "access plus 12 hours"', 
      'application/x-javascript "access plus 12 hours"', 
      'text/css "access plus 12 hours"', 
      'image/gif "access plus 12 hours"', 
      'image/jpeg "access plus 12 hours"', 
      'application/x-shockwave-flash "access plus 12 hours"', 
     ], 
     }, 
    ], 
    } 

Sie erhalten:

<Directory "/var/www/mysite"> 
    Options -Indexes FollowSymLinks 
    AllowOverride None 
    Require all granted 
    ExpiresActive On 
    ExpiresDefault "access plus 0 seconds" 
    ExpiresByType text/javascript "access plus 12 hours" 
    ExpiresByType application/x-javascript "access plus 12 hours" 
    ExpiresByType text/css "access plus 12 hours" 
    ExpiresByType image/gif "access plus 12 hours" 
    ExpiresByType image/jpeg "access plus 12 hours" 
    ExpiresByType application/x-shockwave-flash "access plus 12 hours" 
    </Directory> 

ich nicht tief genug war zu graben, um zu entscheiden, ob dieses Verhalten als dokumentiert ist, ist verwirrend und sollte behoben, sollte besser dokumentiert werden, oder ist unerwartet.

Wenn es etwas anderes als dokumentiert ist, sollte definitiv jemand eine Pull-Anfrage stellen, um das Apache-Modul zu verbessern.

+0

Ich denke, Sie möchten nicht 'ExpiresByType' zu jeder Zeile hinzufügen, Ihre Ausgabe wird nicht mit 'ExpiresByType ExpiresByType' – Wee

+0

Gute Abholung, behoben. –

+0

Dieses Verhalten wird definitiv erwartet, da der String-Typ in Puppet funktioniert und auch für diese Frage die beste Antwort zu sein scheint. –