Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Vanilla configuration creates a non-starting Apache config on Redhat 9 #420

Open
akomakom opened this issue Dec 9, 2024 · 1 comment
Open

Comments

@akomakom
Copy link

akomakom commented Dec 9, 2024

Affected Puppet, Ruby, OS and module versions/distributions

  • Puppet: 8.10.0
  • Ruby: 3.2.0 (bundled with puppet rpm)
  • Distribution: Redhat 9.4
  • Module version: 10.0.0
  • httpd: httpd-2.4.62-1.el9.x86_64

How to reproduce (e.g Puppet code you use)

  • Start with a new Redhat 9 machine (no apache installed).
  • Added (in this order, running puppet agent each time):
    • puppetdb
    • puppetboard

Using Puppet R10K with:

  • Puppetfile
forge 'forge.puppetlabs.com'

# Forge Modules
mod 'puppetlabs/ntp', '10.1.0'
mod 'puppetlabs/stdlib'

mod 'puppetlabs-puppetdb', '8.1.0'
mod 'puppet-puppetboard', '10.0.0'
#deps
mod 'puppetlabs-postgresql', '10.3.0'
mod 'puppetlabs-apt', '9.4.0'
mod 'puppet-systemd', '7.1.0'
mod 'puppetlabs-concat', '9.0.2'
mod 'puppetlabs-inifile', '6.1.1'
mod 'puppetlabs-firewall', '8.1.3'
mod 'puppet-python', '7.4.0'
mod 'puppet-epel', '5.0.0'
mod 'puppetlabs-apache', '12.2.0'
  • site.pp (node block)
 # Configure puppetdb and its underlying database
  class { 'puppetdb':
    listen_address => $facts['fqdn']
  }

  # Configure the Puppet master to use puppetdb
  class { 'puppetdb::master::config': }

  class { 'puppetboard':
    manage_virtualenv => true,
    secret_key        => fqdn_rand_string(32),
    python_version    => '3.9',
  }

  # For puppetboard
  class { 'apache':
    default_vhost => false,
  }

  # Access Puppetboard from example.com/puppetboard
  class { 'puppetboard::apache::conf': }

What are you seeing

Error: /Stage[main]/Apache::Service/Service[httpd]/ensure: change from 'stopped' to 'running' failed: Systemd start for httpd failed!                                                                                       
journalctl log for httpd:
Dec 09 06:57:59 servername.domain systemd[1]: Starting The Apache HTTP Server...
Dec 09 06:57:59 servername.domain httpd[17945]: httpd: Could not open configuration file /etc/httpd/conf/httpd.conf: No such file or directory
Dec 09 06:57:59 servername.domain systemd[1]: httpd.service: Main process exited, code=exited, status=1/FAILURE
Dec 09 06:57:59 servername.domain systemd[1]: httpd.service: Failed with result 'exit-code'.
Dec 09 06:57:59 servername.domain systemd[1]: Failed to start The Apache HTTP Server.
Dec 09 06:59:03 servername.domain systemd[1]: Starting The Apache HTTP Server...
Dec 09 06:59:03 servername.domain httpd[18043]: Server configured, listening on: port 80
Dec 09 06:59:03 servername.domain systemd[1]: Started The Apache HTTP Server.
Dec 09 06:59:06 servername.domain systemd[1]: Stopping The Apache HTTP Server...
Dec 09 06:59:07 servername.domain systemd[1]: httpd.service: Deactivated successfully.
Dec 09 06:59:07 servername.domain systemd[1]: Stopped The Apache HTTP Server.
Dec 09 07:00:17 servername.domain systemd[1]: Starting The Apache HTTP Server...
Dec 09 07:00:17 servername.domain httpd[18503]: no listening sockets available, shutting down
Dec 09 07:00:17 servername.domain httpd[18503]: AH00015: Unable to open logs
Dec 09 07:00:17 servername.domain systemd[1]: httpd.service: Main process exited, code=exited, status=1/FAILURE
Dec 09 07:00:17 servername.domain systemd[1]: httpd.service: Failed with result 'exit-code'.
Dec 09 07:00:17 servername.domain systemd[1]: Failed to start The Apache HTTP Server.
Dec 09 07:01:30 servername.domain systemd[1]: Starting The Apache HTTP Server...
Dec 09 07:01:30 servername.domain httpd[18922]: no listening sockets available, shutting down
Dec 09 07:01:30 servername.domain httpd[18922]: AH00015: Unable to open logs
Dec 09 07:01:31 servername.domain systemd[1]: httpd.service: Main process exited, code=exited, status=1/FAILURE
Dec 09 07:01:31 servername.domain systemd[1]: httpd.service: Failed with result 'exit-code'.
Dec 09 07:01:31 servername.domain systemd[1]: Failed to start The Apache HTTP Server.
# conf file actually exists (readable by root only)
$ ls -l /etc/httpd/conf/httpd.conf
-rw-r--r-- 1 root root 1034 Dec  9 07:00 /etc/httpd/conf/httpd.conf
$ systemctl start httpd
Job for httpd.service failed because the control process exited with error code.
See "systemctl status httpd.service" and "journalctl -xeu httpd.service" for details.

Dec 09 07:16:22 servername.domain httpd[19164]: no listening sockets available, shutting down
Dec 09 07:16:22 servername.domain httpd[19164]: AH00015: Unable to open logs
Dec 09 07:16:22 servername.domain systemd[1]: httpd.service: Main process exited, code=exited, status=1/FAILURE

# note, Listen is commented out.  If uncommented, server starts.
$ grep Listen /etc/httpd/conf/httpd.conf
#Listen 80

Note that re-applying catalog breaks configuration again by commenting out Listen 80

What behaviour did you expect instead

  • Apache should start
  • Side note: apache module should not create /etc/httpd/conf directory and use conf.d/ files instead.

Output log

Any additional information you'd like to impart

Temporary Workaround

  # temporary workaround for https://github.com/voxpupuli/puppet-puppetboard/issues/420
  file {'/etc/httpd/conf.d/01-akom.conf':
    content => 'Listen 80',
  }
@mihai-preda
Copy link

mihai-preda commented Dec 11, 2024

Works for me on Oracle Linux 9.5. A file named "25-fqdn.conf" is created in /etc/httpd/conf.d. I'm not sure about other flavours of RHEL.
I use my own secret key instead of the default. And I add the "manage_virtualenv" and "puppetdb_host" variables.
I'm also using puppetboard and puppetdb on separate nodes.
So I can't say I've used the bare minimum config.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

2 participants