История изменений
Исправление selivan, (текущая версия) :
sendmail: не знаю, я всегда postfix использовал. Судя по тому, что для создания конфигов часто используется препроцессор(!), всё нетривиально, поэтому не получится.
iptables - живой пример: http://ferm.foo-projects.org/ - укладывает правила в иерархический конфиг. То есть возможно
tc - а оно разве конфиги жрёт? По-моему, его всю жизнь напрямую из скриптов вызывали. Но, в принципе, вполне реализуемо(tc давно не трогал, параметры и порядок могу путать):
qdisc -> {
dev: 'eth0',
handle -> 1:,
parent -> none,
type -> htb,
params -> { default: 15 }
}
class -> {
dev: 'eth0',
parent -> 1:,
classid -> 1:1,
type -> htb,
params -> { rate -> '100mbps', ceil -> '100mbps' }
}
pf - не умею
bind - у него и так синтаксис конфига в виде
<section> {
param1 val1;
param2 val2;
};
dhcpd - аналогично с bind
zebra - не умею
vim - не получится, конфиг - скрипт на внутреннем языке
shell - не получится, конфиг - скрипт на нём самом
sshd - получится: конфиг - набор пар ключ->значение
openldap - не умею
passwd - получится:
user -> {
name -> 'root',
id -> 0,
gid -> 0,
comment -> 'root',
home -> '/root',
shell -> '/bin/bash',
До кучи: squid - получится, keepalived - получится, crontab - получится, xinetd - получится, ntpd - получится, bacula - получится, apache - получится(он и сейчас иерархический, только xml-подобный), php -получится(это обычный ini-шник), mysql - получится, postgresql - получится.
То есть пока у большей части софта конфиг в такую схему укладывается.
Исходная версия selivan, :
sendmail: не знаю, я всегда postfix использовал. Судя по тому, что для создания конфигов часто используется препроцессор(!), всё нетривиально, поэтому не получится.
iptables - живой пример: http://ferm.foo-projects.org/ - укладывает правила в иерархический конфиг. То есть возможно
tc - а оно разве конфиги жрёт? По-моему, его всю жизнь напрямую из скриптов вызывали. Но, в принципе, вполне реализуемо(tc давно не трогал, параметры и порядок могу путать):
qdisc -> {
dev: 'eth0',
handle -> 1:,
parent -> none,
type -> htb,
params -> { default: 15 }
}
class -> {
dev: 'eth0',
parent -> 1:,
classid -> 1:1,
type -> htb,
params -> { rate -> '100mbps', ceil -> '100mbps' }
}
pf - не умею
bind - у него и так синтаксис конфига в виде
<section> {
param1 val1;
param2 val2;
};
dhcpd - аналогично с bind
zebra - не умею
vim - не получится, конфиг - скрипт на внутреннем языке
shell - не получится, конфиг - скрипт на нём самом
sshd - получится: конфиг - набор пар ключ->значение
openldap - не умею
passwd - получится:
user -> {
name -> 'root',
id -> 0,
gid -> 0,
comment -> 'root',
home -> '/root',
shell -> '/bin/bash',
До кучи: squid - получится, keepalived - получится, crontab - получится, xinetd - получится, ntpd - получится, bacula - получится, apache - получится(он и сейчас иерархический, только xml-подобный).
То есть пока у большей части софта конфиг в такую схему укладывается.