Submit Search
Upload
VIRLとPyATSで実現するネットワークCI
•
6 likes
•
2,481 views
T
tetsusat
Follow
Ciscoソフトウェア&プログラマビリティ勉強会 #1
Read less
Read more
Technology
Report
Share
Report
Share
1 of 46
Recommended
細かすぎて伝わらないかもしれない Azure Container Networking Deep Dive
細かすぎて伝わらないかもしれない Azure Container Networking Deep Dive
Toru Makabe
AvailabilityZoneとHostAggregate
AvailabilityZoneとHostAggregate
Hiroki Ishikawa
日本OpenStackユーザ会 第37回勉強会
日本OpenStackユーザ会 第37回勉強会
Yushiro Furukawa
明日からはじめるネットワーク運用自動化
明日からはじめるネットワーク運用自動化
Taiji Tsuchiya
ブレソルでテラバイト級データのALTERを短時間で終わらせる
ブレソルでテラバイト級データのALTERを短時間で終わらせる
KLab Inc. / Tech
#ljstudy KVM勉強会
#ljstudy KVM勉強会
Etsuji Nakai
PGOを用いたPostgreSQL on Kubernetes入門(PostgreSQL Conference Japan 2022 発表資料)
PGOを用いたPostgreSQL on Kubernetes入門(PostgreSQL Conference Japan 2022 発表資料)
NTT DATA Technology & Innovation
PostgreSQLをKubernetes上で活用するためのOperator紹介!(Cloud Native Database Meetup #3 発表資料)
PostgreSQLをKubernetes上で活用するためのOperator紹介!(Cloud Native Database Meetup #3 発表資料)
NTT DATA Technology & Innovation
Recommended
細かすぎて伝わらないかもしれない Azure Container Networking Deep Dive
細かすぎて伝わらないかもしれない Azure Container Networking Deep Dive
Toru Makabe
AvailabilityZoneとHostAggregate
AvailabilityZoneとHostAggregate
Hiroki Ishikawa
日本OpenStackユーザ会 第37回勉強会
日本OpenStackユーザ会 第37回勉強会
Yushiro Furukawa
明日からはじめるネットワーク運用自動化
明日からはじめるネットワーク運用自動化
Taiji Tsuchiya
ブレソルでテラバイト級データのALTERを短時間で終わらせる
ブレソルでテラバイト級データのALTERを短時間で終わらせる
KLab Inc. / Tech
#ljstudy KVM勉強会
#ljstudy KVM勉強会
Etsuji Nakai
PGOを用いたPostgreSQL on Kubernetes入門(PostgreSQL Conference Japan 2022 発表資料)
PGOを用いたPostgreSQL on Kubernetes入門(PostgreSQL Conference Japan 2022 発表資料)
NTT DATA Technology & Innovation
PostgreSQLをKubernetes上で活用するためのOperator紹介!(Cloud Native Database Meetup #3 発表資料)
PostgreSQLをKubernetes上で活用するためのOperator紹介!(Cloud Native Database Meetup #3 発表資料)
NTT DATA Technology & Innovation
eBPFを用いたトレーシングについて
eBPFを用いたトレーシングについて
さくらインターネット株式会社
LXC入門 - Osc2011 nagoya
LXC入門 - Osc2011 nagoya
Masahide Yamamoto
【解説】IKE(IIJ Kubernetes Engine):= Vanilla Kubernetes + 何?
【解説】IKE(IIJ Kubernetes Engine):= Vanilla Kubernetes + 何?
IIJ
Kubernetes 基盤における非機能試験の deepdive(Kubernetes Novice Tokyo #17 発表資料)
Kubernetes 基盤における非機能試験の deepdive(Kubernetes Novice Tokyo #17 発表資料)
NTT DATA Technology & Innovation
Cisco Modeling Labs (CML)を使ってネットワークを学ぼう!(DevNet編)
Cisco Modeling Labs (CML)を使ってネットワークを学ぼう!(DevNet編)
シスコシステムズ合同会社
わかる!metadata.managedFields / Kubernetes Meetup Tokyo 48
わかる!metadata.managedFields / Kubernetes Meetup Tokyo 48
Preferred Networks
CDNの仕組み(JANOG36)
CDNの仕組み(JANOG36)
J-Stream Inc.
Linux KVMではじめるカンタン仮想化入門
Linux KVMではじめるカンタン仮想化入門
VirtualTech Japan Inc.
急速に進化を続けるCNIプラグイン Antrea
急速に進化を続けるCNIプラグイン Antrea
Motonori Shindo
initとプロセス再起動
initとプロセス再起動
Takashi Takizawa
コンテナネットワーキング(CNI)最前線
コンテナネットワーキング(CNI)最前線
Motonori Shindo
コンテナセキュリティにおける権限制御(OCHaCafe5 #3 Kubernetes のセキュリティ 発表資料)
コンテナセキュリティにおける権限制御(OCHaCafe5 #3 Kubernetes のセキュリティ 発表資料)
NTT DATA Technology & Innovation
containerdの概要と最近の機能
containerdの概要と最近の機能
Kohei Tokunaga
最近のOpenStackを振り返ってみよう
最近のOpenStackを振り返ってみよう
Takashi Kajinami
BuildKitの概要と最近の機能
BuildKitの概要と最近の機能
Kohei Tokunaga
CloudStack再入門!15分でおさらいするCloudStackの基礎
CloudStack再入門!15分でおさらいするCloudStackの基礎
Satoshi Shimazaki
サポート エンジニアが Azure Networking をじっくりたっぷり語りつくす会
サポート エンジニアが Azure Networking をじっくりたっぷり語りつくす会
ShuheiUda
Grafana LokiではじめるKubernetesロギングハンズオン(NTT Tech Conference #4 ハンズオン資料)
Grafana LokiではじめるKubernetesロギングハンズオン(NTT Tech Conference #4 ハンズオン資料)
NTT DATA Technology & Innovation
"SRv6の現状と展望" ENOG53@上越
"SRv6の現状と展望" ENOG53@上越
Kentaro Ebisawa
DBスキーマもバージョン管理したい!
DBスキーマもバージョン管理したい!
kwatch
20170804 IOS/IOS-XE運用管理機能アップデート
20170804 IOS/IOS-XE運用管理機能アップデート
Kazumasa Ikuta
IOS/IOS-XE 運用管理機能アップデート
IOS/IOS-XE 運用管理機能アップデート
シスコシステムズ合同会社
More Related Content
What's hot
eBPFを用いたトレーシングについて
eBPFを用いたトレーシングについて
さくらインターネット株式会社
LXC入門 - Osc2011 nagoya
LXC入門 - Osc2011 nagoya
Masahide Yamamoto
【解説】IKE(IIJ Kubernetes Engine):= Vanilla Kubernetes + 何?
【解説】IKE(IIJ Kubernetes Engine):= Vanilla Kubernetes + 何?
IIJ
Kubernetes 基盤における非機能試験の deepdive(Kubernetes Novice Tokyo #17 発表資料)
Kubernetes 基盤における非機能試験の deepdive(Kubernetes Novice Tokyo #17 発表資料)
NTT DATA Technology & Innovation
Cisco Modeling Labs (CML)を使ってネットワークを学ぼう!(DevNet編)
Cisco Modeling Labs (CML)を使ってネットワークを学ぼう!(DevNet編)
シスコシステムズ合同会社
わかる!metadata.managedFields / Kubernetes Meetup Tokyo 48
わかる!metadata.managedFields / Kubernetes Meetup Tokyo 48
Preferred Networks
CDNの仕組み(JANOG36)
CDNの仕組み(JANOG36)
J-Stream Inc.
Linux KVMではじめるカンタン仮想化入門
Linux KVMではじめるカンタン仮想化入門
VirtualTech Japan Inc.
急速に進化を続けるCNIプラグイン Antrea
急速に進化を続けるCNIプラグイン Antrea
Motonori Shindo
initとプロセス再起動
initとプロセス再起動
Takashi Takizawa
コンテナネットワーキング(CNI)最前線
コンテナネットワーキング(CNI)最前線
Motonori Shindo
コンテナセキュリティにおける権限制御(OCHaCafe5 #3 Kubernetes のセキュリティ 発表資料)
コンテナセキュリティにおける権限制御(OCHaCafe5 #3 Kubernetes のセキュリティ 発表資料)
NTT DATA Technology & Innovation
containerdの概要と最近の機能
containerdの概要と最近の機能
Kohei Tokunaga
最近のOpenStackを振り返ってみよう
最近のOpenStackを振り返ってみよう
Takashi Kajinami
BuildKitの概要と最近の機能
BuildKitの概要と最近の機能
Kohei Tokunaga
CloudStack再入門!15分でおさらいするCloudStackの基礎
CloudStack再入門!15分でおさらいするCloudStackの基礎
Satoshi Shimazaki
サポート エンジニアが Azure Networking をじっくりたっぷり語りつくす会
サポート エンジニアが Azure Networking をじっくりたっぷり語りつくす会
ShuheiUda
Grafana LokiではじめるKubernetesロギングハンズオン(NTT Tech Conference #4 ハンズオン資料)
Grafana LokiではじめるKubernetesロギングハンズオン(NTT Tech Conference #4 ハンズオン資料)
NTT DATA Technology & Innovation
"SRv6の現状と展望" ENOG53@上越
"SRv6の現状と展望" ENOG53@上越
Kentaro Ebisawa
DBスキーマもバージョン管理したい!
DBスキーマもバージョン管理したい!
kwatch
What's hot
(20)
eBPFを用いたトレーシングについて
eBPFを用いたトレーシングについて
LXC入門 - Osc2011 nagoya
LXC入門 - Osc2011 nagoya
【解説】IKE(IIJ Kubernetes Engine):= Vanilla Kubernetes + 何?
【解説】IKE(IIJ Kubernetes Engine):= Vanilla Kubernetes + 何?
Kubernetes 基盤における非機能試験の deepdive(Kubernetes Novice Tokyo #17 発表資料)
Kubernetes 基盤における非機能試験の deepdive(Kubernetes Novice Tokyo #17 発表資料)
Cisco Modeling Labs (CML)を使ってネットワークを学ぼう!(DevNet編)
Cisco Modeling Labs (CML)を使ってネットワークを学ぼう!(DevNet編)
わかる!metadata.managedFields / Kubernetes Meetup Tokyo 48
わかる!metadata.managedFields / Kubernetes Meetup Tokyo 48
CDNの仕組み(JANOG36)
CDNの仕組み(JANOG36)
Linux KVMではじめるカンタン仮想化入門
Linux KVMではじめるカンタン仮想化入門
急速に進化を続けるCNIプラグイン Antrea
急速に進化を続けるCNIプラグイン Antrea
initとプロセス再起動
initとプロセス再起動
コンテナネットワーキング(CNI)最前線
コンテナネットワーキング(CNI)最前線
コンテナセキュリティにおける権限制御(OCHaCafe5 #3 Kubernetes のセキュリティ 発表資料)
コンテナセキュリティにおける権限制御(OCHaCafe5 #3 Kubernetes のセキュリティ 発表資料)
containerdの概要と最近の機能
containerdの概要と最近の機能
最近のOpenStackを振り返ってみよう
最近のOpenStackを振り返ってみよう
BuildKitの概要と最近の機能
BuildKitの概要と最近の機能
CloudStack再入門!15分でおさらいするCloudStackの基礎
CloudStack再入門!15分でおさらいするCloudStackの基礎
サポート エンジニアが Azure Networking をじっくりたっぷり語りつくす会
サポート エンジニアが Azure Networking をじっくりたっぷり語りつくす会
Grafana LokiではじめるKubernetesロギングハンズオン(NTT Tech Conference #4 ハンズオン資料)
Grafana LokiではじめるKubernetesロギングハンズオン(NTT Tech Conference #4 ハンズオン資料)
"SRv6の現状と展望" ENOG53@上越
"SRv6の現状と展望" ENOG53@上越
DBスキーマもバージョン管理したい!
DBスキーマもバージョン管理したい!
Similar to VIRLとPyATSで実現するネットワークCI
20170804 IOS/IOS-XE運用管理機能アップデート
20170804 IOS/IOS-XE運用管理機能アップデート
Kazumasa Ikuta
IOS/IOS-XE 運用管理機能アップデート
IOS/IOS-XE 運用管理機能アップデート
シスコシステムズ合同会社
ACI Kubernetes Integration
ACI Kubernetes Integration
Takehiro Yokoishi
Cisco Connect Japan 2014: 実践 Cisco ACI (Application Centric Infrastructure)
Cisco Connect Japan 2014: 実践 Cisco ACI (Application Centric Infrastructure)
シスコシステムズ合同会社
CleanArchitecture with AssemblyDefinition in unity
CleanArchitecture with AssemblyDefinition in unity
NakanoYosuke1
1891件以上のカーネルの不具合修正に貢献した再現用プログラムを自動生成するsyzkallerのテスト自動化技術(NTT Tech Conference ...
1891件以上のカーネルの不具合修正に貢献した再現用プログラムを自動生成するsyzkallerのテスト自動化技術(NTT Tech Conference ...
NTT DATA Technology & Innovation
ITpro EXPO 2014: Cisco ACI ~データセンター運用の効率化と迅速なアプリケーション展開~
ITpro EXPO 2014: Cisco ACI ~データセンター運用の効率化と迅速なアプリケーション展開~
シスコシステムズ合同会社
OSSで作るOpenStack監視システム
OSSで作るOpenStack監視システム
satsuki fukazu
HeapStats: Introduction and Technical Preview
HeapStats: Introduction and Technical Preview
Yuji Kubota
シスコ装置を使い倒す!組込み機能による可視化からセキュリティ強化
シスコ装置を使い倒す!組込み機能による可視化からセキュリティ強化
シスコシステムズ合同会社
Data Factory V2 新機能徹底活用入門
Data Factory V2 新機能徹底活用入門
Keisuke Fujikawa
OpenVINOとAzure こう連携できるのでは?
OpenVINOとAzure こう連携できるのでは?
Hiroshi Ouchiyama
【Interop tokyo 2014】 “FlexPod” Cisco ACI とUCS Director により 実現される自動化 クラウド基盤
【Interop tokyo 2014】 “FlexPod” Cisco ACI とUCS Director により 実現される自動化 クラウド基盤
シスコシステムズ合同会社
【Interop tokyo 2014】 “FlexPod” Cisco ACIとUCS Directorにより実現される自動化 クラウド基盤
【Interop tokyo 2014】 “FlexPod” Cisco ACIとUCS Directorにより実現される自動化 クラウド基盤
シスコシステムズ合同会社
Cloudstack user group meeting in osaka
Cloudstack user group meeting in osaka
Naotaka Jay HOTTA
ExcelとPythonによる社会インフラシステムの設定ファイルの自動生成
ExcelとPythonによる社会インフラシステムの設定ファイルの自動生成
Fuminobu TAKEYAMA
CSCJ_Webcast_20180626_ACI.pdf
CSCJ_Webcast_20180626_ACI.pdf
yojitanaka2
Vitisのご紹介とAmazon EC2 F1体験デモ
Vitisのご紹介とAmazon EC2 F1体験デモ
Jun Ando
MySQL 5.7 & 最新開発状況 @ オープンソースカンファレンス20
MySQL 5.7 & 最新開発状況 @ オープンソースカンファレンス20
Ryusuke Kajiyama
【de:code 2020】 AI on IA 最新情報 ~ CPU で AI を上手に動かすための 5 つのヒント ~
【de:code 2020】 AI on IA 最新情報 ~ CPU で AI を上手に動かすための 5 つのヒント ~
日本マイクロソフト株式会社
Similar to VIRLとPyATSで実現するネットワークCI
(20)
20170804 IOS/IOS-XE運用管理機能アップデート
20170804 IOS/IOS-XE運用管理機能アップデート
IOS/IOS-XE 運用管理機能アップデート
IOS/IOS-XE 運用管理機能アップデート
ACI Kubernetes Integration
ACI Kubernetes Integration
Cisco Connect Japan 2014: 実践 Cisco ACI (Application Centric Infrastructure)
Cisco Connect Japan 2014: 実践 Cisco ACI (Application Centric Infrastructure)
CleanArchitecture with AssemblyDefinition in unity
CleanArchitecture with AssemblyDefinition in unity
1891件以上のカーネルの不具合修正に貢献した再現用プログラムを自動生成するsyzkallerのテスト自動化技術(NTT Tech Conference ...
1891件以上のカーネルの不具合修正に貢献した再現用プログラムを自動生成するsyzkallerのテスト自動化技術(NTT Tech Conference ...
ITpro EXPO 2014: Cisco ACI ~データセンター運用の効率化と迅速なアプリケーション展開~
ITpro EXPO 2014: Cisco ACI ~データセンター運用の効率化と迅速なアプリケーション展開~
OSSで作るOpenStack監視システム
OSSで作るOpenStack監視システム
HeapStats: Introduction and Technical Preview
HeapStats: Introduction and Technical Preview
シスコ装置を使い倒す!組込み機能による可視化からセキュリティ強化
シスコ装置を使い倒す!組込み機能による可視化からセキュリティ強化
Data Factory V2 新機能徹底活用入門
Data Factory V2 新機能徹底活用入門
OpenVINOとAzure こう連携できるのでは?
OpenVINOとAzure こう連携できるのでは?
【Interop tokyo 2014】 “FlexPod” Cisco ACI とUCS Director により 実現される自動化 クラウド基盤
【Interop tokyo 2014】 “FlexPod” Cisco ACI とUCS Director により 実現される自動化 クラウド基盤
【Interop tokyo 2014】 “FlexPod” Cisco ACIとUCS Directorにより実現される自動化 クラウド基盤
【Interop tokyo 2014】 “FlexPod” Cisco ACIとUCS Directorにより実現される自動化 クラウド基盤
Cloudstack user group meeting in osaka
Cloudstack user group meeting in osaka
ExcelとPythonによる社会インフラシステムの設定ファイルの自動生成
ExcelとPythonによる社会インフラシステムの設定ファイルの自動生成
CSCJ_Webcast_20180626_ACI.pdf
CSCJ_Webcast_20180626_ACI.pdf
Vitisのご紹介とAmazon EC2 F1体験デモ
Vitisのご紹介とAmazon EC2 F1体験デモ
MySQL 5.7 & 最新開発状況 @ オープンソースカンファレンス20
MySQL 5.7 & 最新開発状況 @ オープンソースカンファレンス20
【de:code 2020】 AI on IA 最新情報 ~ CPU で AI を上手に動かすための 5 つのヒント ~
【de:code 2020】 AI on IA 最新情報 ~ CPU で AI を上手に動かすための 5 つのヒント ~
Recently uploaded
論文紹介:Video-GroundingDINO: Towards Open-Vocabulary Spatio-Temporal Video Groun...
論文紹介:Video-GroundingDINO: Towards Open-Vocabulary Spatio-Temporal Video Groun...
Toru Tamaki
Amazon SES を勉強してみる その32024/04/26の勉強会で発表されたものです。
Amazon SES を勉強してみる その32024/04/26の勉強会で発表されたものです。
iPride Co., Ltd.
Utilizing Ballerina for Cloud Native Integrations
Utilizing Ballerina for Cloud Native Integrations
WSO2
論文紹介:Selective Structured State-Spaces for Long-Form Video Understanding
論文紹介:Selective Structured State-Spaces for Long-Form Video Understanding
Toru Tamaki
LoRaWAN スマート距離検出デバイスDS20L日本語マニュアル
LoRaWAN スマート距離検出デバイスDS20L日本語マニュアル
CRI Japan, Inc.
知識ゼロの営業マンでもできた!超速で初心者を脱する、悪魔的学習ステップ3選.pptx
知識ゼロの営業マンでもできた!超速で初心者を脱する、悪魔的学習ステップ3選.pptx
sn679259
Amazon SES を勉強してみる その22024/04/26の勉強会で発表されたものです。
Amazon SES を勉強してみる その22024/04/26の勉強会で発表されたものです。
iPride Co., Ltd.
LoRaWANスマート距離検出センサー DS20L カタログ LiDARデバイス
LoRaWANスマート距離検出センサー DS20L カタログ LiDARデバイス
CRI Japan, Inc.
論文紹介: The Surprising Effectiveness of PPO in Cooperative Multi-Agent Games
論文紹介: The Surprising Effectiveness of PPO in Cooperative Multi-Agent Games
atsushi061452
新人研修 後半 2024/04/26の勉強会で発表されたものです。
新人研修 後半 2024/04/26の勉強会で発表されたものです。
iPride Co., Ltd.
Recently uploaded
(10)
論文紹介:Video-GroundingDINO: Towards Open-Vocabulary Spatio-Temporal Video Groun...
論文紹介:Video-GroundingDINO: Towards Open-Vocabulary Spatio-Temporal Video Groun...
Amazon SES を勉強してみる その32024/04/26の勉強会で発表されたものです。
Amazon SES を勉強してみる その32024/04/26の勉強会で発表されたものです。
Utilizing Ballerina for Cloud Native Integrations
Utilizing Ballerina for Cloud Native Integrations
論文紹介:Selective Structured State-Spaces for Long-Form Video Understanding
論文紹介:Selective Structured State-Spaces for Long-Form Video Understanding
LoRaWAN スマート距離検出デバイスDS20L日本語マニュアル
LoRaWAN スマート距離検出デバイスDS20L日本語マニュアル
知識ゼロの営業マンでもできた!超速で初心者を脱する、悪魔的学習ステップ3選.pptx
知識ゼロの営業マンでもできた!超速で初心者を脱する、悪魔的学習ステップ3選.pptx
Amazon SES を勉強してみる その22024/04/26の勉強会で発表されたものです。
Amazon SES を勉強してみる その22024/04/26の勉強会で発表されたものです。
LoRaWANスマート距離検出センサー DS20L カタログ LiDARデバイス
LoRaWANスマート距離検出センサー DS20L カタログ LiDARデバイス
論文紹介: The Surprising Effectiveness of PPO in Cooperative Multi-Agent Games
論文紹介: The Surprising Effectiveness of PPO in Cooperative Multi-Agent Games
新人研修 後半 2024/04/26の勉強会で発表されたものです。
新人研修 後半 2024/04/26の勉強会で発表されたものです。
VIRLとPyATSで実現するネットワークCI
1.
VIRLとpyATSで実現するネットワークCI
2.
© 2018 Cisco
and/or its affiliates. All rights reserved. Cisco Public • サービスイン前に導入する機器でテストを実施 • サービスイン後に使えるテスト環境がない • テストはサービスイン前に手動で実施 • システム変更した場合、同様のテストを実行するのが事実上難しい ネットワークが塩漬けになる理由 VIRLでテスト環境を構築 pyATSでテストの自動化
3.
© 2018 Cisco
and/or its affiliates. All rights reserved. Cisco Public • Continuous Integration • 開発者が自分のコード変更を頻繁に(Git等の)共有リポジトリに マージし、その都度、自動化されたビルドとテストを実行するソフ トウェア開発の手法 • エクストリーム・プログラミング (XP) のプラクティスの一つ 継続的インテグレーション(CI)とは
4.
© 2018 Cisco
and/or its affiliates. All rights reserved. Cisco Public • Extreme Programming • 従来のウォーターフォール型開発の 問題点を克服するために、1990年 代後半にケント・ベックらによって 考案 • 5つの価値と19のプラクティス(実 践)を定義 • 5つの価値 • コミュニケーション、シンプル、フィー ドバック、勇気、尊重 • 19のプラクティス(右図) (参考) XP カテゴリ プラクティス 共同のプラクティス 反復 共通の用語 オープンな作業空間 回顧(頻繁な振り返り) 開発のプラクティス テスト駆動開発 ペアプログラミング リファクタリング ソースコードの共同所有 継続的インテグレーション YAGNI 管理者のプラクティス 責任の受け入れ 援護 四半期ごとの見直し ミラー 適切なペースの仕事 顧客のプラクティス ストーリーの作成 リリース計画 受け入れテスト 短期リリース
5.
© 2018 Cisco
and/or its affiliates. All rights reserved. Cisco Public ネットワークにおけるCI ネットワークをコードとして管理 • トポロジ • 構成情報 • テスト Gitリポジトリへ Push / Pull Request CIツールが検知し、 CIジョブを実行 チャットツールで テスト結果を通知 仮想テスト環境を セットアップ ネットワークの テスト 構成管理ツールで ネットワーク設定
6.
© 2018 Cisco
and/or its affiliates. All rights reserved. Cisco Public • ネットワーク変更の履歴 • ネットワーク変更のレビュー • テストが十分にカバーされていれば、安心して以下のことができる • 機器の追加、リプレース • 機能の追加、拡張 • サービスの追加、拡張 • リファクタリング(コンフィグの最適化) ネットワークにおけるCI 期待される効果
7.
© 2018 Cisco
and/or its affiliates. All rights reserved. Cisco Public VIRL
8.
© 2018 Cisco
and/or its affiliates. All rights reserved. Cisco Public What is VIRL? パワフルで、使いやすく、拡張可能なネットワークシミュレー ション環境 既存または計画されたネットワークの高精度モデルを構築 Ciscoのネットワークオペレーティングシステムの正規バージョンを使用してネッ トワークを設計、設定、および運用 IOSv、IOSv Layer-2、IOS-XRv、NX-OSv、CSR1000v、ASAvなどの共通プ ラットフォームを使用して構築 サードパーティの仮想マシン、アプライアンス、VNF、およびサーバーを統合 実ネットワークと仮想ネットワークを接続して、再現性の高い開発環境とテスト環 境を構築 どこでもデザインやテストが可能 - VIRLはポータブル
9.
© 2018 Cisco
and/or its affiliates. All rights reserved. Cisco Public CML vs. VIRL PE CML(Cisco Modeling Lab) コーポレートユース マルチユーザー TACサポート 300ノード(最大) Ciscoパートナーから購入 インターネット接続不要 VIRL PE(Personal Edition) 個人ユース シングルユーザー コミュニティサポート 20ノード(最大) Cisco Learning Network Storeから購入 要インターネット接続 (ライセンスチェックのため)
10.
© 2018 Cisco
and/or its affiliates. All rights reserved. Cisco Public Keystone (Identity Services) Glance (Image / Repository Services) Nova (Compute Services) Neutron (Networking Services) Swift (Object Services) Cinder (Block Storage Services) Horizon(Dashboard) APIs/CLI IaaS / cloud orchestration software – creates, manages, and deletes virtual resources according to API- or CLI-based instructions VIRL – Built on OpenStack
11.
© 2018 Cisco
and/or its affiliates. All rights reserved. Cisco Public VM Maestro • グラフィカルなトポロジ編 集ツール • ネットワーク要素を定義 ルータ 接続 コンフィグ サーバ • 複雑なトポロジをサポート • シミュレーションを管理
12.
© 2018 Cisco
and/or its affiliates. All rights reserved. Cisco Public VIRL – ネットワークインターフェイス VIRL X マネジメント SNAT FLAT eth0 eth2 eth4 R R R eth1 eth3 FLAT1 Cluster Gateway Router
13.
© 2018 Cisco
and/or its affiliates. All rights reserved. Cisco Public • 5つのネットワークインターフェイス: • eth0 – マネジメントアクセスに利用。IPアドレスはDHCP割り当て、もしくは、手 動で静的に設定 • eth1 (FLAT) – 外部からのL2接続(マネジメントアクセスもしくはデータプレーン アクセス)に利用。 デフォルトで172.16.1.254/24が割り当てられる • eth2 (FLAT1) -外部からのL2接続(マネジメントアクセスもしくはデータプレーン アクセス)に利用。 デフォルトで172.16.2.254/24が割り当てられる • eth3 – SNATによる外部L3接続(マネジメントアクセスおよびデータプレーンアク セス)に利用。デフォルトで172.16.3.254/24が割り当てられる • eth4 – OpenStackサービスとホスト間通信にシステム内部で利用(設定不可)。デ フォルトで172.16.10.250/24が割り当てられる VIRL – ネットワーク接続
14.
© 2018 Cisco
and/or its affiliates. All rights reserved. Cisco Public • 1.6.55に同梱されるイメージ VIRLイメージ
15.
© 2018 Cisco
and/or its affiliates. All rights reserved. Cisco Public • 本家サイト • http://virl.cisco.com/ • チュートリアル • http://virl.cisco.com/tutorials.php • Youtubeチャンネル • https://www.youtube.com/c/ciscovirl • コミュニティサポート • https://learningnetwork.cisco.com/groups/virl (参考) VIRLレファレンス
16.
© 2018 Cisco
and/or its affiliates. All rights reserved. Cisco Public virlutils
17.
© 2018 Cisco
and/or its affiliates. All rights reserved. Cisco Public • Cisco VIRLを便利に使うコマンドラインツール • VagrantっぽいフィーリングでVIRLを操作できる(virl up, virl down, virl ssh, virl console, etc.) Virlutils https://github.com/CiscoDevNet/virlutils
18.
© 2018 Cisco
and/or its affiliates. All rights reserved. Cisco Public デモ① virlutils
19.
© 2018 Cisco
and/or its affiliates. All rights reserved. Cisco Public • VIRLシミュレーションを起動する • topology.virlのあるディレクトリにて • virl up • もしくは、topology.virlを含むGithubプロジェクトを指定して • virl up virlfiles/2-ios-router virl up $ virl up Creating default environment from topology.virl
20.
© 2018 Cisco
and/or its affiliates. All rights reserved. Cisco Public (参考) topology.virl の作成 VM Maestroのデザインパースペクティブから 編集して、「File」-> 「Export」からエクスポート するのが手っ取り早い
21.
© 2018 Cisco
and/or its affiliates. All rights reserved. Cisco Public • VIRLシミュレーションの状態を確認 virl ls $ virl ls Running Simulations ╒═══════════════════════════════════╤══════════╤════════════════════════════╤═══════════╕ │ Simulation │ Status │ Launched │ Expires │ ╞═══════════════════════════════════╪══════════╪════════════════════════════╪═══════════╡ │ network-ci-handson_default_R1gGHs │ ACTIVE │ 2018-11-20T02:30:55.887350 │ │ ╘═══════════════════════════════════╧══════════╧════════════════════════════╧═══════════╛
22.
© 2018 Cisco
and/or its affiliates. All rights reserved. Cisco Public • VIRLノードの状態を確認 virl nodes $ virl nodes Here is a list of all the running nodes ╒═══════════╤══════════╤═════════╤═════════════╤════════════╤══════════════════════╤════════════════════╕ │ Node │ Type │ State │ Reachable │ Protocol │ Management Address │ External Address │ ╞═══════════╪══════════╪═════════╪═════════════╪════════════╪══════════════════════╪════════════════════╡ │ iosv-2 │ IOSv │ ACTIVE │ REACHABLE │ telnet │ 172.16.30.61 │ N/A │ ├───────────┼──────────┼─────────┼─────────────┼────────────┼──────────────────────┼────────────────────┤ │ iosv-1 │ IOSv │ ACTIVE │ REACHABLE │ telnet │ 172.16.30.60 │ N/A │ ╘═══════════╧══════════╧═════════╧═════════════╧════════════╧══════════════════════╧════════════════════╛
23.
© 2018 Cisco
and/or its affiliates. All rights reserved. Cisco Public • Ansibleインベントリファイル、pyATSテストベットファイル、NSOインベン トリファイルを生成 virl generate $ virl generate ansible Placing iosv-2 into ansible group routers Placing iosv-1 into ansible group routers Writing default_inventory.yaml all: children: routers: hosts: iosv-1: ansible_host: 172.16.30.60 console_server: 10.10.20.160 console_port: 17000 iosv-2: ansible_host: 172.16.30.61 console_server: 10.10.20.160 console_port: 17002 Ansibleインベントリファイルの生成 生成されたAnsibleインベントリファイル
24.
© 2018 Cisco
and/or its affiliates. All rights reserved. Cisco Public • 以下の方法でVIRL環境(IPアドレス、クレデンシャル情報)の設定 (優先順) • ワーキングディレクトリの.virlrcファイル • 環境変数 • ユーザーのホームディレクトリの.virlrcファイル virlutils設定 VIRL_HOST=192.0.2.1 VIRL_USERNAME=guest VIRL_PASSWORD=guest $ export VIRL_HOST=192.0.2.1 $ export VIRL_USERNAME=guest $ export VIRL_PASSWORD=guest .virlrcの例 環境変数の例
25.
© 2018 Cisco
and/or its affiliates. All rights reserved. Cisco Public PyATS
26.
© 2018 Cisco
and/or its affiliates. All rights reserved. Cisco Public • Python3ベースのテスト自動化フレームワーク • Cisco社内のテストフレームワークとして長年培われてきたノウハウ を凝縮 • DevNetを通じてユーザーに提供 • 製品開発時にCisco内部で使用されているのと同じテスト環境をあな たの環境で利用できる! pyATS https://developer.cisco.com/site/pyats
27.
© 2018 Cisco
and/or its affiliates. All rights reserved. Cisco Public Cisco pyATS テスト自動化ソリューション • ネットワークOSに依存しない自動化ライブラリ • イベントベースの自動化 Genie Library Framework • トポロジ & テストケースの定義 • 実行 & レポート pyATS Core Test Infrastructure • 機能モデル実装 • トリガー、検証、パース、コネクタ等 Genie Libs • キーワード駆動テスト自動化 • テストスクリプトを宣言的な記述 Robot
28.
© 2018 Cisco
and/or its affiliates. All rights reserved. Cisco Public • フレームワークの第一の重要な特徴は、フレームワークに合わせて利用者が定義したメソッドが、 アプリケーションコードからは呼ばれず、フレームワークから呼び出されるという点だ Ralph Johnson and Brian Foote • フレームワークを呼び出すのではなく、フレームワークに呼び出されるのだ。この現象を「制御の 反転」と呼ぶ(ハリウッド原則とも呼ばれる、「私を呼ぶな。私から呼ぶ」) Martin Fowler フレームワークとは 制御の反転あるいはハリウッドの原則 from flask import Flask app = Flask(__name__) @app.route("/") def hello(): return "Hello World!“ if __name__ == "__main__": app.run(debug=True)
29.
© 2018 Cisco
and/or its affiliates. All rights reserved. Cisco Public pyATSテストスクリプト構造 COMMON SETUP TESTCASE(S) COMMON CLEANUP Subsection 2 Setup Test 1 Test 2 Cleanup Subsection 1 Subsection 2 Subsection 1
30.
© 2018 Cisco
and/or its affiliates. All rights reserved. Cisco Public pyATS from ats import aetest ... class Testcase_One(aetest.Testcase): @aetest.setup def setup(self, section): log.info("%s testcase setup/preparation" % self.uid) self.a = 1 self.b = 2 @aetest.test def test_1(self, section): log.info("test section: %s in testcase %s" % (section.uid, self.uid)) assert self.a == 1 @aetest.test def test_2(self, section): log.info("test section: %s in testcase %s" % (section.uid, self.uid)) assert self.b == 2 @aetest.cleanup def cleanup(self): log.info("%s testcase cleanup/teardown" % self.uid) ... フレームワークのお作法にした がって、クラスとメソッドを用意
31.
© 2018 Cisco
and/or its affiliates. All rights reserved. Cisco Public pyATS フレームワークが適切にメソッドを 呼び出してくれる
32.
© 2018 Cisco
and/or its affiliates. All rights reserved. Cisco Public • 機能セントリックなオブジェクトモデルを提供 • オブジェクトはプラットフォーム、OSに依存しない • テスト自動化を加速し単純化 Genie
33.
© 2018 Cisco
and/or its affiliates. All rights reserved. Cisco Public • showコマンドを実行し、結果の文字列をPythonの ディクショナリ形式にマッピング(便利!) Genie オペレーショナルデータを取得 Codes: L - local, C - connected, S - static, R - RIP, M - mobile, B - BGP D - EIGRP, EX - EIGRP external, O - OSPF, IA - OSPF inter area N1 - OSPF NSSA external type 1, N2 - OSPF NSSA external type 2 E1 - OSPF external type 1, E2 - OSPF external type 2 i - IS-IS, su - IS-IS summary, L1 - IS-IS level-1, L2 - IS-IS level-2 ia - IS-IS inter area, * - candidate default, U - per-user static route o - ODR, P - periodic downloaded static route, H - NHRP, l - LISP a - application route + - replicated route, % - next hop override, p - overrides from PfR Gateway of last resort is not set 2.0.0.0/32 is subnetted, 1 subnets B 2.2.2.2 [200/0] via 192.168.12.2, 00:01:27 {'vrf': { 'default': { 'address_family': { 'ipv4 unicast': { 'ip': { '2.2.2.2/32': { 'nexthop': { '192.168.12.2': { 'protocol': { 'bgp': { 'metric': '0', 'preference': '200', 'uptime': '00:01:27‘ } } } } } } } } } } }
34.
© 2018 Cisco
and/or its affiliates. All rights reserved. Cisco Public Genie 使い方 Genie単体での利用 pyATSでの利用 from genie.conf import Genie from genie.libs.parser.iosxe.show_interface import ShowInterfaces testbed = Genie.init('default_testbed.yaml') ios1 = testbed.devices['iosv-1'] ios1.connect() parsed = ShowInterfaces(ios1).parse() # parsed にはディクショナリ形式のshow interfaceの結果 ios1.disconnect() from ats.topology import loader from genie.libs.parser.iosxe.show_interface import ShowInterfaces testbed = loader.load("default_testbed.yaml") ios1 = testbed.devices['iosv-1'] ios1.connect() parsed = ShowInterfaces(ios1).parse() # parsed にはディクショナリ形式のshow interfaceの結果 ios1.disconnect()
35.
© 2018 Cisco
and/or its affiliates. All rights reserved. Cisco Public pyATSとGenieを組み合わせる class BgpTestcase(aetest.Testcase): … @aetest.test def check_ip_route(self): ios1 = self.parameters['ios1'] route = ShowIpRoute(ios1).parse(protocol='bgp', ip='ip') assert '2.2.2.2/32' in route['vrf']['default']['address_family']['ipv4 unicast']['ip'], 'route missing...' @aetest.test.loop(device=('ios1','ios2'), prefix=('2.2.2.2/32', '1.1.1.1/32')) def check_ip_route_loop(self, device, prefix): ios = self.parameters[device] route = ShowIpRoute(ios).parse(protocol='bgp', ip='ip') assert prefix in route['vrf']['default']['address_family']['ipv4 unicast']['ip'], 'route missing...‘ … iosv-1で2.2.2.2/32の BGP経路があることを確認 ループ処理も書ける
36.
© 2018 Cisco
and/or its affiliates. All rights reserved. Cisco Public ネットワークCI
37.
© 2018 Cisco
and/or its affiliates. All rights reserved. Cisco Public デモ③ ネットワークCI
38.
© 2018 Cisco
and/or its affiliates. All rights reserved. Cisco Public ネットワークCIテスト ネットワークをコードとして管理 • トポロジ(VIRL) • 構成情報(Ansible) • テスト(pyATS) Gitリポジトリへ Push CIツールが検知し、 CIジョブを実行 仮想テスト環境を セットアップ ネットワークの テスト 構成管理ツールで ネットワーク設定
39.
© 2018 Cisco
and/or its affiliates. All rights reserved. Cisco Public • その状態をデータベースに保 存するAPIを備えたWebアプ リケーションであるGitLab サーバの機能の一部 • プロジェクトの更新に応じて CIパイプラインの実行 • CIパイプラインのスタータス や結果のレポート Gitlab CI/CD • (ビルドやテスト等の)CIジョ ブを実行するアプリケーション • GitLabサーバと別サーバに配備 され、APIを介してGitLab CI/CDと連携 • Shell、Dockerコンテナなど 様々なExecutor
40.
© 2018 Cisco
and/or its affiliates. All rights reserved. Cisco Public 実行結果(成功時)
41.
© 2018 Cisco
and/or its affiliates. All rights reserved. Cisco Public 実行結果(失敗時)
42.
© 2018 Cisco
and/or its affiliates. All rights reserved. Cisco Public (参考) .gitlab-ci.yml image: tetsusat/network-ci-demo cache: untracked: true key: "$CI_PIPELINE_ID" stages: - setup - deploy - test - cleanup virl_setup: stage: setup script: - virl up - sleep 120 - virl generate ansible - virl generate pyats tags: - network-ci ansible: stage: deploy script: - ansible-playbook -i ./default_inventory.yaml playbooks/config_motd.yaml - ansible-playbook -i ./default_inventory.yaml playbooks/config_bgp.yaml - sleep 60 tags: - network-ci pyats: stage: test script: - python3 pyats/bgp.py --testbed=./default_testbed.yaml tags: - network-ci virl_cleanup: stage: cleanup script: - virl down tags: - network-ci VIRLの セットアップ Ansibleによる 設定 pyATSによる テスト VIRLの クリーンアップ パイプライン毎に キャッシュを有効化
43.
© 2018 Cisco
and/or its affiliates. All rights reserved. Cisco Public • 「Settings」→「CI/CD」→「Runners settings」 (参考) GitLabプロジェクトとGitLab Runnerの連携 GitLabプロジェクト側の設定
44.
© 2018 Cisco
and/or its affiliates. All rights reserved. Cisco Public (参考) GitLabプロジェクトとGitLab Runnerの連携 GitLab Runner側の設定 $ sudo gitlab-runner register Runtime platform arch=amd64 os=linux pid=25942 revision=8af42251 version=11.4.0 Running in system-mode. Please enter the gitlab-ci coordinator URL (e.g. https://gitlab.com/): https://gitlab.example.com/ Please enter the gitlab-ci token for this runner: ******************** Please enter the gitlab-ci description for this runner: [ubuntu]: network ci demo Please enter the gitlab-ci tags for this runner (comma separated): network-ci Registering runner... succeeded runner=seR7B9LU Please enter the executor: shell, ssh, virtualbox, docker-ssh+machine, kubernetes, docker, docker-ssh, parallels, docker+machine: docker Please enter the default Docker image (e.g. ruby:2.1): tetsusat/network-ci-demo Runner registered successfully. Feel free to start it, but if it's running already the config should be automatically reloaded! gitlabのURL Gitlab runnerのタグ Executorのタイプ CI Job実行するDockerイメージ Registrationトークン
45.
© 2018 Cisco
and/or its affiliates. All rights reserved. Cisco Public (参考) 環境変数の設定
Editor's Notes
pyATS - Core Test Framework Testbed/topology definition Test suite definition Device connections Execution, Reporting Base classes, data structures, etc Genie – Library Framework OS/Platform agnostic design YANG-inspired objects models Configurational state Operational status Stateful, event-based test automation methodology Data-driven, reusable testcases