LINUX.ORG.RU

История изменений

Исправление 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-подобный).

То есть пока у большей части софта конфиг в такую схему укладывается.