初心者向けAnsibleを使ったホワイトボックススイッチの自動設定方法 part2

はじめに

前回の記事ではAnsibleは「ネットワーク構築を自動化するツール」であることを紹介し、事前に用意した設定ファイルを使うことで、BGPクロスネットワークを自動構築できることをお見せしました。今回は、その設定ファイルもAnsibleを使い自動生成できるところをご紹介していきたいと思います。

他にもOpen Networkingに関わる記事がありますので、以下「記事一覧はこちら」からご興味のある記事をご覧ください。

Ansibleで設定ファイルを作成するメリット

記事を読まれている皆さんの中では、わざわざAnsibleを使って設定ファイルを作成しなくても手作業で作成すればよいのではないか?っと思われる方もいらっしゃるかと思います。

確かに数台のスイッチの設定ファイルなら良いですが、大規模ネットワークのようなスイッチが数十台以上となってくると非常に時間がかかる作業となります。また、ミスが起こる可能性も大きいです。

ただ設定ファイルの内容を見ますとスイッチごとに大きな違いはなく、一部パラメーターが異なるだけではないでしょうか?
まさにそういった場面に、Ansibleのtemplateモジュールを使用することで、数十台スイッチの設定ファイルをそこまで苦労せず作成することができますし、将来構成を拡張することも容易に可能です。また、誤字の可能性も大幅に減らすことができます。

 まとめると以下3点になります。

Ansibleを使用する3つのメリット

Ansibleを使用する3つのメリット

このメリットはtemplateモジュールのみでなくAnsibleそのものに対しても当てはまります。Ansibleは、大幅にユーザー負荷を下げてくれる非常に強力なツールです。

Ansibleのtemplateモジュールとは?

そもそもtemplateモジュールとはなんぞや?についてお話していきたいと思います。

templateモジュールは、Jinja2といわれるpython用のtemplateエンジンを利用することができるモジュールになります。これにより数十以上の設定ファイルをそれほど苦労せず自動作成することができるようになります。

具体的にはJinja2のtemplateファイルによって、for文やif文などの制御文と変数を組み合わせて使用することができ、スイッチごとにパラメーターを変更した設定ファイルをまとめて作成することが可能です。

それでは実際に動作させて動きをお見せしていきたいと思います。

Ansibleで設定ファイルの自動作成

それでは実際にAnsibleを使って設定ファイルを作成していきます。今回はOcNOSでBGPクロスネットワークを構成できるstartup-configを作成していきます。設定を適用後に構築されるネットワークは以前の記事で作成された構成と全く同じになります。

環境
 ・サーバー
  ‐Ubuntu 16.04
 
 ・ホワイトボックススイッチ
  ‐Edgecore : AS7726-32X x 2 & AS7326-56X x 2

 ・NOS
  ‐OcNOS 1.3.9

BGPクロスネットワーク図

BGPクロスネットワーク図

Ansibleのディレクトリ構成

├── hosts  #インベントリーファイル

├── make_conf.yaml  #Playbookファイル   

└── roles
    │
    ├── leaf
    │   │
    │   ├── tasks
    │   │  └── main.yml  #leafのconfigを作成するtask
    │   │
    │   ├── templates
    │   │  └── leaf.j2  #leaf用Jinja2 templateファイル
    │   │
    │   └── vars
    │         └── main.yml  #leafスイッチの変数を格納
    │
    └── spine
           │   
           ├── tasks
           │  └── main.yml  #spineのconfigを作成するtask
           │
           ├── templates
           │  └── spine.j2  #spine用Jinja2 templateファイル
           │
           └── vars
                  └── main.yml  #leafスイッチの変数を格納 

下記のように設定ファイル(hosts, Playbook)を設定します。

※これからご紹介する設定ファイルは本記事の最後にある資料ダウンロードフォームのアンケートにご回答いただけますと、ダウンロードできるようになっています。

 

hosts

hosts

Playbook

Playbook

続いてrolesディレクトリーのspineの中身になります

spine/tasks/main.yml

spine/tasks/main.yml

