2017-06-15 13 views
2

パペットを使用して管理することに移行しました。 Apacheモジュールを使用する(Puppetから)パペットApache有効期限コード

人形のようなものを生成するために、構文を把握しよう:

<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> 

を私はこれを試してみました:

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' }, 
     ], 
     }, 
    ], 

    } 

これは私が望んかなりものではありませんこれは、この作成します。

<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> 

ExpiresDefaultおよびExpiresByTypeが機能しません。残りは私によく見えます。

答えて

1

あなたがあなたのコードを変更した場合:

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"', 
     ], 
     }, 
    ], 
    } 

あなたが得る:私は文書化されているように、この動作があるかどうかを決定するのに十分な深掘りしませんでした

<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> 

、混乱し、する必要があります固定されているか、よりよく文書化されるべきか、または予期しないものである。

文書化されたもの以外のものがあれば、間違いなく誰かがApacheモジュールを改善するためにプルリクエストを起こすべきです。

+0

すべての行に 'ExpiresByType'を追加したくないと思うと、出力は 'ExpiresByType ExpiresByType'で動作しません。 – Wee

+0

良いピックアップが修正されました。 –

+0

これは、文字列型がPuppetでどのように動作するかを考えると、間違いなく期待される動作であり、この質問に対して可能な限り最良の答えと思われます。 –