puppet concat::fragment 没有在虚拟主机中插入内容
puppet concat::fragment not inserting content in vhost
所以我的 puppet 清单文件中有一个虚拟主机配置
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
我用谷歌搜索,发现 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(结果相同)
当我做 vagrant provision 我得到这个:
-- 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 不在那里。
我正在使用 puppetlabs concat 模块的 2.0.0 版。
我需要做什么才能完成这项工作?
更新
显然我本可以使用
custom_fragment
在虚拟主机代码中。不知道为什么这没有首先出现在模块文档中。
您可以像这样在虚拟主机代码中添加自定义片段:
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'),
custom_fragment
参数记录在 README.md
所以我的 puppet 清单文件中有一个虚拟主机配置
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
我用谷歌搜索,发现 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(结果相同)
当我做 vagrant provision 我得到这个:
-- 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 不在那里。
我正在使用 puppetlabs concat 模块的 2.0.0 版。
我需要做什么才能完成这项工作?
更新
显然我本可以使用
custom_fragment
在虚拟主机代码中。不知道为什么这没有首先出现在模块文档中。
您可以像这样在虚拟主机代码中添加自定义片段:
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'),
custom_fragment
参数记录在 README.md