初心者向けホワイトボックススイッチのネットワーク自動構築方法 ~ZTP x Ansible~

はじめに

Open Networking(オープンネットワーキング)について取り上げた第2~4回記事では、“Zero Touch Provisioning(ZTP)” と “Ansible” をそれぞれご紹介しました。今回の記事ではその2つを組み合わせて実施できる、より効率的なネットワーク構築方法をご紹介いたします。

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

ZTPとAnsibleについて

ZTPでできること

ZTPについて簡単にまずおさらいしますと、ホワイトボックススイッチなどの機器を導入したいネットワークへ接続し、電源を入れるだけで自動的に設定がおこなわれ、使用できるようにする仕組みになります。
図にすると下記のような流れになり、DHCP SeverとWeb Serverを用意すれば簡単に構築が可能です。

① ホワイトボックススイッチを起動すると、DHCP requestが開始
② DHCP ServerはホワイトボックススイッチからのDHCP Requestに対してAckを返答
  この際にIPアドレスだけでなく、NOS image fileやLicense、Config fileの保存場所も通知
③ ホワイトボックススイッチはDHCP serverから通知された情報を基にWeb serverへアクセス
④ Web ServerからNOS image fileやLicense、Config fileをダウンロードし、ダウンロードした各種ファイルをホワイトボックススイッチに適応し、設定作業完了

ZTPの構成例図

ZTPの詳細については第4回の記事に詳細な説明がありますので、よかったらご覧ください

ZTPメリット/デメリット

ZTP単体の時のメリット/デメリットは下記になります。

[メリット]
 ・設定がシンプルであるためZTP環境の構築が難しくない

[デメリット]
 ・各ホワイトボックススイッチのConfigを事前に作成する必要がある
 ・初期設定に変更があれば自動で修正する仕組みがなければ全てのConfigに対してマニュアルで修正する必要がある

ZTP環境自体の構築事態は難しくありませんが、各ホワイトボックススイッチ用のConfigを用意する必要があり、この数が多いほどマニュアルによる準備の時間がかかってしまうのが課題となっています。

ZTP x Ansibleでできること

続いて、ZTP x Ansibleについてご紹介していきます。
基本的な流れはZTP単体と同じですが、Configの作成をAnsibleで行うことが可能となっています。

① ZTPで各ホワイトボックススイッチのConfigを適応(ConfigはAnsibleで作成)
② 設定変更時はAnsibleホスト上のPlaybookを編集/実行によって、リアルタイムで設定変更可能(多くのスイッチへ同じ設定を投入する際に有効)
③ Ansibleホストを使い、定期的に各装置のConfigのバックアップが可能
  ※ Playbookは実行する処理内容がかかれたファイル

ZTP x Ansibleのメリット/デメリット

ZTPとAnsibleを組み合わせた際のメリット/デメリットは下記になります。


[メリット]
 ・Ansibleで各Configを作成することができ、またその後の初期設定変更も容易におこなえる
 ・ZTP起動後は、Ansibleを使いリアルタイムでホワイトボックススイッチに対し設定変更が可能
 ・Ansibleを使い、定期的なConfigのバックアップが可能

[デメリット]
 ・Ansibleの学習コストがかかる

ZTP単体の時にあったConfigの作成作業が大幅に削減することが可能です。また、一度AnsibleのPlaybookを作成すればその後の設定変更や機器の拡張にも容易に対応が可能になります。さらに、各ホワイトボックススイッチのConfigについて定期的なバックアップを取ることも可能であり、よりオペレーションを自動化することが可能です。

※Ansibleを使ったConfigの作成方法は第3回記事により詳しく紹介していますので、よかったらご覧ください。

Ansibleを使ったバックアップ取得方法

続いてはZTP x Ansibleのメリットでも記載したAnsibleのバックアップ取得方法をご紹介します。

 ホワイトボックススイッチに対し、バックアップを定期的に行うことで、常に最新のConfigを取得できます。これによりホワイトボックススイッチが故障したとしても、交換機器に対し素早くZTPで最新のConfigを適用することができ、よりスピーディーな対応が可能になります。

 環境
 ・Server
  ‐Ubuntu 16.04
 ・ホワイトボックススイッチ
  ‐Edgecore : AS7726-32X
 ・NOS
  ‐OcNOS 1.3.9

バックアップ取得構成図

Ansibleのディレクトリー構成


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

├── set_crontab.yml #実行するPlaybookファイル  

└── backup.yml #cronジョブで実行されるPlaybookファイル

下記のようにPlaybook(set_crontab.yml)を設定し、1分おきにcronジョブ(backup.yml)を実行するスクリプトを作成します。

set_crontab.yml
---
- hosts: localhost
  gather_facts: false
  tasks:
    - name: set crontab
      cron:
        name: backup_config
        job: "/usr/bin/ansible-playbook -i ~/Ansible/ocnos-bgp-ansible/hosts  ~/Ansible/ocnos-bgp-ansible/backup.yml


cronジョブで実行されるPlaybookは下記になります。

backup.yml

---
- name: Buck up running-config
  gather_facts: no
  hosts: OCNOS
  vars:
    now_date: "{{ lookup('pipe','date +%Y%m%d%H%M') }}"
  tasks:
    - ocnos_config:
          exec_cmds:
                - 'copy running-config scp scp://tecstar:tecstar@192.168.0.80/tmp/configs/{{ inventory_hostname }}_bk.conf.{{ now_date }} vrf management'

AnsibleでPlaybookを実行

下記コマンドからPlaybook(set_crontab.yml)を実行することで定期的なバックアップの設定が完了します。

ansible-playbook set_crontab.yml

Playbookを実行後、crontabが問題なく設定されていることを確認します。

tecstar@tecstar:~$ crontab -l    ----->コマンド実行
#Ansible: backup_config
* * * * * /usr/bin/ansible-playbook -i ~/Ansible/ocnos-bgp-ansible/hosts  ~/Ansible/ocnos-bgp-ansible/backup.yml  ---->正常に設定されていることが確認できる

また、下記のように実際に1分おきにConfigが取得できており、正常に動作していることが確認できます。
(今回はファイル名にタイムスタンプをつけており、16時53分, 16時54分, 16時55分, 16時56分でバックアップが取得されている)

tecstar@tecstar:/tmp/configs$ ls
AS7726-A_bk.conf.202107191653  AS7726-A_bk.conf.202107191654  AS7726-A_bk.conf.202107191655  AS7726-A_bk.conf.202107191656



以上がZTPとAnsibleを使った自動化ソリューションのご紹介でした。
次回はOSSツールを使った監視/可視化方法をご紹介していく予定です。

最後に

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