■ はじめに
2018/04/20 に開催された JANOG41.5 Interim Meeting で「もっと気軽に始めるAnsible」という発表をさせていただきました。
Ansible はネットワーク機器にも対応しています。YAML形式の定義ファイル(Playbook)を書かずに、もっと気軽に始められる Ad-Hoc な Ansible の使い方をご紹介します。
今回は、Playbook もインベントリファイルも、設定ファイルも作らず、意地でもコマンドで済ませるというポリシーです。
この記事では、発表資料の共有とサンプルコマンドの再掲、感想をまとめます。
■ 資料
発表に使用した資料はこちらです。
■ 動画
Jストリーム様のご協力により発表の動画も公開されました。私の発表は 1:23:20 頃からです。
他の方の発表の分も JANOG41.5 connpass イベントページ に掲載されています。
コマンドサンプル
資料中に掲載されているサンプルコマンドをコピペしやすいように、以下に再掲します。
環境準備 (資料P22)
# Ansible のインストール pip install ansible # Junosモジュールで必要なpythonモジュールのインストール pip install ncclient jxmlease
利用例1: コンフィグの取得
- 準備 (資料P12)
# 実行結果を json にする export ANSIBLE_STDOUT_CALLBACK=json # ansible コマンドでも前述の設定を有効にする export ANSIBLE_LOAD_CALLBACK_PLUGINS=True # (オプション)接続対象ホストキーがAnsibleホストに未登録の場合は、ホストキーチェックを無効化 export ANSIBLE_HOST_KEY_CHECKING=False
- 実行 (資料P13)
ansible -i 172.16.0.1, all \ -m junos_command \ -a "commands='show configuration'" \ -c netconf -u root -k \ -e ansible_network_os=junos \ | jq -r ".plays[0].tasks[0].hosts[].stdout[0]" > config.txt
利用例2: 参照NTPサーバーの追加
- 準備
# (オプション)接続対象ホストキーがAnsibleホストに未登録の場合は、ホストキーチェックを無効化 export ANSIBLE_HOST_KEY_CHECKING=False
- 実行 (資料P16)
ansible -i 172.16.0.1,172.16.0.2 all \ -m junos_config \ -a "lines='set system ntp server 172.16.0.123'" \ -c netconf -u user1 -k \ -e ansible_network_os=junos
参考資料
資料中に掲載されているリンクをジャンプしやすいように、以下に再掲します。
- 公式ドキュメント
- ansible コマンドでネットワークモジュール を使う (Run Your First Network Ansible Command)
Run Your First Command and Playbook — Ansible Documentation
- その他
仮想Junos4台とAnsibleホストをVagrantで構築するVagrantfile tekunabe.hatenablog.jp
仮想ネットワーク機器のオンラインラボサービスの使い方 tekunabe.hatenablog.jp
Ansible でNW機器を操作したい時に参考になりそうな日本語情報 tekunabe.hatenablog.jp
■ togetter まとめ
私の発表時のツイートは P13 の 18:23 あたりからです。
■ 感想など
発表の反応を拝見すると「ワンライナー的な使い方もアリだな」ですとか「Cisco IOSで試してみた」という方々がいらっしゃって嬉しかったです。
@akira6592 さんの「もっと気軽に始めるAnsible」の発表に触発され、Cisco IOSでも試してみました。事前準備なくAnsibleを試せるので、楽でいいですね。 #janoghttps://t.co/1jdYHlLDPq pic.twitter.com/mMmGroj3nT
— kooshin (@kooshin) 2018年4月20日
ネットワークエンジニアが Ansible を触ってみる入り口の一つとして、今回の発表が参考になったら幸いです。
さて、JANOG は前回のJANOG 41が初参加でした。ネットワーク運用自動化BoF内で発表もさせ頂いたので、2回連続で機会をいただきました。ありがとうございました。
- 前回の振り返り記事 tekunabe.hatenablog.jp
次回 JANOG 42 は、2018/07/11-13 に三重で開催されます。次回も参加する予定です。