Git Product home page Git Product logo

voxpupuli / puppet-augeasproviders_apache Goto Github PK

View Code? Open in Web Editor NEW
1.0 40.0 12.0 129 KB

Augeas-based apache types and providers for Puppet

License: Apache License 2.0

Shell 4.57% Ruby 95.43%
augeas augeasproviders puppet puppet-module puppet-resources configuration configuration-management configuration-files apache apache2 httpd hacktoberfest centos-puppet-module debian-puppet-module linux-puppet-module oraclelinux-puppet-module redhat-puppet-module ubuntu-puppet-module

puppet-augeasproviders_apache's Issues

Context sensitive directives report duplicate resource definitions

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

Can not modify two different Listen directives

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"

Can't add multiple Listen entries

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.

Context with "

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 /

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.