はじめに
なんとなく興味を持って、業務としても携わっているネットワーク自動化ですが、なにをべんきょうすればよいの?と聞かれたときのために自分なりの方法をまとめておきます。
(ここにあげげたことをすべて私がマスターしているわけではありません・・)
関連情報にアンテナをはる
新しい情報はだいたい海外からくるので、海外の情報をメインにアンテナをはる。
Blog
slack
- networktocode http://slack.networktocode.com/
ネットワークの基礎を身につける
業務をシステム化するのには業務を知る必要があるように、ネットワーク自動化するためにはネットワークの基礎を知る必要がある。
- 知識としては、CCNA / CCNPやネットワークスペシャリストレベル
- 性質の違う複数のネットワークOSを触っておく(例えばコミット要/不要)
ネットワークの設計、構築、運用業務を知る
業務をシステム化するのには業務を知る必要があるように、ネットワーク自動化するためにはネットワークの業務を知る必要がある。
- 設計、構築、運用でどのような作業があるかを知る
- 作業の特性も知っておく(頻度が多い/少ない作業、リスクが低い/高いなどの区別)
参考書籍
運用業務を知るにはこの書籍が参考になります。
プログラミングの基礎を身につける
Ansible のようなツールのみを使う場合は、プログラミング言語の知識はほとんど不要だが、動作を詳しく知ったり、カスタマイズする場合には必要。
- 言語は Python がおすすめ
- ネットワーク自動化のライブラリ(netmiko/NAPALMなど)がいくつかあるため。
- 参考書を読んで分かった気にならない
- 実際に読んで見る、書いてみる、動かしてみる。
参考書籍
Python はたくさん書籍が出版されていますが、以前私が Python の資格を受験するときはこの書籍を読みました。ボリュームが程よくてよかったです。
- 作者:Guido van Rossum
- 発売日: 2016/03/24
- メディア: 単行本(ソフトカバー)
インターフェースやフォーマットについて理解する
どのようなツールやライブラリを利用するにしても、各種インターフェースやフォーマットを意識する必要がある。
参考書籍・サイト
Cisco が提供している無料の学習サイト developer.cisco.com
NRE Labs、Ansible、NAPALM などをオンラインで学習できるサイト。仮想の Junos 環境付き。 go.nrelabs.io
Ansible などの自動化ツールの基礎を身につける
簡単なことを簡単にすませるには自動化ツールが有効。
- ブラウザだけでサクッとためすには、Katakoda の Ansibe 101
- 少し時間をとってハンズオンするには、Ansible ユーザー会主催のもくもく会へ参加。特に ネットワーク編がおすすめ
- じっくりマイペースで独学したい場合は書籍。ネットワーク自動化も書かれている「Ansible実践ガイド 第3版」をよろしくおねがいします(宣伝)
- この手のツールのメリット・デメリットをおさえる
Cisco が提供している無料の学習サイト(再掲) developer.cisco.com
資格をとってみる
2020年2月から始まった Cisco Certified DevNet Associate。自動化やプログラマビリティを扱う。Cisco 依存は多くない。 www.cisco.com
参考書籍
本記事執筆時は未発売ですが、公式はこちら。
Cisco Certified DevNet Associate DEVASC 200-901 Official Cert Guide
- 作者:Jackson, Chris,Gooley, Jason,Iliesiu, Adrian,Malegaonkar, Ashutosh
- 発売日: 2020/10/01
- メディア: ハードカバー
ネットワーク自動化ライブラリで小さなモノを作る
自動化ツールが対応していないネットワークOSに対しては、コードで開所する必要がある
- netmiko、NAPALM、nornir などのライブラリで、情報取得系、設定系それぞれ作ってみる