Общие сведения об автоматизации в JunOS: различия между версиями

Материал из Juniper Exam Wiki
Перейти к навигации Перейти к поиску
 
(не показаны 4 промежуточные версии этого же участника)
Строка 29: Строка 29:
Может использоваться несколько commit scripts. Каждый работает с одинаковой копией candidate config. Commit scripts применяются в порядке написания в конфиге. Те секции конфига, которые уже подверглись обработке более приоритетным скриптом не будут подвергаться обработке следующих скриптов.
Может использоваться несколько commit scripts. Каждый работает с одинаковой копией candidate config. Commit scripts применяются в порядке написания в конфиге. Те секции конфига, которые уже подверглись обработке более приоритетным скриптом не будут подвергаться обработке следующих скриптов.


*'''Event Automation''' - скрипт, реагирующий на определенные события на оборудовании. Собирает соответствующую информацию об устранении неполадок и применяет их при возникновении аварийных триггеров. Также автоматизирует ответы на события, предоставляю набор действий.
*'''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.''
 
=Полезные ссылки=
* [https://github.com/phylocko/slax-tools Скрипты для автоматизации рутинных задач в JunOS]
=Дополнительная информация=
*[[Основы автоматизации на SLAX]]
*[[Пример программы на SLAX]]

Текущая версия на 18:06, 15 июля 2021

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.

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

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