|
@@ -16,6 +16,8 @@ klish-plugin-sysrepo, похож на подход, применяемый в м
|
|
|
|
|
|
Схема конфигурация описана YANG файлами, а доступ и редактирование элементов
|
|
|
конфигурации осуществляется с помощью специальных команд, доступных из klish.
|
|
|
+Всю информацию об используемой YANG схеме klish-plugin-sysrepo получает из
|
|
|
+Sysrepo автоматически.
|
|
|
|
|
|
Проект содержит файл `xml/sysrepo.xml`, который, будучи добавленным к файлам
|
|
|
конфигурации klish, объявляет новый `VIEW` с именем "sysrepo". Этот `VIEW`
|
|
@@ -24,9 +26,6 @@ klish-plugin-sysrepo, похож на подход, применяемый в м
|
|
|
библиотеки [`libyang`](#https://github.com/CESNET/libyang). Проекты Sysrepo,
|
|
|
libyang и klish требуются для сборки и работы модуля klish-plugin-sysrepo.
|
|
|
|
|
|
-Далее будут описаны команды работы с конфигурацией, объявленные в
|
|
|
-`xml/sysrepo.xml`.
|
|
|
-
|
|
|
|
|
|
## Хранилище конфигурации
|
|
|
|
|
@@ -122,6 +121,8 @@ KPath до поля комментария для интерфейса "eth1" б
|
|
|
# set test iface eth0 type ethernet comment "Comment with space"
|
|
|
```
|
|
|
|
|
|
+В одной строке задается значение типа интерфейса и комментарий. Тут, собственно,
|
|
|
+путь прерывается значениями полей.
|
|
|
|
|
|
|
|
|
## Команды конфигурирования
|
|
@@ -129,7 +130,57 @@ KPath до поля комментария для интерфейса "eth1" б
|
|
|
|
|
|
### Команда `set`
|
|
|
|
|
|
+Команда `set` позволяет установить значение элемента конфигурации.
|
|
|
+
|
|
|
+```
|
|
|
+# set <KPath> <value>
|
|
|
+```
|
|
|
+
|
|
|
+Чтобы выбрать какому именно элементу следует присвоить значение, указывается
|
|
|
+[путь KPath](#путь-kpath) до этого элемента а затем само значение. Если значение
|
|
|
+содержит пробелы, то должно заключаться в кавычки.
|
|
|
+
|
|
|
+Здесь элементу, имеющему KPath `test iface eth0 type` присваивается значение
|
|
|
+`ethernet`:
|
|
|
+
|
|
|
+```
|
|
|
+# set test iface eth0 type ethernet
|
|
|
+```
|
|
|
+
|
|
|
+Команда `set` может присвоить значения сразу нескольким элементам конфигурации.
|
|
|
+Читайте про "однострочники" в разделе ["Путь KPath"](#путь-kpath). Пример
|
|
|
+однострочника:
|
|
|
+
|
|
|
+```
|
|
|
+# set test iface eth0 type ethernet comment "Comment with space"
|
|
|
+```
|
|
|
+
|
|
|
+При указании пути KPath команде `set` не обязательно, чтобы все компоненты пути
|
|
|
+уже существовали. Команды из приведенных примеров будут работать даже если
|
|
|
+интерфейс "eth0" еще не был создан в конфигурации. Недостающие компоненты пути
|
|
|
+будут созданы автоматически.
|
|
|
+
|
|
|
+
|
|
|
### Команда `del`
|
|
|
+
|
|
|
+Команда `del` удаляет значение элемента, либо целую ветку конфигурации.
|
|
|
+
|
|
|
+```
|
|
|
+# del <KPath>
|
|
|
+```
|
|
|
+
|
|
|
+Например можно удалить комментарий для интрерфейса:
|
|
|
+
|
|
|
+```
|
|
|
+# del test iface eth0 comment
|
|
|
+```
|
|
|
+
|
|
|
+А можно удалить все настройки для интерфейса "eth0":
|
|
|
+
|
|
|
+```
|
|
|
+# del test iface eth0
|
|
|
+```
|
|
|
+
|
|
|
### Команда `edit`
|
|
|
### Команда `top`
|
|
|
### Команда `up`
|
|
@@ -152,15 +203,88 @@ KPath до поля комментария для интерфейса "eth1" б
|
|
|
|
|
|
### Настройка `JuniperLikeShow`
|
|
|
|
|
|
+Поле может принимать значения `y` и `n`. В случае, если задано `y`, то команды,
|
|
|
+показывающие конфигурацию, отображают ее в виде похожем на то, как конфиг
|
|
|
+выглядит в системах Juniper. С фигурными скобками, выделяющими секции и символом
|
|
|
+`;` в конце строк с "листьями" (узлы `leaf`).
|
|
|
+
|
|
|
+```
|
|
|
+test {
|
|
|
+ iface eth0 {
|
|
|
+ comment "Test desc";
|
|
|
+ type ethernet;
|
|
|
+ }
|
|
|
+}
|
|
|
+```
|
|
|
+
|
|
|
+Если задано значение `n`, то конфигурация будет отображаться в более кратком и
|
|
|
+простом виде. Структура секций помечается отступами.
|
|
|
+
|
|
|
+```
|
|
|
+test
|
|
|
+ iface eth0
|
|
|
+ comment "Test desc"
|
|
|
+ type ethernet
|
|
|
+```
|
|
|
+
|
|
|
|
|
|
### Настройка `FirstKeyWithStatement`
|
|
|
|
|
|
+У списков (узел `list`) может быть не один ключ, для идентификации нужного
|
|
|
+элемента, а сразу несколько. Данное поле настройки относится только к первому
|
|
|
+ключу списка. Поле может принимать значения `y` или `n`. Если задано значение
|
|
|
+`y`, то при указании KPath или отображении конфигурации, перед значением ключа,
|
|
|
+будет указываться имя элемента.
|
|
|
+
|
|
|
+Например оператор устанавливает значение элемента `type` для интерфейса:
|
|
|
+
|
|
|
+```
|
|
|
+# set test iface name eth0 type ethernet
|
|
|
+```
|
|
|
+
|
|
|
+В KPath появился элемент `name`, который показывает название (а не только
|
|
|
+значение) ключевого элемента. Та же самая конструкция, если
|
|
|
+`FirstKeyWithStatement = n` будет выглядеть так:
|
|
|
+
|
|
|
+```
|
|
|
+# set test iface eth0 type ethernet
|
|
|
+```
|
|
|
+
|
|
|
|
|
|
### Настройка `MultiKeysWithStatement`
|
|
|
|
|
|
+Настройка аналогична полю `FirstKeyWithStatement`, только относится ко всем
|
|
|
+ключевым элементам списка кроме первого.
|
|
|
+
|
|
|
+Предположим, что ключами списка "интерфейсы" являются сразу и поле `name` и поле
|
|
|
+`type`. Еще предположим что `FirstKeyWithStatement = n`. Команда установки
|
|
|
+"комментария" для интерфейса будет выглядеть следующим образом, если
|
|
|
+`MultiKeysWithStatement = y`:
|
|
|
+
|
|
|
+```
|
|
|
+# set test iface eth0 type ethernet comment "Comment"
|
|
|
+```
|
|
|
+
|
|
|
+Если `MultiKeysWithStatement = n` то следующим образом:
|
|
|
+
|
|
|
+```
|
|
|
+# set test iface eth0 ethernet comment "Comment"
|
|
|
+```
|
|
|
+
|
|
|
|
|
|
### Настройка `Colorize`
|
|
|
|
|
|
+Поле может принимать значения `y` и `n`. В случае, если задано `y`, то при
|
|
|
+отображении конфигурации или изменений в конфигурации, характерные элементы
|
|
|
+будут выделяться цветом.
|
|
|
+
|
|
|
+> Сейчас цветовое выделение реализовано только в команде `diff`. Новые элементы
|
|
|
+> выделяются зеленым, удаленные - красным, а те, что изменили свое значение -
|
|
|
+> желтым.
|
|
|
+
|
|
|
+Некоторые терминалы, в основном устаревшие, могут не поддерживать цвета. Поэтому
|
|
|
+в каких то случаях может быть полезно отключить настройку `Colorize`.
|
|
|
+
|
|
|
|
|
|
### Пример настройки модуля
|
|
|
|