てくなべ (tekunabe)

ansible / network / automation

ネットワーク自動化の勉強って何やればよい?

はじめに

なんとなく興味を持って、業務としても携わっているネットワーク自動化ですが、なにをべんきょうすればよいの?と聞かれたときのために自分なりの方法をまとめておきます。

(ここにあげげたことをすべて私がマスターしているわけではありません・・)


関連情報にアンテナをはる

新しい情報はだいたい海外からくるので、海外の情報をメインにアンテナをはる。

Blog

slack


ネットワークの基礎を身につける

業務をシステム化するのには業務を知る必要があるように、ネットワーク自動化するためにはネットワークの基礎を知る必要がある。


ネットワークの設計、構築、運用業務を知る

業務をシステム化するのには業務を知る必要があるように、ネットワーク自動化するためにはネットワークの業務を知る必要がある。

  • 設計、構築、運用でどのような作業があるかを知る
  • 作業の特性も知っておく(頻度が多い/少ない作業、リスクが低い/高いなどの区別)

参考書籍

運用業務を知るにはこの書籍が参考になります。


プログラミングの基礎を身につける

Ansible のようなツールのみを使う場合は、プログラミング言語の知識はほとんど不要だが、動作を詳しく知ったり、カスタマイズする場合には必要。

  • 言語は Python がおすすめ
    • ネットワーク自動化のライブラリ(netmiko/NAPALMなど)がいくつかあるため。
  • 参考書を読んで分かった気にならない
  • 実際に読んで見る、書いてみる、動かしてみる。

参考書籍

Python はたくさん書籍が出版されていますが、以前私が Python の資格を受験するときはこの書籍を読みました。ボリュームが程よくてよかったです。

Pythonチュートリアル 第3版

Pythonチュートリアル 第3版

  • 作者:Guido van Rossum
  • 発売日: 2016/03/24
  • メディア: 単行本(ソフトカバー)


インターフェースやフォーマットについて理解する

どのようなツールやライブラリを利用するにしても、各種インターフェースやフォーマットを意識する必要がある。

  • CLIGUI 特徴、メリット、デメリットを知る
  • データフォーマット(JSON/YAML/XMLなど)を知る
  • REST API を知る
  • YANG、NETCONF、RESTCONF を知る

参考書籍・サイト

www.oreilly.com

Cisco が提供している無料の学習サイト developer.cisco.com

NRE Labs、Ansible、NAPALM などをオンラインで学習できるサイト。仮想の Junos 環境付き。 go.nrelabs.io


Ansible などの自動化ツールの基礎を身につける

簡単なことを簡単にすませるには自動化ツールが有効。

Cisco が提供している無料の学習サイト(再掲) developer.cisco.com


資格をとってみる

2020年2月から始まった Cisco Certified DevNet Associate。自動化やプログラマビリティを扱う。Cisco 依存は多くない。 www.cisco.com

tekunabe.hatenablog.jp

参考書籍

本記事執筆時は未発売ですが、公式はこちら。


ネットワーク自動化ライブラリで小さなモノを作る

自動化ツールが対応していないネットワークOSに対しては、コードで開所する必要がある

  • netmiko、NAPALM、nornir などのライブラリで、情報取得系、設定系それぞれ作ってみる

CLIの延長ではない世界に触れる