使用Puppet和Vagrant配置Apache
我第一次在一个项目中使用Vagrant和Puppet,我一直遇到一个问题 我使用了PuPHPet作为起点,在default.pp清单中有以下代码段:使用Puppet和Vagrant配置Apache,apache,vagrant,puppet,Apache,Vagrant,Puppet,我第一次在一个项目中使用Vagrant和Puppet,我一直遇到一个问题 我使用了PuPHPet作为起点,在default.pp清单中有以下代码段: class { 'apache': } apache::dotconf { 'custom': content => 'EnableSendfile Off', } apache::module { 'rewrite': } apache::vhost { 'awesome.dev': server_name => '
class { 'apache': }
apache::dotconf { 'custom':
content => 'EnableSendfile Off',
}
apache::module { 'rewrite': }
apache::vhost { 'awesome.dev':
server_name => 'awesome.dev',
serveraliases => [
],
docroot => '/var/www',
port => '80',
directories => [ { path => '/var/www/', allow => 'from all', allow_override => ['All'] } ],
env_variables => [],
priority => '1',
}
当我运行它时,总是会出现以下错误:
warning: Could not retrieve fact fqdn
Invalid parameter directories at /tmp/vagrant-puppet/manifests/default.pp:46 on node precise32
The following SSH command responded with a non-zero exit status.
Vagrant assumes that this means the command failed!
cd /tmp/vagrant-puppet/manifests && puppet apply --verbose --modulepath '/etc/puppet/modules:/tmp/vagrant-puppet/modules-0' default.pp --detailed-exitcodes || [ $? -eq 2 ]
第46行是apache::vhost规则的结尾。我想将其设置为允许使用htaccess进行覆盖,但我看不出哪里出了问题。有人知道问题出在哪里吗?PuPHPet使用Example42 Apache Puppet模块,请参阅自述文件。此模块在vhost资源中没有目录参数:
# apache::vhost { 'my.other.site':
# docroot => '/path/to/docroot',
# directory => '/path/to',
# directory_allow_override => 'All',
# }
只有Puppet Labs Apache模块具有目录参数,但它是另一个模块:
但是,您可以使用Example42模块中的directory参数,类似于vhost资源中的示例:
# apache::vhost { 'my.other.site':
# docroot => '/path/to/docroot',
# directory => '/path/to',
# directory_allow_override => 'All',
# }
请注意,几个月前,我将PuPHPet切换到了puppetlabs apache模块,因此这个答案不再正确。它仍然适用于所有使用example42模块的人,并且非常有用。