puppet concat :: fragment不在vhost中插入内容

时间:2015-05-19 09:01:54

标签: apache2 puppet concat vhosts

所以我的puppet清单文件中有一个vhost配置

apache::vhost { 'site.dev':
    port => '80',
    docroot => '/home/vagrant/projects/Personal/php/site/public',
    serveradmin => 'admin@admin.dev',
    options => ['Indexes','FollowSymLinks','MultiViews'],
    setenv => ["APP_ENV dev"],
    override => ['All'],
}

现在我要添加这些选项

EnableSendfile Off
EnableMMAP Off

我用Google搜索并发现concat :: fragment可能就是我需要的,所以我尝试了以下内容:

concat::fragment { "site.dev-static":
      target  => '25-site.dev.conf',
      order   => '01',
      content => '
        EnableSendfile Off
        EnableMMAP Off
      ',
}

注意 在目标中,我也尝试了完整的路径:/etc/apache2/sites-available/25-site.dev.conf(结果相同)

当我做流浪汉的时候,我得到了这个:

-- snip --
==> acs_dev: Warning: Scope(Concat::Fragment[Listen 80]): The $ensure parameter to concat::fragment is deprecated and has no effect.
-- snip --

我认为这个工作正常但是当我去/etc/apache2/sites-available/25-site.dev.conf的vhos文件时, EnableSendfile EnableMMAP 不在那里。

我正在使用版本2.0.0的puppetlabs concat模块。

我需要做些什么来完成这项工作?

更新

显然我可以使用

custom_fragment

在虚拟代码中。不知道为什么这不会出现在模块文档中。

1 个答案:

答案 0 :(得分:2)

您可以在vhost代码中添加自定义片段,如下所示:

apache::vhost { 'foo':
  port              => '80',
  ip                => '127.0.0.1',
  add_listen        => false,
  proxy_pass        => [
    {
      'path' => '/',
      'url' => "http://127.0.0.1:8080",
      'reverse_urls' => "http://127.0.0.1:8080",
    },
  ],
  docroot           => '/var/www/html',
  custom_fragment   => '# Fragment content',
}

我还发现使用template函数可以更轻松地管理内容,如果它是一个很长的片段:

custom_fragment   => template('apache_profile/etc/httpd/apache_custom_fragment.erb'),

README.md

中记录了custom_fragment参数