【interop tokyo 2016】 進化を続けるjunos automation
TRANSCRIPT
進化を続けるJUNOS Automation〜運用コストを下げる自動化とは?〜
ジュニパーネットワークス株式会社
2016年6月
Interop Tokyo 2016
Legal Disclaimer
本資料に記載されている機能や構成、ロードマップ情報などは、資料作成時点におけるジュニパーネットワークスの仕様や予定を示したものであり、事前の通告無しに内容が変更されることがあります。
本資料は技術情報の提供を目的としたものであり、機器、機器の機能、サービスなどに関して保証を行うものではありませんので、ご注意ください。
ネットワートワークの自動化への期待は?(複数回答可)
• 設定変更時の運用負荷の軽減• 作業ミスの削減
オペレーションで時間がかかる作業は?(複数回答可)
コンフィグのチェック、実機での検証の作業が多い
作業ミスによるサービス影響の経験は?
作業ミスでシステムを停止させた経験のある方は全体の60%
作業ミスを挽回するために、どこに労力をかけましたか?(複数回答可)
運用コストに影響
ネットワーク自動化への期待
運用コストの低減
新しい事への
チャレンジ
運用負荷の低減
作業の質の向上
ミス撲滅
JUNOS Automation
Junos Automation ポートフォリオ
お客様のテクニカル面、ビジネス面での問題を全てのエリアで解決
PlatformPlatform Automationネットワーク機器に対し、作業を自動化するために、プログラム的なアクセスを提供する
<SLAX>
NetworkNetwork Automationプラットフォームの抽象化により、NaaSとして運用するモデル。ネットワークは1つのentityとして扱われます
DomainDomain AutomationNaaSコンセプトを採用し、compute, storageなどを含むドメイン全体へ拡張
運用ワークフローと自動化
構築
設定運用
PlanDeploy
TroubleshootAudit
Configuration ChangesSoftware Management
PyEZ
Junos Script(Event option)
JSNAP
Netconf / DMI
Operate
Chef
Puppet
Ansible
PyEZ
Configure
ZTP
Ansible
OpenClos
Build
ZTP(構築フェイズ)
AutomationZTP(Zero-touch Provisioning)
Zero Touch Provisioningは、
自動的にコンフィグレーションを取得することで、
機器を箱からあけたら即ネットワークに繋ぐことができるしくみ。
構築
ZTPと従来のオペレーションとの比較
Legacy Ops
ZTP
開梱
開梱ネットワークに接続して起動
ZTP サービスイン
起動してコンソールからセットアップ
ネットワークに接続
OSバージョンアップ・ダウン
初期設定 サービスイン
膨大な数のスイッチを設置しなくてはいけないデータセンターやキャンパス
大量の出荷検査やバージョンアップ作業等に効果的
構築
ZTPのコンポーネント
DHCPサーバ
ファイルサーバ
EX/QFXスイッチ
スイッチ毎の設定MACアドレスかシリアルコンフィグファイル名OSファイル名
コンフィグファイルJUNOSイメージ
構築
動作シーケンス
DHCPサーバ
EX/QFXスイッチ
2. DHCP Discover/Request
4. File Request(指定されたファイル名)
5. Download files
1. デフォルト設定で起動ZTPスタート!
3. DHCP Offer/ACK(ファイルサーバ+ファイル名)
6. ダウンロードしたファイルでOSとConfigを書き換えcommit
スイッチ毎の設定MACアドレスかシリアルコンフィグファイル名OSファイル名
コンフィグファイルJUNOSイメージ
構築
ファイルサーバ
応用事例EzZTP
• Juniper SwitchのZTPを手軽に試してみるためのソフト(OSS)
– https://github.com/kazubu/ezztp
• VMware上で動作するOVAパッケージとして提供
– https://github.com/kazubu/ezztp/releases/tag/r77
全般設定Junos Image管理
Junos Config
テンプレート
管理スイッチ(VC)の管理
管理対象機器
(ToR)の管理
構築
PyEZ(設定フェイズ)
運用ワークフローと自動化
構築
設定運用
PlanDeploy
TroubleshootAudit
Configuration ChangesSoftware Management
PyEZ
Junos Script(Event option)
JSNAP
Netconf / DMI
Operate
Chef
Puppet
Ansible
PyEZ
Configure
ZTP
Ansible
OpenClos
Build
Python on Box and PyEZ
• Off BoxサポートJUNOS 11.4以降, Python 2.7
• On BoxサポートJUNOS 16.1以降Python Op, Event, Commitスクリプト対応
• PyEZとは、シンプルかつ強力な、JUNOSを操作するためのPythonライブラリ
19
Junos Automation Scripts
EventDMGD
cscriptlibSLAX
libPython
PyEZ
設定
運用
Raw Python – 48 lines
どのスクリプトでも「show version」の情報を取得
ncclient – 19 lines
PyEZ – 7 lines (and gathers more info)
PyEZを使用するメリット設定
運用
ユースケースPyEZを使用したWebアプリの開発
NETCONF/SSH
Web Server+PythonCGI+Juniper PyEz
HTTP/HTTPS
設定
運用
PyEZを利用したWebアプリ
機器の探索と情報取得
機器の一覧表示と、showコマンド等の実行
SET形式設定の一括投入
JUNOS OSインストール
サポート情報(RSI)取得結果の一覧
OSイメージ管理
PyEZを利用したWeb CGIアプリ。Pythonが書ければ、ユーザ自身で機能拡張が可能。
設定
運用
JSNAP(運用フェイズ)
運用ワークフローと自動化
構築
設定運用
PlanDeploy
TroubleshootAudit
Configuration ChangesSoftware Management
PyEZ
Junos Script(Event option)
JSNAP
Netconf / DMI
Operate
Chef
Puppet
Ansible
PyEZ
Configure
ZTP
Ansible
OpenClos
Build
JSNAPユースケース
今日、数十台の設定変更をしたけど、本当に
正常状態に戻ってる?
稼働中の機器は当初の設計通りの
設定と運用状態になってる?
CASE1 CASE2
運用
JSNAP
Security
RoutingSwitchi
ng
A
P
I
SREQUEST - RESPONSE
PRE SNAPSHOT
POST SNAPSHOT
FINAL OUTPUT
運用
config / 各種状態を保存、比較する運用支援ツール
CASE1. 作業前後の状態確認
作業手順0. 事前確認作業
JSNAPで機器の事前状態を取得:
N. 事後確認作業JSNAP機器の事後状態を取得
スナップショット(1), (2)を比較
JSNAPで作業前の状態を保存しておけば、
状態比較もカンタン!
JSNAP
JSNAP
スナップショット(1)
スナップショット(2)
JSNAPサーバ(Linux)
Netconf
JSNAP
使用手順サービス開始時機器の正常状態をJSNAPで定義(リソース消費、プロトコル状態)
確認作業任意のタイミングで、機器状態を取得
サービス定義ファイルと、スナップショットを比較
サービス定義ファイル
スナップショット
JSNAPサーバ(Linux)
Netconf
CASE2. 設計通りの運用状態?
設計情報を基に、いつでも、何台でも正常性確認が簡単にできるよ
JSNAP
みなさんの運用を楽に…
運用コストの低減
新たな課題へチャレンジ
運用負荷の低減
作業の質の向上
ミス撲滅
Thank you