2017-06-12 1 views
2

Wenn Sie sich die httpd.conf anschauen, können Sie 'AllowOverride None' sehen, ich möchte dies in 'AllowOverride All' ändern, aber tun Sie dies über das Puppet-Manifest unten.Wie aktiviert AllowOverride in Apache über Marionettenmanifest?

Ich habe dies mit 'Verzeichnisse' versucht, aber es funktioniert nicht. Wie kann AllowOverride in diesem Beispiel korrekt auf "Alle" geändert werden?

httpd.conf

# ************************************ 
# Vhost template in module puppetlabs-apache 
# Managed by Puppet 
# ************************************ 

<VirtualHost *:443> 
    ServerName test.example.com 
    ## Vhost docroot 
    DocumentRoot "/var/www/html" 

    ## Directories, there should at least be a declaration for /var/www/html 

    <Directory "/var/www/html"> 
    Options Indexes FollowSymLinks 
    AllowOverride None 
    Require all granted 
    </Directory> 

apache.pp

apache::vhost { 'test.example.com': 
    port  => '443', 
    docroot  => '/var/www/html', 
    ssl   => true, 
    ssl_cert => "${ssl_base}/ssl.crt", 
    ssl_key  => "${ssl_base}/ssl.key", 
    directories => [ 
     { 
     'path'   => '/var/www/html', 
     'options'  => 'Indexes FollowSymLinks', 
     'allowoverride' => 'All', 
     }, 
    ], 
    } 
} 
+1

Nach der Vorlage übergeben https://github.com/puppetlabs/puppetlabs-apache/blob/master/templates/httpd .conf.erb für diese Datei verwendet, ist der 'AllowOverride'-Wert fest auf 'None' festgelegt. Sie müssten einen anderen Weg suchen, die Änderung anders als durch das "Apache" -Modul durchzuführen. Sie können die Vorlage ändern, 'file_line' verwenden, eine neue' file' Ressource erstellen usw. –

+0

Oder, noch besser, eine Pull-Anfrage auslösen, um das fehlende Feature in das Apache-Modul einzufügen. –

Antwort

0

Von der Puppen Dokumentation würde legen Sie diese mit Überschreibung: https://forge.puppet.com/puppetlabs/apache#override

Hier ist die Vorlage, die das Apache-Modul verwendet, um den AllowOverride-Wert festzulegen: https://github.com/puppetlabs/puppetlabs-apache/blob/61301b5a8d5fa2bf1e98b1d8532aaf141a27f365/templates/vhost/_directories.erb#L55-L57

sollte Ihr Code wie folgt aussehen:

apache::vhost { 'test.example.com': 
    port  => '443', 
    docroot  => '/var/www/html', 
    ssl   => true, 
    ssl_cert => "${ssl_base}/ssl.crt", 
    ssl_key  => "${ssl_base}/ssl.key", 
    directories => [ 
     { 
     'path'   => '/var/www/html', 
     'options'  => 'Indexes FollowSymLinks', 
     'override' => 'All', 
     }, 
    ], 
    } 
} 

Hier ist ein Beispiel dafür, wie sie Überschreibung in einer ihrer Unit-Tests verwenden: https://github.com/puppetlabs/puppetlabs-apache/blob/2931d0ebc4a0582e5209e9994ab8ae5c445d87b7/spec/acceptance/vhost_spec.rb#L998-L1015

0

I verwendet Rubin Vorlagen für httpd.conf-Dateien.

Hier werden die Werte für allowoverride basierend auf Hierarchie und Umgebung von Hiera übergeben.

Wenn Ihr httpd.conf gleiche über Umgebungen bleibt, können Sie es über Datei-Ressource-Methode

Verwandte Themen