上記は、templateモジュールを使い設定ファイルを作成後、/tmp/confgsディレクトリーにコピーするtaskになります。

spine/templates/spine.j2

spine/templates/spine.j2

Jinja2のtemplateファイルではif文やfor文を使用することで、スイッチごとに異なるパラメーターを持つ設定ファイルを作成することが可能です。

上図では赤字が変数、青字がif文, for文の箇所になります。

spine/vars/main.yml

spine/vars/main.yml

templatesで使用される変数をまとめたファイルです。

rolesディレクトリーのleafについてはspineとほぼ同じため割愛します。

AnsibleでPlaybookを実行

続いて上記で記述したPlaybookを実行していきます

Playbook実行画面

Playbook実行画面

正しく実行でき、4つの設定ファイルが作成されることが確認できます。

作成された4つの設定ファイル

作成された4つの設定ファイル

続いて作成したファイルを各スイッチへ適用いたします。

(本記事ではご紹介しませんが、OcNOSの設定をAnsibleを使いホワイトボックス自動投入させることももちろん可能です。)

 設定を適用後、BGPセッションが正常に確立されことが確認できます。

BGP結果

BGP結果

また、ルートも広報されており、各スイッチのloopbackへpingが飛ぶことが確認できます。

BGP ping実行結果

BGP ping実行結果

以上がAnsibleを使った設定ファイルの自動作成方法になります。

今回まででAnsibleを使った「ネットワーク構築を自動化するツール」を紹介する記事は一旦終わりになります。次回はスイッチの構築段階を自動化するZTPを紹介いたします。

資料ダウンロードフォーム

本記事で使用されている設定ファイルは以下「資料ダウンロードはこちら」よりアンケートにご回答いただきますと資料ダウンロードのご案内メールに記載されているURLよりダウンロードができます。

最後に

マクニカではオープンネットワーキングを実際に体験し、試験や検証をおこなえる環境をリモートで提供するサービスのご用意があります。

本サービスでは、ネットワークOSの操作性の検証、様々なメーカーのネットワークOSやホワイトボックススイッチ、光トランシーバーを組み合わせた試験をおこなえます。

リモート検証サービス イメージ図

リモート検証サービス イメージ図

気軽にオープンネットワーキングの検証をおこなえるサービスとなっており、基本構成での利用は無償になっています。

ご利用可能なネットワークOSやホワイトボックススイッチについて、具体的なユースケース、またお申し込み方法はダウンロード資料よりご確認いただけます。資料は下記「マクニカ ネットワークOS リモート検証サービス」よりアンケートにご回答いただきますとご案内メールに記載されているURLよりダウンロードができます。

こんな方がリモート検証サービスを利用しています。

こんな方がリモート検証サービスを利用しています。

実際に利用いただいた方の声をご紹介します。

 

古河ネットワークソリューション株式会社 様

「昨今リモートのサービス環境が増えていますが、その中でも評価機材へのアクセス性が良く好印象でした。

ご提供頂いた資料も分かり易く、目的とした検証を円滑に進めることができました。」


資料一覧はこちら

資料一覧

マクニカが取り扱う製品のご紹介のほか、
BGPクロスネットワーク自動構築ファイルやネットワーク運用試験評価レポートなど、オープンネットワーキングに関する資料を掲載しております。

詳細はこちら

製品ページTopへ

Edgecore Networks

OpenNetworking/ホワイトボックススイッチ関連製品を先行して開発・販売し、オープンネットワーキングの先駆者であり続けています。

DELTA ELECTRONICS

国内外の主要なOEM顧客のビジネスをサポートした実績を多数保有し、高品質/高信頼なネットワーク製品を提供しております。

CGS Tower Networks

最先端の汎用ハードウエアを活用したネットワークパケットブローカー(NPB)を提供しています。

お問い合わせ

本記事に関してご質問などありましたら、以下より問い合わせください。

株式会社マクニカ
OpenNetwork 担当

お電話でのお問い合わせ:
045-470-9831

メールでのお問い合わせ:
projectmonstar@macnica.co.jp