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
(SERVER-338) Ensure netstat is available for service management #391
Conversation
Without this patch the puppet server service fails to start at the service management framework layer. The failure is caused by the service unit attempting to use netstat to check for listening ports and netstat not being available. This patch addresses the problem by expressing a dependency on net-tools, which contains netstat so that netstat is always available after package installation and before service management.
@jeffmccune I think this dependency should be expressed in ezbake itself (for example: https://github.com/puppetlabs/ezbake/blob/master/resources/puppetlabs/lein-ezbake/template/foss/ext/redhat/ezbake.spec.erb#L56). Adding it here is sufficient for puppet-server, but pe-console-services and other ezbake projects probaby want the dependency as well. |
|
What branches of ezbake should it be made to? There are stable, puppetserver/stable and master AFAIK right now. |
Decision in planning meeting is to submit this change as a pull request based on the master branch only of ezbake. The reason being, stable and puppetserver/stable will go away as soon as we go gold on the next PE release. |
@haus I understand the desire to reduce duplication where different projects are sharing the same resources, however, we're increasing duplication as a result of the confusion that ensues. For example, we're already expressing the dependency on As a general principle, am I incorrect in my understanding that dependencies of a project should be expressed by the project itself as we're seeing them expressed in the |
@haus Another way of looking at this is that this pull-request is unnecessary, and the only necessary pull request would be to update ezbake, since the dependency lies there and not with each of the projects. What do you think? If that's the case, then we probably shouldn't be expressing the dependency on Java here, in the project, either, since that's already expressed in ezbake. |
@jeffmccune yes. i think having java here is needless duplication |
Closing since it's really ezbake and the service scripts that depend on netstat and those dependencies are expressed in the ezbake templates rather than the project definition. |
@jeffmccune I think that if puppet-server has a need that other ezbake projects don't have, then including that dependency in project.clj would make sense, but if it is a shared dependency it belongs in ezbake. |
I'm mostly with you, but there's a nuance I'd like to call out. Two projects may end up having the same dependency, but they should still be isolated from each other (so they could vary, if needed) if it's the project (application layer) that depends on something versus the service framework (system layer? ezbake layer?) that depends on something. A bit complicated and nuanced, but do you see what I'm driving at? |
@jeffmccune yea, that makes sense to me |
Without this patch the puppet server service fails to start at the service
management framework layer. The failure is caused by the service unit
attempting to use netstat to check for listening ports and netstat not being
available.
This patch addresses the problem by expressing a dependency on net-tools, which
contains netstat so that netstat is always available after package installation
and before service management.
Pre-testing
Verified by building the packages from this local topic branch as per
documentation at
https://confluence.puppetlabs.com/display/ENG/How+To+build+Puppet+Server+from+a+local+topic+branch
and running the acceptance tests. The netstat command is successfully
installed and the service starts. Huzzah.