Make config: відмінності між версіями
Sv (обговорення | внесок) Немає опису редагування |
Sv (обговорення | внесок) Немає опису редагування |
||
(Не показано 16 проміжних версій цього користувача) | |||
Рядок 1: | Рядок 1: | ||
Модуль ядра '''make config''' входит в базовую поставку и позволяет создавать конфигурационные файлы | Модуль ядра '''make config''' входит в базовую поставку и позволяет создавать конфигурационные файлы '''на лету'''. Например, с помощью make_config можно формировать: | ||
* [[dhcp-конфиг с помощью make config|конфиг для dhcp-сервера]] | |||
* данные пользователей, например, в cvs-файле для экспорта во внешние программы. | |||
Результат формируется динамически - это значит, что он будет переформирован при изменении данных в биллинге. | |||
---- | |||
Пример шаблона для экспорта в csv: | |||
<pre> | <pre> | ||
{% for user in users %} | {% for user in users %} | ||
{{ user.name }};{{ user.show_data._adr_street }} | |||
{% endfor %} | {% endfor %} | ||
</pre> | </pre> | ||
Здесь user.show_data._adr_street - вывод дополнительного поля _adr_street. | |||
Необходимо отметить, что в дополнительных данных есть тип поля "выпадающий список", при этом в самом поле может храниться код, а отображаемое значение будет находиться в таблице dictionary: | |||
* '''<nowiki>{{ user.data._adr_street }}</nowiki>''' - вывод значения, которое хранится в поле _adr_street (т.е там может быть код улицы) | |||
* '''<nowiki>{{ user.show_data._adr_street }}</nowiki>''' - вывод преобразованного значения (имени улицы) | |||
* '''<nowiki>{{ | |||
* '''{{ user. | |||
Кроме самого шаблона необходим файл настроек для модуля make_config: kernel/make_config.cfg. | Кроме самого шаблона необходим файл настроек для модуля make_config: kernel/make_config.cfg. Он может быть таким: | ||
<pre> | <pre> | ||
Рядок 61: | Рядок 28: | ||
period => 60, | period => 60, | ||
template => { | template => { | ||
' | 'users.tmpl' => { | ||
# куда будет записан | # куда будет записан результат | ||
file => '/ | file => '/tmp/users.csv', | ||
# системная команда, которая будет выполнена перед записью | # системная команда, которая будет выполнена перед записью результата, можно '' | ||
cmd_before => '', | cmd_before => '', | ||
# системная команда, которая будет выполнена после записи | # системная команда, которая будет выполнена после записи результата, можно '' | ||
cmd_after => ' | cmd_after => '', | ||
# удалять пустые строки | # удалять пустые строки | ||
pretty => 1, | pretty => 1, | ||
}, | }, | ||
} | } | ||
</pre> | </pre> | ||
Здесь | Здесь: | ||
* users.tmpl - имя файла с шаблоном; | |||
* /tmp/users.csv - имя файла, куда будет записан результат; | |||
* переменная period указывает на период в секундах, с которым будет формироваться результат. | |||
Запустим модуль make_config с выводом результата на экран: | |||
Запустим с выводом результата на экран: | |||
<pre> | <pre> | ||
Рядок 94: | Рядок 54: | ||
</pre> | </pre> | ||
Если | Если результат корректный, добавим запуск make_config в автозагрузку: | ||
<pre> | <pre> | ||
echo '/usr/bin/perl /usr/local/nodeny/nokernel.pl -m=make_config -d &' >> /etc/rc.local | echo '/usr/bin/perl /usr/local/nodeny/nokernel.pl -m=make_config -d &' >> /etc/rc.local | ||
</pre> | </pre> | ||
Поточна версія на 12:56, 19 березня 2019
Модуль ядра make config входит в базовую поставку и позволяет создавать конфигурационные файлы на лету. Например, с помощью make_config можно формировать:
- конфиг для dhcp-сервера
- данные пользователей, например, в cvs-файле для экспорта во внешние программы.
Результат формируется динамически - это значит, что он будет переформирован при изменении данных в биллинге.
Пример шаблона для экспорта в csv:
{% for user in users %} {{ user.name }};{{ user.show_data._adr_street }} {% endfor %}
Здесь user.show_data._adr_street - вывод дополнительного поля _adr_street.
Необходимо отметить, что в дополнительных данных есть тип поля "выпадающий список", при этом в самом поле может храниться код, а отображаемое значение будет находиться в таблице dictionary:
- {{ user.data._adr_street }} - вывод значения, которое хранится в поле _adr_street (т.е там может быть код улицы)
- {{ user.show_data._adr_street }} - вывод преобразованного значения (имени улицы)
Кроме самого шаблона необходим файл настроек для модуля make_config: kernel/make_config.cfg. Он может быть таким:
run => 0, period => 60, template => { 'users.tmpl' => { # куда будет записан результат file => '/tmp/users.csv', # системная команда, которая будет выполнена перед записью результата, можно '' cmd_before => '', # системная команда, которая будет выполнена после записи результата, можно '' cmd_after => '', # удалять пустые строки pretty => 1, }, }
Здесь:
- users.tmpl - имя файла с шаблоном;
- /tmp/users.csv - имя файла, куда будет записан результат;
- переменная period указывает на период в секундах, с которым будет формироваться результат.
Запустим модуль make_config с выводом результата на экран:
perl /usr/local/nodeny/nokernel.pl -v -m=make_config
Если результат корректный, добавим запуск make_config в автозагрузку:
echo '/usr/bin/perl /usr/local/nodeny/nokernel.pl -m=make_config -d &' >> /etc/rc.local