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

Материал из Juniper Exam Wiki
Перейти к навигации Перейти к поиску
(Новая страница: «Junos scripts могут быть написаны на SLAX или XSLT. XSLT активно использует XPath и XML. XML input (source tree)+ Your Sc…»)
 
 
(не показано 6 промежуточных версий этого же участника)
Строка 7: Строка 7:
Junos Automation Scripts бывают 3х видов:
Junos Automation Scripts бывают 3х видов:
*'''Operations Automation''' - создание команд для мониторинга сети, скрипт для изменения конфига (под контролем/проверкой), специальные команды для определенных целей и нужд юзеров. Все это дает возможность уменьшить риски ошибок, автоматизировать troubleshooting.
*'''Operations Automation''' - создание команд для мониторинга сети, скрипт для изменения конфига (под контролем/проверкой), специальные команды для определенных целей и нужд юзеров. Все это дает возможность уменьшить риски ошибок, автоматизировать troubleshooting.
*'''Conguration Automation''' - действует во время config/commit операций. Представление сложных конфигов в несколько понятных и доступных команд. Можно использовать опции, обеспечивающие warnings, post loggs, self-correct, prevent the configuration. Дает возможность соблюдать политики безопасности компании, упрощает и ускоряет процесс настройки.
 
*'''Event Automation''' - скрипт, реагирующий на определенные события на оборудовании. Собирает соответствующую информацию об устранении неполадок и применяет их при возникновении аварийных триггеров. Также автоматизирует ответы на события, предоставляю набор действий.
Вызываются обычно из 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.''
 
=Полезные ссылки=
* [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.

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

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