もしネットワークエンジニアがコンフィグなどのテンプレを自動化できるならば、冗長的な活動を減らすことが出来、データ収集や分析にもっと時間を費やすことが出来るようになります。
なぜコンフィグの自動化が必要なのか?
ネットワークコンフィグのテンプレはネットワークエンジニアの自動化にとってとても有益なものになります。最初は単純なテンプレだったとしても、それをアップデートしていくことでより有益なテンプレ=マニュアルにすることが出来ます。
私を含めて、未経験からインフラ系のエンジニアに転職する人が増えている昨今ではこのように誰でも使えるマニュアルが欠かせません。
ネットワークエンジニアがまず取り組むべきなのは特定の機器10個程度の自動化テンプレを作ることです。なるべく設定の変更がほとんどない機器を選びましょう。最初の自動化できるだけ単純なところからスタートしましょう。
自動化といえば今はPythonが人気ですね。その中でもJinjaがネットワーク設定の自動化に使える言語です。
ネットワークの自動化の価値
ネットワークの自動化を実現するためにはウェブ開発などについても理解しておくことが大切です。ウェブ系かそうでないかは自動化の基礎的なところでは関係ありません。一般的な自動化を学ぶことによって、静的な要素が必要かそれとも動的な変化が必要な自動化を見極めることが出来るようになります。
ネットワークエンジニアとしてスイッチやルーターに設定を投入する作業はとても大変なものです。単純作業になりがちですし、ミスもあります。時間もかかるので、前もってコンフィグを用意しておくこともあります。コピペで設定が完了できればうれしいですよね。
それでも多くの場合はIPの設定は違うけどその他の設定は似ているなどありますよね。コピペしたいけど、所々違うのでコピペは出来ない。それでも一つずつ設定を入れるのは大変です。
そこでなるべく単純な自動化が必要になるのです。
Jinjaを使ったネットワーク自動化
それではJinjaでコンフィグのテンプレを書いてみましょう。
テンプレ1
interface {{ interface_name }}
description {{ interface_description }}
switchport access vlan {{ interface_vlan }}
switchport mode access
下記の変数を指定するとそれぞれの値を動的に変数の中に割り当てることが出来ます。
- interface_name
- interface_description
- interface_vlan
テンプレ2
interface {{ interface.name }}
description {{ interface.description }}
switchport access vlan {{ interface.vlan }}
switchport mode access
変数の指定を辞書型に設定するには下記のようにします。
- interface.name
- interface.description
- interface.vlan
今回はここまで続きはまた別の記事でまとめます。