|
@@ -182,15 +182,251 @@ KPath до поля комментария для интерфейса "eth1" б
|
|
|
```
|
|
|
|
|
|
### Команда `edit`
|
|
|
+
|
|
|
+При входе в режим конфигурирования, пользователь находится в "корне" дерева
|
|
|
+конфигурации, т.е. в корневом узле схемы. И все пути KPath, которые он указывает
|
|
|
+при работе с конфигурацией, являются полными (абсолютными) путями от корня
|
|
|
+схемы до искомого элемента. Это не всегда удобно, если настраивается подсистема
|
|
|
+с высокой степенью вложенности. Поэтому предусмотрена команда `edit`, которая
|
|
|
+меняет текущее положение пользователя в дереве конфигурации.
|
|
|
+
|
|
|
+```
|
|
|
+# edit <KPath>
|
|
|
+```
|
|
|
+
|
|
|
+Перемещение пользователя по дереву конфигурации подобно перемещению по
|
|
|
+директориям в файловой системе. Текущий путь в дереве конфигурации отображается
|
|
|
+в строке, предшествующей приглашению пользователя, внутри квадратных скобок
|
|
|
+после слова "edit".
|
|
|
+
|
|
|
+```
|
|
|
+[edit]
|
|
|
+# edit test iface eth0
|
|
|
+[edit test iface eth0]
|
|
|
+#
|
|
|
+```
|
|
|
+
|
|
|
+После смены текущего пути, все указания KPath становятся относительными.
|
|
|
+Относительно текущего положения в дереве конфигурации. Например указания KPath в
|
|
|
+командах `set` и `del` будут относительными.
|
|
|
+
|
|
|
+```
|
|
|
+[edit]
|
|
|
+# edit test iface eth0
|
|
|
+[edit test iface eth0]
|
|
|
+# set type ethernet
|
|
|
+[edit test iface eth0]
|
|
|
+# set comment "Comment with space"
|
|
|
+[edit test iface eth0]
|
|
|
+# del comment
|
|
|
+```
|
|
|
+
|
|
|
+Команда `edit` позволяет менять текущий путь только в направлении углубления
|
|
|
+вложенности. Команды `top`, `up`, `exit` позволяют двигаться по дереву в
|
|
|
+противоположном направлении.
|
|
|
+
|
|
|
+Обратите внимание, что в команде `edit` нельзя указывать список (узел "list")
|
|
|
+без указания ключа одного из его элементов.
|
|
|
+
|
|
|
+
|
|
|
### Команда `top`
|
|
|
+
|
|
|
+Команда `top` меняет текущий путь пользователя в дереве конфигурации на
|
|
|
+корневой элемент. Если пользователь уже находился в корне дерева, то ничего не
|
|
|
+происходит.
|
|
|
+
|
|
|
+```
|
|
|
+[edit test iface eth0]
|
|
|
+# top
|
|
|
+[edit]
|
|
|
+# top
|
|
|
+[edit]
|
|
|
+#
|
|
|
+```
|
|
|
+
|
|
|
+
|
|
|
### Команда `up`
|
|
|
+
|
|
|
+Команда `up` меняет текущий путь пользователя в дереве конфигурации на один
|
|
|
+уровень вложенности вверх. Т.е. выходит из текущего пути на один уровень. Если
|
|
|
+пользователь уже находится в корневом элементе дерева, то ничего не происходит.
|
|
|
+
|
|
|
+```
|
|
|
+[edit test iface eth0]
|
|
|
+# up
|
|
|
+[edit test]
|
|
|
+# up
|
|
|
+[edit]
|
|
|
+# up
|
|
|
+[edit]
|
|
|
+#
|
|
|
+```
|
|
|
+
|
|
|
+
|
|
|
### Команда `exit`
|
|
|
+
|
|
|
+Команда `exit` аналогична команде `up` с тем отличием, что будучи выполнена в
|
|
|
+корневом элементе дерева, выходит из режима конфигурирования.
|
|
|
+
|
|
|
+```
|
|
|
+[edit test iface eth0]
|
|
|
+# exit
|
|
|
+[edit test]
|
|
|
+# exit
|
|
|
+[edit]
|
|
|
+# exit
|
|
|
+>
|
|
|
+```
|
|
|
+
|
|
|
+
|
|
|
### Команда `insert`
|
|
|
+
|
|
|
+В YANG схеме может быть определен список (узел "list" или "leaf-list") с
|
|
|
+параметром "ordered-by user". Это означает, что последовательность элементов
|
|
|
+списка имеет значение и регулируется пользователем. Команда `insert` позволяет
|
|
|
+перемещать элементы внутри такого списка.
|
|
|
+
|
|
|
+```
|
|
|
+# insert <from_kpath> <first/last/before/after> [to_list_key]
|
|
|
+```
|
|
|
+
|
|
|
+Прежде чем перемещать элемент внутри списка, его надо создать. Несуществующие
|
|
|
+элементы перемещать нельзя.
|
|
|
+
|
|
|
+Первым параметром команды `insert` указывается KPath до того элемента, который
|
|
|
+нужно переместить. Далее ключевым словом указывается режим перемещения:
|
|
|
+
|
|
|
+* `first` - переместить элемент в начало списка.
|
|
|
+* `last` - переместить элемент в конец списка.
|
|
|
+* `before` - разместить элемент непосредственно перед элементом, указанным далее.
|
|
|
+* `after` - разместить элемент непосредственно после элемента, указанного далее.
|
|
|
+
|
|
|
+Для режимов `before` и `after` третьим параметром указывается ключ того
|
|
|
+элемента, относительно которого выбирается позиция. Обратите внимание, что тут
|
|
|
+указывается не KPath целиком, а только лишь ключ.
|
|
|
+
|
|
|
+```
|
|
|
+[edit]
|
|
|
+# show
|
|
|
+acl acl1
|
|
|
+acl acl2
|
|
|
+acl acl3
|
|
|
+[edit]
|
|
|
+# insert acl acl3 before acl1
|
|
|
+[edit]
|
|
|
+# show
|
|
|
+acl acl3
|
|
|
+acl acl1
|
|
|
+acl acl2
|
|
|
+[edit]
|
|
|
+# insert acl acl2 first
|
|
|
+[edit]
|
|
|
+# show
|
|
|
+acl acl2
|
|
|
+acl acl3
|
|
|
+acl acl1
|
|
|
+```
|
|
|
+
|
|
|
+
|
|
|
### Команда `commit`
|
|
|
+
|
|
|
+Команда `commit` подтверждает изменение конфигурации и копирует содержимое
|
|
|
+хранилища конфигурации `candidate` в хранилище `running`. После успешного
|
|
|
+выполнения команды, конфигурация, которую редактировал пользователь, применится
|
|
|
+в системе и станет действующей. Если `candidate` конфигурация содержит ошибки,
|
|
|
+которые могут быть проверены YANG-схемой, то действующая конфигурация изменена
|
|
|
+не будет, а на экране появится сообщение об ошибке.
|
|
|
+
|
|
|
+При записи конфигурации в хранилище `running`, также конфигурация будет записана
|
|
|
+в хранилище `startup`, чтобы в будущем "пережить" перезагрузку системы.
|
|
|
+
|
|
|
+
|
|
|
### Команда `check`
|
|
|
+
|
|
|
+Команда `check` проверяет корректность текущей редактируемой конфигурации
|
|
|
+относительно YANG-схемы. Успешное выполнение этой команды означает, что команда
|
|
|
+`commit` может быть выполнена без ошибок.
|
|
|
+
|
|
|
+
|
|
|
### Команда `rollback`
|
|
|
+
|
|
|
+Команда `rollback` позволяет откатить все изменения при редактировании
|
|
|
+конфигурации. Редактируемая конфигурация `candidate` вернется к состоянию
|
|
|
+действующей конфигурации `running`.
|
|
|
+
|
|
|
+
|
|
|
### Команда `show`
|
|
|
+
|
|
|
+Команда `show` показывает текущее состояние редактируемой конфигурации.
|
|
|
+
|
|
|
+```
|
|
|
+# show [kpath]
|
|
|
+```
|
|
|
+
|
|
|
+Опциональный параметр принимает путь KPath. В случае если KPath задан, то на
|
|
|
+экран будет выводиться содержание только указанной секции. По умолчанию команда
|
|
|
+`show` использует текущий путь пользователя в дереве конфигурации.
|
|
|
+
|
|
|
+```
|
|
|
+[edit]
|
|
|
+# show
|
|
|
+test
|
|
|
+ iface eth0
|
|
|
+ comment "Test desc"
|
|
|
+ type ethernet
|
|
|
+acl acl2
|
|
|
+acl acl3
|
|
|
+acl acl1
|
|
|
+[edit]
|
|
|
+# show test
|
|
|
+iface eth0
|
|
|
+ comment "Test desc"
|
|
|
+ type ethernet
|
|
|
+```
|
|
|
+
|
|
|
+
|
|
|
### Команда `diff`
|
|
|
+
|
|
|
+Команда `diff` показывает разницу между редактируемой и действующей
|
|
|
+конфигурациями.
|
|
|
+
|
|
|
+```
|
|
|
+[edit]
|
|
|
+# show
|
|
|
+test
|
|
|
+ iface eth0
|
|
|
+ comment "Test desc"
|
|
|
+ type ethernet
|
|
|
+acl acl2
|
|
|
+acl acl3
|
|
|
+acl acl1
|
|
|
+#
|
|
|
+# <Тут изменения конфигурации>
|
|
|
+#
|
|
|
+[edit]
|
|
|
+# show
|
|
|
+test
|
|
|
+ iface eth0
|
|
|
+ comment "New comment"
|
|
|
+ type ethernet
|
|
|
+acl acl2
|
|
|
+acl acl1
|
|
|
+acl acl4
|
|
|
+## diff
|
|
|
+test
|
|
|
+ iface eth0
|
|
|
+= comment "New comment"
|
|
|
+-acl acl3
|
|
|
++acl acl4
|
|
|
+```
|
|
|
+
|
|
|
+Вновь добавленные строки обозначаются символом `+` в начале строки и зеленым
|
|
|
+цветом (если включена подсветка). Удаленные строки обозначаются символом `-` в
|
|
|
+начале строки и красным цветом (если включена подсветка). Измененные строки
|
|
|
+обозначаются символом `=` в начале строки и желтым цветом (если включена
|
|
|
+подсветка).
|
|
|
+
|
|
|
+
|
|
|
### Команда `do`
|
|
|
|
|
|
|