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

はじめに

本記事より自動構成ツールであるAnsibleについて基本的な使用方法をご紹介していきます。最終的にはAnsibleを使いBGPクロスネットワークを構成していきます。
他にもOpen Networkingに関わる記事がありますので、以下「記事一覧はこちら」からご興味のある記事をご覧ください。

Ansibleとは?

それでは最初にAnsibleについてご紹介していきます。
Ansibleとは簡単にいうと「インフラ構成管理ツール」です。

サーバーへAnsibleをインストールし、管理対象に対しパッケージのインストールや設定ファイルの編集などを一括でかつ自動で行わせることが可能です。
ただ今回はネットワーク構築を自動化するツールとしての使用方法をご紹介してきます。

Ansibleとは?

Ansibleによる自動設定イメージ図

Ansibleの動作

Ansibleの動作は非常にシンプルです。ユーザーが管理対象に対して「あるべき姿の状態」をPlaybookに記述し実行することで管理対象へ自動設定が可能です。

 【手順】
① ユーザーがPlaybookを記述
② Ansibleホスト(サーバー)でPlaybookを実行
③ Playbookの内容に従い管理対象を自動設定

Ansibleの動作

図2:Ansible概略図

 

いろいろワード出てきて混乱されると思いますので下記のように簡単にまとめました。

単語 意味
Inventory(インベントリー) ・操作対象とするホストのアドレスを記述し、管理対象を定義するファイル
・デフォルトファイルは/etc/ansible/hosts
Module(モジュール) ・管理対象で実行される処理の最小単位
・Tasksで指定した処理を実行する汎用ライブラリー
Task(Tasks lists) ・具体的な処理を実行する順に配列で記載したファイル
Playbook ・リモートホストの状態を定義したファイル(実行する処理内容)
・モジュールを複数組み合わせ、管理対象ホストに対し操作が可能
・yamlで記述する

Playbookの中身例

Ansibleの環境設定

続いてAnsibleを使用するための環境構築についてご紹介していきます。
まずAnsibleの動作に必要な環境は以下になります。

 〇Ansibleホスト(サーバー)側
 ‐Ansible 2.3以降
 ‐Python 2.6以降
 ‐SSH接続可能であること

※管理対象のネットワークOSによって求められるversionが異なるため基本的には最新versionのご使用を推奨します。

上記はCumulusの場合の求められるversionになります。

サーバーへAnsibleのインストール

今回はUbuntuにAnsibleをインストールします。手順は下記になります。

 $ sudo apt update
 $ sudo apt install software-properties-common
 $ sudo apt-add-repository --yes --update ppa:ansible/ansible
 $ sudo apt install ansible

 OSごとに少しずつインストール方法が異なるためUbuntu以外のOSをご使用の場合はAnsibleのホームページよりインストール手順をご参考にしてください。(下記URL)

https://docs.ansible.com/ansible/latest/installation_guide/intro_installation.html?extIdCarryOver=true&sc_cid=701f2000001OH7YAAW

Ansible接続確認

上記までで環境設定は終了です。次はAnsibleの接続試験を行っていきます。
Ansibleをインストールするとデフォルトで/etc/ansibleディレクトリーが作成されます。
そしてインベントリー(/etc/ansible/hosts)に対象ホストのアドレスを追記します。

Ansible接続確認

Pingを実行する

下記コマンドを実行することでhostsに記述した全ての管理対象機器に対しサーバーからpingを行います。pingが通れば接続確認の完了です。

 $ ansible -i [インベントリーファイル名] all –m ping

Pingを実行する

ping実行イメージ

 今回はデフォルトのインベントリー(/etc/ansible/hosts)とは別に新たなhostsを用意し、それを指定し実行しています。

Ansibleでホワイトボックススイッチの自動設定

最後にAnsibleを使ってホワイトボックススイッチの自動設定をし、BGPクロスネットワークを構成していきます。今回はconfigファイルを事前に用意しておき、その各ファイルを対象スイッチへコピーし、設定を適用するPlaybookを用意します。

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

Ansibleでホワイトボックススイッチの自動設定

BGPクロスネットワーク図

Ansibleのディレクトリー構成

┣━ hosts  #インベントリーファイル

┃━ setup.yaml  #Playbookファイル

┗━ bgp-unnumbered  #各ホストの設定ファイルディレクトリー
  ┃
  ┣━ AS7726-A  #AS7726-32X用設定ファイルディレクトリー
  ┃    ┣━daemons
  ┃    ┣━frr.conf
  ┃    ┗━interfaces
  ┃   
  ┣━ AS7726-B  #AS7726-32用設定ファイルディレクトリー
  ┃    ┣━daemons
  ┃    ┣━frr.conf
  ┃    ┗━interfaces
  ┃
  ┗━ AS7326-A  #AS7326-54X用設定ファイルディレクトリー
  ┃    ┣━daemons
  ┃    ┣━frr.conf
  ┃    ┗━interfaces
  ┃
  ┗━ AS7326-B  #AS7326-54X用設定ファイルディレクトリー
           ┣━daemons
           ┣━frr.conf
           ┗━interfaces

 下記のように設定ファイルを用意します。

 

hosts

hosts

playbook

playbook

実行するTaskは下記5つ

 ① interfaceのコンフィグをスイッチへ投入するTask
 ② bgpのdaemonをenableにするTask
 ③ FRRのコンフィグをスイッチに投入するTask
 ④ interfaceコンフィグのreloadコマンドをスイッチで発行
 ⑤ frrコンフィグのreloadコマンドをスイッチで発行

inventry_hostnameは定義済み変数であり、hostsに書かれたホスト名を指す

AnsibleでPlaybookを実行

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

playbook実行ログ

playbook実行ログ

スイッチを確認すると設定が反映されており、BGPセッションが確立されていることがわかります。

BGP実行結果①

BGP実行結果①

ルートも正常に広報されています。

BGP実行結果②

BGP実行結果②

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

ping結果

ping結果

 以上が、Ansibleの基本的な使い方になります。次回はAnsibleで設定コンフィグを作成するところお見せしたいと思います。

最後に

マクニカではオープンネットワーキングを実際に体験し、試験や検証をおこなえる環境をリモートで提供するサービスのご用意があります。
本サービスでは、ネットワークOSの操作性の検証、様々なメーカーのネットワークOSやホワイトボックススイッチ、光トランシーバーを組み合わせた試験をおこなえます。

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