Op UNIX systemen zijn er legio verschillende config file formaten. Ik ben benieuwd wat ieders favoriete config file formaat is, en waarom dat zo is.
Hier ff een korte opsomming met voorbeeld.
Samba style:
Duidelijk, maar lastig met spaties voor en na de values. Geen nesting mogelijkheden.
Er is een vergelijkbaar formaat wat de regels wel afsluit met een semicolon.
Jabber style (XML):
m.b.v. XSL kan er een mooie pagina van worden gemaakt!
Nesting is mogelijk en extra spaties voor of na values zijn meteen duidelijk.
Comments zijn een beetje omslachtig.
Een programma om de config file te editten/bekijken kan eenvoudig een sectie inklappen. (mozilla doet dit standaard)
d.m.v. een DTD kan er makkelijk een generiek programma gemaakt worden voor 't editten van verschillende XML config files.
enscript style:
Nogal basic...
fstab style:
Mooie uitlijning. Maar spaties zijn problematisch.
passwd style:
Goed, maar niet uitbreidbaar.
MRTG style:
Rampzalig. Probeer maar is een section te hernoemen. Of ff een sectie 5x te kopieeren omdat je b.v. 5 routers hebt.
Binary config files zijn er ook nog....ik heb er nooit echt 't nut van ingezien. (behalve bij tripwire dan)
De slapd.conf van OpenLDAP is het slechtste config file formaat wat ik ken. De verschillende secties zijn niet duidelijk genoeg gescheiden. En met LDAP is er meestal een master en een (of meer) slave servers. De ACL's zijn bij die servers gelijk, maar de rest van de config niet. Bij elke wijziging in de ACL's moet er dus gecopypaste worden, terwijl als het een appart bestand was geweest het gewoon via scp of rsync had kunnen worden gekopieerd.
Belangrijke dingen bij logfiles.
Compatibiliteit met CVS, ARCH, SVN en cfengine. (mogelijkheid om met diff/patch enzo te werken, zonder syntax errors te introduceren. en zonderdat het full-file patches worden.)
Controle op syntax (b.v. parsing XML processor zoals mozilla)
Al met al lijkt XML me goed voor config files. Wat zijn de verdere voors en tegens van xml configs?
Moet er per applicatie een config zijn of moet het via includes enzo opgedeeld zijn in meerdere files?
Hier ff een korte opsomming met voorbeeld.
Samba style:
code:
1
2
3
4
5
6
| # ohoh [sectie1] optie = iets optie2 = iets anders [sectie2] optie3 = weer iets |
Duidelijk, maar lastig met spaties voor en na de values. Geen nesting mogelijkheden.
Er is een vergelijkbaar formaat wat de regels wel afsluit met een semicolon.
Jabber style (XML):
XML:
1
2
3
4
5
6
7
8
9
10
| <!-- Sluice component --> <service id="sluice.localhost"> <accept> <ip/> <ns>jabber:iq:search</ns> <ns>jabber:iq:register</ns> <port>5227</port> <secret>sluice_secret</secret> </accept> </service> |
m.b.v. XSL kan er een mooie pagina van worden gemaakt!
Nesting is mogelijk en extra spaties voor of na values zijn meteen duidelijk.
Comments zijn een beetje omslachtig.
Een programma om de config file te editten/bekijken kan eenvoudig een sectie inklappen. (mozilla doet dit standaard)
d.m.v. een DTD kan er makkelijk een generiek programma gemaakt worden voor 't editten van verschillende XML config files.
enscript style:
code:
1
2
| optionOne: value1 optionTwo: value2 |
Nogal basic...
fstab style:
code:
1
2
| option1 value1 value2 value3 option2 value6 value5 value4 |
Mooie uitlijning. Maar spaties zijn problematisch.
passwd style:
code:
1
2
| option1:value1:value2 option2:value3:value4 |
Goed, maar niet uitbreidbaar.
MRTG style:
code:
1
2
| option1[section1]: value1 option2[section1]: value2 |
Rampzalig. Probeer maar is een section te hernoemen. Of ff een sectie 5x te kopieeren omdat je b.v. 5 routers hebt.
Binary config files zijn er ook nog....ik heb er nooit echt 't nut van ingezien. (behalve bij tripwire dan)
De slapd.conf van OpenLDAP is het slechtste config file formaat wat ik ken. De verschillende secties zijn niet duidelijk genoeg gescheiden. En met LDAP is er meestal een master en een (of meer) slave servers. De ACL's zijn bij die servers gelijk, maar de rest van de config niet. Bij elke wijziging in de ACL's moet er dus gecopypaste worden, terwijl als het een appart bestand was geweest het gewoon via scp of rsync had kunnen worden gekopieerd.
Belangrijke dingen bij logfiles.
Compatibiliteit met CVS, ARCH, SVN en cfengine. (mogelijkheid om met diff/patch enzo te werken, zonder syntax errors te introduceren. en zonderdat het full-file patches worden.)
Controle op syntax (b.v. parsing XML processor zoals mozilla)
Al met al lijkt XML me goed voor config files. Wat zijn de verdere voors en tegens van xml configs?
Moet er per applicatie een config zijn of moet het via includes enzo opgedeeld zijn in meerdere files?
[ Voor 30% gewijzigd door Verwijderd op 21-05-2004 14:51 ]