ネットワーク素人がAnsibleもくもく会 NW編に参加してみた。
はじめに
CCNAも持っていなければ、ネットワークアプライアンスも碌に触ったことがない、ネットワーク素人エンジニアが、Ansibleもくもく会に参加し、ネットワーク編をもくもくしてきました。
参加したもくもく会
【リモートのみに変更】Ansibleもくもく会 (サーバ編 & NW編)2020.03 in 松江!実施したワークショップ
Ansible Network Automation Workshop
学んだこと
AnsibleでLinuxを自動構築した経験はあるので、そことの違いを中心に、個人的な発見を記載します。
ネットワーク周り
Connection Plugin
を意識する必要がある
管理対象がLinuxのみであれば、基本ssh
だけ気にしていれば良いので、あまりこの辺りを意識していませんでした。下記はワークショップ資料からの引用です。
ansible_network_os
- この次に定義されているnetwork_cli
コネクションタイプが利用される場合にこの定義は必須となります。ansible_connection
- この変数はconnection plugin
をこのグループに設定します。これは netconf, httpapi network_cli など対象のネットワークプラットフォームがサポートしている形式を設定します。
gather_facts
が使えない
gather_facts
はLinux専用で、ネットワーク機器には使用できません。
IOSの場合は、ios_facts
モジュールを使用する必要があります。
ちなみに、gather_facts: true
を指定してPlaybookを実行すると、
Gathering Facts
タスクの結果に下記が出力されました。
[WARNING]: Ignoring timeout(10) for ios_facts
ネットワーク以外
ansible-playbook
の出力形式をYAMLに変更できる
例えば、setup
モジュールの実行結果はjson形式で返りますが、私はjsonに
慣れていないので、正直見づらかったりします。
例えば、ansible.cfg
に以下のように設定すると、結果出力に使用するデフォルトの
callback pluginをYAMLに指定できるので、YAMLの方が慣れているという方は
おすすめの設定だと思います。
[defaults] stdout_callback = yaml
おわりに
Ansible、AWXは触ったことがあったので、ワークショップ全体としては、 すらすら進められたと思います。
ただ、IOSそのものの知識がないため、いざ自分でPlaybookを書くとなると、難儀しそうです。 DevNetなどを使って、色々模索していきたいと思います。
Ansible Towerについても、概要はつかめたものの、実際の運用を想定した設計となると なかなか奥が深そうという印象を受けました。