Общие сведения об автоматизации в JunOS

Материал из Juniper Exam Wiki
(разн.) ← Предыдущая | Текущая версия (разн.) | Следующая → (разн.)
Перейти к навигации Перейти к поиску

Junos scripts могут быть написаны на SLAX или XSLT. XSLT активно использует XPath и XML.

XML input (source tree)+ Your Script (stylesheet tree) = XML output (result tree)

XSLT - немного неудобен, особенно для написания сложных программ, поэтому Junier использует свою модификацию, которая называется SLAX.

Junos Automation Scripts бывают 3х видов:

  • Operations Automation - создание команд для мониторинга сети, скрипт для изменения конфига (под контролем/проверкой), специальные команды для определенных целей и нужд юзеров. Все это дает возможность уменьшить риски ошибок, автоматизировать troubleshooting.

Вызываются обычно из CLI, op scripts могут автоматизировать те действия, которые сам user может ввести вручную.

CLI команды и XML RPC (API remote procedure called ) выглядит не одинаково. Чтобы узнать как выглядит XML RPC, можно через "|" указать "| display xml rpc"

blair> show interfaces descriptions | display xml rpc 
<rpc-reply xmlns:junos="http://xml.juniper.net/junos/12.1X47/junos">
   <rpc>
       <get-interface-information>
               <descriptions/>
       </get-interface-information>
   </rpc>


  • Conguration Automation - действует когда вызывается config/commit операций. Представление сложных конфигов в несколько понятных и доступных команд. Можно использовать опции, обеспечивающие warnings, post loggs, self-correct, prevent the configuration. Дает возможность соблюдать политики безопасности компании, упрощает и ускоряет процесс настройки.

Commit scripts вызываются каждый раз при commit (commit confirmed). Используются для изменения candidate config, для обнаружения проблем с конфигом, для предотвращения, чтобы config стал активным. Также скрипты могут использовать operational команды.

В качестве source tree = candidate config, stylesheet tree = commit script, result tree = набор XML блоков, кот могут изменить candidate config, warnings, prevent the config to become active.

Может использоваться несколько commit scripts. Каждый работает с одинаковой копией candidate config. Commit scripts применяются в порядке написания в конфиге. Те секции конфига, которые уже подверглись обработке более приоритетным скриптом не будут подвергаться обработке следующих скриптов.

  • Event Automation - скрипт, реагирующий на определенные события на оборудовании. Собирает соответствующую информацию об устранении неполадок и применяет их при возникновении аварийных триггеров. Также автоматизирует ответы на события, предоставляя набор действий. Например operationl commands, config changes, logging.

Обычно выполняются из под root, но можно задать и любой другой user content.

source tree = XML event-script-input, stylesheet tree = event script, result tree = XML block event-script-result.

Global variables Скрипты имеют доступ до глобальных переменных: $hostname, $product, $script, $user, ...

&junos-context - глобальная переменная, которая хранит в себе мелкие переменные, которые можно будет использовать при запуске скрипта. Это удобно с точки зрения масштабируемости.

Все скрипты хранятся на устройстве.

  • пишем скрипт на компе (удобно использовать разные text editor, поддерживающие XML синтаксис. Support SLAX in jEdit and Eclipse).
  • копируем скрипт на Juniper устройство в нужную директорию: /var/run/scripts. Далее для каждого типа скрипта есть своя папочка.

/var/run/scripts/import - не трогать - это только для Juniper

/var/run/scripts/lib - можно сюда файлы, которые используются в скриптах.

  • тестируем и отлаживаем скрипт. Чтобы скрипт заработал, активируем его
[edit system scripts op] 
set file my-op-script.slax
[edit system scripts commit] 
set file my-commit-script.slax
[edit event-options event-script] 
set file my-event-script.slax

Редактировать можно будет на самом Juniper.

Debug:

  • syntax. Можно использовать slaxproc еще до загрузки на устройство.
  • logic. В коде скрипта можно использовать для отладки: print, traceoptions, trace, progress.

Полезные ссылки

Дополнительная информация