てくなべ (tekunabe)

ansible / network automation / 学習メモ

network

JANOG53 Meeting アーカイブ視聴レポート

はじめに 2024/01/17-19 に福岡県福岡市の博多国際展示場&カンファレンスセンターで JANOG53 Meeting が開催されました。 現地は私のチームの他の人に行ってもらいました。また、ストリーミングもなしということでしたので、アーカイブが公開(ありがとうざ…

[Ansible] 「つまずき Ansible 【Part38】ネットワークモジュールを VS Code でデバッグしたい」ふりかえり

はじめに 2024/02/04 に、「つまずき Ansible【Part38】ネットワークモジュールを VS Code でデバッグしたい」という配信をしました。 tekunabe.connpass.com cisco.ios コレクションのモジュールのような、ネットワーク機器に接続して操作するとき、Playboo…

「Pythonとネットワークの自動化基礎検定」を受験してきました

はじめに 周囲のエンジニアは息を吸うように色々受験(そして合格)されているようなのですが、私はしばらく何もやっていませんでした。確か直近は、4年前の DevNet Associates(失効)。 久々に、なにかやってみとうと思っていたところ「Pythonによるネット…

Interop Tokyo 2023 に参加してきました

はじめに 2023/06/14-16(現地展示期間として)に開催されたInterop Tokyo 2023に参加してきました。 今年も ShowNet のさまざまな機器や、気になるブースやセッションがありましたので、いくつかまとめます。 ※ 口頭で聞いた内容を思い出しながら書いた記述…

JANOG51 Meeting 参加レポート

はじめに 2023/01/25-27 に山梨県富士吉田市で開催(現地とオンラインのハイブリッド)された JANOG51 Meeting にオンラインで参加しました。 はじめて JANOG Meeting に参加したのが JANOG41 だったので、今回で10回目となりました。 現地は、満席で立ち見…

JANOG50 Meeting in Hakodate 参加・登壇レポート

はじめに ■ 参加プログラム 運用を変化しながら継続していくための8つの極意 スプリンターネット ネットワーク自動化の対応チャレンジ NETCON Wrap-up オープンマイク ■ 登壇プログラム ネットワーク自動化に必要なデータとその管理方法と活用方法とは? 横…

Interop Tokyo 2022 に参加してきました

はじめに 2022/06/15-17(現地展示期間として)に開催されたInterop Tokyo 2022に参加してきました。 毎年のネットワークのお祭り的な位置づけとして、毎年楽しみにしています。去年と比べて来場者数はだいぶ増えたようです。 今年も ShowNet のさまざまな機…

[Terraform] IOS XE Terraform provider で設定変更を試してみた

はじめに ■ 1. 共通 .tf ファイルの準備 1.1. terraform.tf の作成 1.2. provider.tf の作成 ■ 2. NTP サーバー設定0台から3台へ (POST) 2.1. ntp_post.tf の作成 2.2. terraform init の実行 2.3. terraform plan の実行 2.4. terraform apply の実行 2.5.…

[AWS] Transit Gateway とオンプレの VPN 接続を試してみた

はじめに AWS の VPC を VPN で接続する方法自体は、以前から仮想プライベートゲートウェイ(VGW)経由の方法がありました。 2018年に Transit Gateway というものを経由する方法もできてたことを知りました。 Transit Gateway を利用する場合は、VPC ごとに…

CML の Web UI で複数ノードを選択する3つの方法

はじめに シスコの仮想ラボ環境 CMLでノードをいくつも配置していると、複数ノードまとめて起動や停止したいたいときがあります。 ラボ全体でしたら、それはそれで操作方法があるのですが「これとこれとこれだけ」という指定するには別の操作が必要です。 私…

自動化に適したプログラマブルなホスト名を考える

はじめに ホスト名の付け方には、視認性や区別のしやすさ向上等の目的で、様々な工夫をされているかと思います。 自動化を前提と場合に、何か考慮するべき点があるか考えてみたのまとめます。 多く分けて以下の 2点です。 機械的に読み込みやすくしておく 機…

[nornir] NETCONF で Cisco IOS XE 機器のコンフィグや状態の情報を取得する

はじめに Python 製自動化フレームワーク nornir は、接続方法として netmikoや、NAPALM の他に、NETCONF にも対応しています。 この記事では NETCONF 経由で、Cisco IOS XE 機器の runnin-config、インターフェース、ルーティングテーブを取得するサンプル…

[Ansible] ios_config モジュールで save_when: modified 指定時に常に changed になる原因

はじめに Cisco IOS 機器に設定コンフィグを流し込む、ios_config モジュールには、コンフィグの保存(copy running-config startup-config)する条件を指定する、save_whenをいうオプションがあります。 ここで、modified を指定すると「running-config と …

BGP Unnumbered で遊んでみた

はじめに 2020/05/09 に、YouTube Live で「BGP Unnumbered で遊んでみた」というお話させていただきました。 BGP Unnumbered は インターフェースや BGP ネイバーの IPアドレス設定が不要な BGP の設定方法です。 IPv6 や RFC 5549 の仕組みが活用されてい…

CML-P (VIRL2) のインストールと基本機能

はじめに 2020/05/13 に、CML-Personal (VIRL2) のインストールと基本機能について、YouTube Live でお話させていただきました。 CML-Personal は、Cisco 公式のバーチャルラボ環境のソフトウェアで、仮想アプライアンス(.ova)として提供されます。IOS、IO…

[Ansible] VyOS モジュール利用のことはじめ

はじめに Ansible は VyOS にも対応していて、設定の変更や、各種 show コマンドの実行による情報取得ができます。 この記事では、VyOS モジュールを利用するためのインベントリファイルの作成、認証情報の定義などの準備と、簡単な show コマンドを実行する…

[Ansible] Junos の interface の状態を debug で表示する(display json 編)

はじめに 以前の記事で、gather_facts を利用して Junos のインターフェースの状態を取得して debug で表示するという Playbook をご紹介しました。 tekunabe.hatenablog.jp 今回は普通に show interfaces terse コマンドを利用します。ただし、せっかく JSO…

[Ansible] Junos の interface の状態を debug で表示する(gather_facts 編)

はじめに 以下の記事で、Junos のインターフェースの状態を取得して debug で表示するという Playbook が紹介されていました。 qiita.com 面白いネタだなと思って、拝見しました。特に、以下のディクショナリをループする書き方が参考になりました。 with_it…

ネットワーク設定自動化で、いつ、何を確認するか(JANOG45 の Fastly さんの発表から学ぶ)

はじめに JANOG45 Meeting in Sapporo で、Fastly の土屋さんから「急成長を支えるFastlyスケーラブル・グローバルネットワーク」という発表がありました。 www.janog.gr.jp シンプルさを追及した設計や、自動化の話があって大変興味深いものでした。 なかで…

[Ansible] OSPF 設定後にネイバーが張られるまで待つ(until の活用)

はじめに Ansible には、指定した条件を満たすまでタスクを繰り返す until というループ機能があります。 until を利用すると、ネットワーク機器に設定を投入した後に、期待した状態になるまで待つ、といった処理を Playbook で実現できます。 この記事では…

[Ansible] "[WARNING]: Ignoring timeout(10) for ios_facts" の正体とタイムアウトの設定方法

はじめに Ansible 2.9 から、ネットワークモジュールの fact 収集は、gather_fact の指定(デフォルト yes)に基づくように仕様変更されました。 有効の場合は、内部で ios_facts、eos_facts などの、ベンダー別の *_facts モジュールが呼ばれます。 tekunab…

自動化よりも設計・管理対象を減らすということ

はじめに 「業務の整理、手順書整備、体制作り・・」など、自動化の以前にすることとしてよく聞きます。 今年は「技術面で自動化以前にできること」に気付かされた年でした。それは、自動化よりも設計・管理対象を減らすということです。 ピンときた2つの資…

[200-901勉強記] 書籍 Understanding and Using APIs を読んだ

はじめに Cisco Certified DevNet Associateの勉強の一環で以下の書籍を読みました。 Understanding and Using Application Programming Interfaces (APIs): Cisco DevNet Associate (DEVASC) 200-901 V1.0 Exam Guide Series (English Edition)作者:Muhamma…

[200-901勉強記] Cisco DevNet Associate (DEVASC 200-901) の勉強をはじめました

はじめに 2020/02/24 に始まる、Cisco DevNet Associate (DEVASC 200-901) の勉強をはじめした 試験情報リンクまとめ tekunabe.hatenablog.jp 今後のブログでも、勉強途中のトピックを書いていきたいと思います。 当面の学習コンテンツ 公式のガイドは、2020…

DevNet Express for DNA [Tokyo] イベント参加レポート: Python と Postman と API たち

■ はじめに 2019/12/10-11 に開催された、DevNet Express for DNA [Tokyo] に参加してきました。 ネットワークプログラマビリティをテーマにした、ハンズオンを含むインベントです。 「for DNA」とついているのは、Cisco DNA Center という製品を中心とした…

[Ansible] Network Resource Module の state: overridden の使い所を考えてみた

これは Ansible 3 Advent Calendar 2019 の9日目の記事です。 ■ はじめに Ansible 2.9 から Network Resource Module という新しいタイプのモジュールが続々と追加されています。 config オプションで設定内容を指定し、state というオプションで4種類の操…

[Ansible] Junos のスタティックルート設定モジュール junos_static_routes の概要と state オプションの仕様

これは Ansible 3 Advent Calendar 2019 の8日目の記事です。 ■ はじめに 開発中の Ansible 2.10 では、Juniper Junos 向けのスタティックルート設定モジュール junos_static_routes モジュール (末尾 s あり)が追加されます。 Ansible 2.9 から続々と追加…

netmiko で Juniper ScreenOS(SSG)の状態取得と設定変更を試してみる

これは ネットワーク自動化 Advent Calendar 2019 の4日目の記事です。 ■ はじめに ネットワーク自動化 Python ライブラリ netmiko は、Cisco、Juniper、Arista など様々なネットワークOSに対応しています。 開発状況を眺めていると、Juniper ScreenOS (SSG)…

[Ansible] Ansible 2.9 からデフォルトでネットワークの fact も収集される

■ はじめに fact といえば、サーバー系モジュールの場合は、gather_facts: yes(デフォルト)で収集されましたが、ネットワークモジュールの場合は事情が異なりました。 具体的には、gather_facts: yes では、Ansible コントロールノード自身の fact が収集…

[Ansible] ネットワーク機器に接続する条件はバージョンやコネクションブラグインによって異なる

はじめに Ansible では、ネットワークモジュール向けに主に以下の専用コネクションプラグインが用意されています(組み合わせはこちら)。 network_cli netconf httpapi Ansible のバージョンや、利用するコネクションプラグインによって、ネットワーク機器…