てくなべ (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


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

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

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


資格をとってみる

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

tekunabe.hatenablog.jp

参考書籍

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


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

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

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

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