Config files management for Ubuntu Server

Registered by Marc Cluet

Config file management is becoming more and more crucial with the rise of orchestration and automation tools, there's several ways to solve this problem from dotdee config style directories to machine managed configuration files (through puppet, augeas, chef, etc...) and marked as such. What would be the best way to handle this and make the default Ubuntu Server installation more friendly to automation and management.

Blueprint information

Status:
Not started
Approver:
Robbie Williamson
Priority:
Undefined
Drafter:
Marc Cluet
Direction:
Needs approval
Assignee:
None
Definition:
Review
Series goal:
None
Implementation:
Deferred
Milestone target:
None

Sprints

Whiteboard

Related, previous UDS Sessions/Blueprints:
 * https://blueprints.launchpad.net/ubuntu/+spec/server-maverick-library-of-puppet-recipes
 * https://blueprints.launchpad.net/ubuntu/+spec/server-lucid-puppet-etckeeper-integration

Related: puppet::concat
   http://github.com/ripienaar/puppet-concat

dpkg dev's suggestion:
 * http://lists.debian.org/debian-dpkg/2011/05/msg00015.html

[SpamapS]
Register original package interest in the directory so we can reconfigure package on dir modification

[kirkland]
I've proposed something called 'dotdee', that would take any given file in /etc and convert it into a ".d" directory structure style of concatenated configuration files:
  - http://blog.dustinkirkland.com/2011/04/dotdee-modern-proposal-for-improving.html
And I've pushed this proposal to the debian-dpkg mailing list. The list more or less recognizes the problem, but they were not immediately impressed with the dotdee proposed solution. Let's talk about other alternatives in a UDS session.

[lynxman]
Config file management is becoming more and more crucial with the rise of orchestration and automation tools, there's several ways to solve this problem from dotdee config style directories to machine managed configuration files (through puppet, augeas, chef, etc...) and marked as such. What would be the best way to handle this and make the default Ubuntu Server installation more friendly to automation and management.

[kitterman]
This is something that absolutely must be coordinated with Debian. Even if we implement first, getting out of sync with Debian on something as fundamental as conffile management is not something we should do.

WORK ITEMS
noop dpkg hook for configuration file so we can ignore conf files on a per-file basis (- ie: dpkg --ignore-conflicts-to /etc/path/to/some.conf): TODO
suggest as a best practice policy for upstream server projects to support a conf.d style directory structure: TODO

(?)

Work Items