将一个Include指令放在带有puppet的vhost中的Directory中

时间:2014-08-28 15:48:26

标签: puppet puppetlabs-apache

有没有办法在vhost中创建“目录”并将其放入“包含”Puppet中?

像这样:

<Directory "/var/www">
    Options Indexes FollowSymLinks MultiViews
    AllowOverride None
    Require all granted
    Include /etc/apache2/myconf.d/htpasswd.conf
</Directory>

我用“custom_fragment”做了,但是我想用“additional_includes”做,但是“additional_includes”不能在变量“目录”中使用它。

还有别的办法吗?

感谢。

3 个答案:

答案 0 :(得分:2)

我假设您使用的是Puppet Enterprise或PLAM

它确实没有您正在尝试的原生支持。 custom_fragment实际上是一个非常好的选择。

如果您确实想通过专用哈希键添加include,则可以修改模块并打开pull请求。您基本上必须在模板中添加existing ones之类的部分。还有一些简短的documentation。这些家伙喜欢拉动请求; - )

答案 1 :(得分:0)

看起来你正在寻找阵列?

如果你使用的是puppetlabs模块,你可以使用&#34; additional_includes&#34;

additional_includes 指定其他静态,特定于vhost的Apache配置文件的路径。用于实现此模块不支持的唯一自定义配置。可以是一个数组。默认为&#39; []&#39;。

https://forge.puppetlabs.com/puppetlabs/apache#parameter-directories-for-apachevhost

apache::vhost { 'myvhost.whaterver.com':
  port                => 8080,
  docroot             => '/var/www/folder',
  directories         => [
    {  'path'                => '/var/www/folder',
       'options'             => 'None',
       'allow_override'      => 'None',
       'order'               => 'Allow,Deny',
       'allow'               => 'from All',
       'additional_includes' => ['/etc/apache2/myconf.d/htpasswd.conf', 'other settings'],
      },],

`

答案 2 :(得分:-1)

这是一个适合我的代码段:

    class {'apache':
            default_vhost => false,
    }

    apache::vhost {'mydefault':
            port => 80,
            docroot => '/var/www/html',

            directories => [
                    {
                            'path' => '/var/www/html',
                            'provider' => 'files',
                    },
                    {
                            'path' => '/media/my_builds',
                            'options' => 'Indexes FollowSymLinks MultiViews',
                            'allowoverride' => 'None',
                            'require' => 'all granted',
                            'additional_includes' => ['what Randy Black said'],
                    },
            ],

            aliases => [
                    {
                            alias => '/my_builds',
                            path => '/media/my_builds',
                    },
            ],
    }