voxpupuli / puppet-augeasproviders_apache Goto Github PK
View Code? Open in Web Editor NEWAugeas-based apache types and providers for Puppet
License: Apache License 2.0
Augeas-based apache types and providers for Puppet
License: Apache License 2.0
Consider the following puppet code:
apache_directive { 'Disable autoindex in webroot':
ensure => present,
name => 'Options',
context => 'Directory[arg="/var/www/html"]',
args => 'FollowSymLinks',
}
apache_directive { 'Disable autoindex in icons':
ensure => present,
name => 'Options',
context => 'Directory[arg="/var/www/icons"]',
args => 'MultiViews FollowSymLinks',
}
When imported into a node these items report the following error:
Error: Puppet::Parser::AST::Resource failed with error ArgumentError: Cannot alias Apache_directive[Disable autoindex in icons] to ["Options"] at test.pp:19; resource ["Apache_directive", "Options"] already declared at test.pp:12 at test.pp:19 on node hostname.example.com
Hello,
In a default apache 2.4 ports.conf there is those directives:
Listen 80
<IfModule ssl_module>
Listen 443
</IfModule>
As it's redefined elsewhere in our confs, I wanted to drop them both:
apache_directive { 'Listen80':
ensure => 'absent',
name => 'Listen',
args => '80',
target => '/etc/apache2/ports.conf',
}
apache_directive { 'Listen443':
ensure => 'absent',
name => 'Listen',
args => '443',
target => '/etc/apache2/ports.conf',
context => 'IfModule[arg="ssl_module"]',
}
Unfortunately, with or without args, it gives an error on puppet execution:
Error: Could not retrieve catalog from remote server: Error 400 on SERVER: Evaluation Error: Error while evaluating a Resource Statement, Cannot alias Apache_directive[Listen443] to ["Listen"] at apache.pp:112; resource ["Apache_directive", "Listen"] already declared at apache.pp:105 at apache.pp:112:3 on node XXX
raphink on irc told me to open an issue, comment:
"probably not planned in the composite namevar"
This module got migrated from hercules-team to Vox Pupuli
We have a need to add multiple specific "Listen" directives in the httpd.conf file, but I don't seem to be able to.
The following code:
$profile::bind_addresses.each |Integer $index, Stdlib::IP::Address $ip_addr| {
apache_directive { "set_apache_listen_address_${index}":
ensure => 'present',
name => 'Listen',
args => "${ip_addr}:80"
}
}
simply results in:
Cannot alias Apache_directive[set_apache_listen_address_1] to [nil, "Listen", nil] at (file: /etc/puppetlabs/code/environments/rk_test/site/apache/manifests/init.pp, line: 56); resource ["Apache_directive", nil, "Listen", nil] already declared (file: /etc/puppetlabs/code/environments/rk_test/site/apache/manifests/init.pp, line: 56)
I know this is probably a small use case, but having multiple Listen directives is valid syntax in Apache, so I'm filing this issue report as I think this needs a fix.
I want to change something in the <Directory "/var/www/html"> context, but the " are causing a 'problem', can't seem to select it. When the context is <Directory /var/www/html> it is working perfect:
apache_directive { "Options for html":
name => 'Options',
args => 'SymLinksIfOwnerMatch',
ensure => present,
context => 'Directory[arg="/var/www/html"]',
}
But trying to get the " in the context like this:
apache_directive { "Options for html":
name => 'Options',
args => 'SymLinksIfOwnerMatch',
ensure => present,
context => 'Directory[arg="\"/var/www/html\""]',
}
Makes Puppet change the context for the directory /
Error: /etc/puppetlabs/code/environments/production/modules/augeasproviders_apache/lib/puppet/type/apache_directive.rb: title patterns that use procs are not supported.
A declarative, efficient, and flexible JavaScript library for building user interfaces.
๐ Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. ๐๐๐
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google โค๏ธ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.