Общие сведения об автоматизации в JunOS: различия между версиями
(не показано 5 промежуточных версий этого же участника) | |||
Строка 23: | Строка 23: | ||
*'''Conguration Automation''' - действует когда вызывается config/commit операций. Представление сложных конфигов в несколько понятных и доступных команд. Можно использовать опции, обеспечивающие warnings, post loggs, self-correct, prevent the configuration. Дает возможность соблюдать политики безопасности компании, упрощает и ускоряет процесс настройки. | *'''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. | В качестве source tree = candidate config, stylesheet tree = commit script, result tree = набор XML блоков, кот могут изменить candidate config, warnings, prevent the config to become active. | ||
Строка 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.