【初心者向けAnsible】BGPクロスネットワークを自動構築!Ansibleで始めるネットワーク構築 Part1
はじめに
本記事より自動構成ツールであるAnsibleについて基本的な使用方法をご紹介していきます。最終的にはAnsibleを使いBGPクロスネットワークを構成していきます。
他にもOpen Networkingに関わる記事がありますので、以下「記事一覧はこちら」からご興味のある記事をご覧ください。
Ansibleとは?
それでは最初にAnsibleについてご紹介していきます。
Ansibleとは簡単にいうと「インフラ構成管理ツール」です。
サーバーへAnsibleをインストールし、管理対象に対しパッケージのインストールや設定ファイルの編集などを一括でかつ自動で行わせることが可能です。
Ansibleの大きな特徴は、管理対象サーバーに専用のエージェント(常駐プログラム)をインストールする必要がない「エージェントレス」である点です。これにより、導入の手間が少なく、すぐに自動化を始めることができます。
今回はその中でも、ネットワーク構築を自動化するツールとしての使用方法をご紹介してきます。
Ansibleによる自動設定イメージ図
Ansibleによる自動化の仕組みと手順
Ansibleの動作は非常にシンプルです。ユーザーが管理対象に対して「あるべき姿の状態」をPlaybookに記述し実行することで管理対象へ自動設定が可能です。
 【手順】
① ユーザーがPlaybookを記述
② Ansibleホスト(サーバー)でPlaybookを実行
③ Playbookの内容に従い管理対象を自動設定
図2:Ansible概略図
 
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)
Ansible接続確認
上記までで環境設定は終了です。次はAnsibleの接続試験を行っていきます。
Ansibleをインストールするとデフォルトで/etc/ansibleディレクトリーが作成されます。
そしてインベントリー(/etc/ansible/hosts)に対象ホストのアドレスを追記します。
Pingによる接続確認
下記コマンドを実行することでhostsに記述した全ての管理対象機器に対しサーバーからpingを行います。pingが通れば接続確認の完了です。
$ ansible -i [インベントリーファイル名] all –m ping
ping実行イメージ
今回はデフォルトのインベントリー(/etc/ansible/hosts)とは別に新たなhostsを用意し、それを指定し実行しています。
Ansibleでネットワークを自動設定する実践
BGPクロスネットワーク構築の準備と概要
最後にAnsibleを使ってホワイトボックススイッチの自動設定をし、BGPクロスネットワークを構成していきます。今回はconfigファイルを事前に用意しておき、その各ファイルを対象スイッチへコピーし、設定を適用するPlaybookを用意します。
 環境
 ・サーバー
  ‐Ubuntu 16.04
 ・ホワイトボックススイッチ
  ‐Edgecore : AS7726-32X x 2 & AS7326-56X x 2
 ・NOS
  ‐Cumulus Linux 3.7.14
BGPクロスネットワーク図
Ansibleのディレクトリー構成
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
playbook
実行するTaskは下記5つ
 ① interfaceのコンフィグをスイッチへ投入するTask
 ② bgpのdaemonをenableにするTask
 ③ FRRのコンフィグをスイッチに投入するTask
 ④ interfaceコンフィグのreloadコマンドをスイッチで発行
 ⑤ frrコンフィグのreloadコマンドをスイッチで発行
inventry_hostnameは定義済み変数であり、hostsに書かれたホスト名を指す
AnsibleでPlaybookを実行
続いて上記で記述したPlaybookを実行していきます。
playbook実行ログ
スイッチを確認すると設定が反映されており、BGPセッションが確立されていることがわかります。
BGP実行結果①
ルートも正常に広報されています。
BGP実行結果②
広報されたルートより、各スイッチのloopbackへpingが飛ぶことも確認できます。
ping結果
以上が、Ansibleの基本的な使い方になります。次回はAnsibleで設定コンフィグを作成するところお見せしたいと思います。
最後に
マクニカではオープンネットワーキングを実際に体験し、試験や検証をおこなえる環境をリモートで提供するサービスのご用意があります。
本サービスでは、ネットワーク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




