|
@@ -0,0 +1,44 @@
|
|
|
+# Klish версии 3
|
|
|
+
|
|
|
+## Обзор
|
|
|
+
|
|
|
+Программа klish предназначенa для организации интерфейса командной строки,
|
|
|
+в котором оператору доступен только строго определенный набор команд. Это
|
|
|
+отличает klish от стандартных shell интерпретаторов, где оператор может
|
|
|
+использовать любые команды, существующие в системе и возможность их выполнения
|
|
|
+зависит только от прав доступа. Набор доступных в klish команд определяется на
|
|
|
+этапе конфигурирования и может быть задан, в общем случае, различными способами,
|
|
|
+основным из которых являются XML файлы конфигурирования. Команды в klish не
|
|
|
+являются системными командами, а полностью определены в файлах конфигурации,
|
|
|
+со всеми возможными параметрами, синтаксисом и действиями, которые они
|
|
|
+выполняют.
|
|
|
+
|
|
|
+Основным применением klish являются встроенные системы, где оператору доступны
|
|
|
+только определенные, специфические для конкретного устройства, команды, а не
|
|
|
+произвольный набор команд, как в системах общего назначения. В таких встроенных
|
|
|
+системах klish может подменить собой shell интерпретатор, недоступный для
|
|
|
+оператора.
|
|
|
+
|
|
|
+Примером встроенных систем может служить управляемое сетевое оборудование.
|
|
|
+Исторически в этом сегменте сложилось два основных подхода к организации
|
|
|
+интерфейса командной строки. Условно их можно назвать подход "Cisco" и подход
|
|
|
+"Juniper". И Cisco и Juniper имеют два режима работы - командный режим и
|
|
|
+режим конфигурирования. В командном режиме введенные команды немедленно
|
|
|
+исполняются, но не влияют на конфигурацию системы. Это команды просмотра
|
|
|
+состояния, команды управления устройством, но не изменения его конфигурации.
|
|
|
+В режиме конфигурирования
|
|
|
+идет настройка оборудования и сервисов. В Cisco команды конфигурирования также
|
|
|
+исполняются немедленно, меняя конфигурацию системы. В Juniper конфигурацию
|
|
|
+можно условно представить себе, как текстовый файл, изменения в котором
|
|
|
+производятся с помощью стандартных команд редактирования. При редактировании
|
|
|
+изменения не применяются в системе. И только по специальной команде весь
|
|
|
+накопленный комплекс изменений применяется разом, чем обеспечивается
|
|
|
+согласованность изменений. При Cisco подходе похожее поведение также можно
|
|
|
+эмулировать, проектируя команды определенным образом, но для Cisco это менее
|
|
|
+естественный способ.
|
|
|
+
|
|
|
+Какой из подходов лучше и проще в конкретном случае - определяется задачей.
|
|
|
+Klish в первую очередь расчитан на подход Cisco, т.е. на немедленно выполняемые
|
|
|
+команды. Однако проект имеет систему плугинов, что позволяет расширять его
|
|
|
+возможности. Так плугин klish-plugin-sysrepo, реализованный отдельным проектом,
|
|
|
+работая на основе хранилища sysrepo, позволяет организовать Juniper подход.
|