ZTP x Ansibleでネットワーク自動構築~初心者向けホワイトボックススイッチの実践入門~

はじめに
Open Networking(オープンネットワーキング)について取り上げた第2~4回記事では、“ZTP(ゼロタッチプロビジョニング)” と “Ansible” をそれぞれご紹介しました。今回の記事ではその2つを組み合わせて実施できる、より効率的なネットワーク構築方法をご紹介いたします。
他にもOpen Networkingに関わる記事がありますので、以下「記事一覧はこちら」からご興味のある記事をご覧ください。
導入前に知っておきたいZTPとAnsibleの基本
ZTPメリット/デメリット
ZTPは、ホワイトボックススイッチなどの機器を導入したいネットワークへ接続し、電源を入れるだけで自動的に設定がおこなわれ、使用できるようにする仕組みです。
ZTP単体でのメリット/デメリットは下記になります。
[メリット]
・設定がシンプルであるためZTP環境の構築が難しくない
[デメリット]
・各ホワイトボックススイッチのConfigを事前に作成する必要がある
・初期設定に変更があれば自動で修正する仕組みがなければ全てのConfigに対してマニュアルで修正する必要がある
ZTP環境自体の構築事態は難しくありませんが、各ホワイトボックススイッチ用のConfigを用意する必要があり、この数が多いほどマニュアルによる準備の時間がかかってしまうのが課題となっています。
ZTPの詳細については第4回の記事に詳細な説明がありますので、よかったらご覧ください。
ZTP x AnsibleでZTPのデメリットを解消
ZTPはAnsibleと組み合わせることで、Configの作成自体を自動化できるため、手間を大幅に削減できます。
ZTPとAnsibleを活用した基本的な手順を説明します。
① ZTPで各ホワイトボックススイッチのConfigを適応(ConfigはAnsibleで作成)
② 設定変更時はAnsibleホスト上のPlaybookを編集/実行によって、リアルタイムで設定変更可能(多くのスイッチへ同じ設定を投入する際に有効)
③ Ansibleホストを使い、定期的に各装置のConfigのバックアップが可能
※ Playbookは実行する処理内容がかかれたファイル

これにより、Config作成や設定変更が効率化され、管理が簡素化されます。
Ansibleの学習コストは発生しますが、一度学んでしまえばその後の運用が非常にスムーズになります。
Ansibleを使ったConfigの作成方法は第3回記事により詳しく紹介していますので、よかったらご覧ください。
Ansibleを使ったバックアップ取得方法
続いて、ZTP x Ansibleの手順③で記載したZTP x Ansibleのメリットでも記載したAnsibleのバックアップ取得方法をご紹介します。
ホワイトボックススイッチに対し、バックアップを定期的に行うことで、常に最新のConfigを取得できます。これにより、ホワイトボックススイッチが故障した場合でも、ZTPを使用して交換機器に最新のConfigを迅速に適用でき、よりスピーディーな対応が可能になります。
[構築環境]
- サーバー: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へ
IP Infusion
オープンネットワーキングプロバイダのマーケットリーダーとして、キャリア、サービスプロバイダ、データセンターなど600社以上のお客様に信頼性の高いネットワークソリューションを提供しています。
お問い合わせ・資料請求
株式会社マクニカ Edgecore Networks 担当
- TEL:045-470-9831
- E-mail:projectmonstar@macnica.co.jp
平日 9:00~17:00