Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.

Ansible 2.5 におけるネットワークモジュールのトピック(rc1版)

2,767 views

Published on

SRE-SET Automation Night #2 での発表資料です。
https://mercari.connpass.com/event/79046/


Ansible 2.5 正式リリース版は以下です
https://www.slideshare.net/akira6592/ansible25nw-92031433

Published in: Technology
  • Be the first to comment

Ansible 2.5 におけるネットワークモジュールのトピック(rc1版)

  1. 1. 株式会社 エーピーコミュニケーションズ 横地 晃(@akira6592) 2018/03/06 SRE-SET Automation Night #2 #automation_nights Ansible 2.5 rc1 版
  2. 2. はじめに 2 Ansible 2.5 の正式リリースが 間近に迫ってきました。 ネットワークモジュール関連でも いくつかの変更点があるので 共有いたします。 ・資料の情報は Ansible 2.5.0 rc1 時点の独自の調査に基づくものです。(主にios/junos対象) ・仕様、公式ドキュメントの内容やURLは変更される場合があります。 ・掲載している公式ドキュメントは devel バージョンの内容、URLです。 ・2.5正式リリース後、公式ドキュメントURL中の “devel” は “latest” に変更される見込みです(差し替え) Ansible 2.5 rc1 版
  3. 3. 自己紹介 3 名前 横地 晃 @akira6592 所属 株式会社エーピーコミュニケーションズ 担当 ネットワークの設計構築 最近の出来事 会議室の名前が Kingyo になった
  4. 4. 本日の内容 4  Ansible とネットワーク対応  Ansible 2.5 におけるネットワークモジュールのトピック • 1. ドキュメントの整備 • 2. ベストプラクティス • 3. 対応プラットフォームの追加 • 4. コネクションタイプの追加 • 5. ログの改善 • 6. 特権モード移行方法の追加 • 7. Persistent Connectionの仕様変更
  5. 5. 5 Ansible と ネットワーク対応
  6. 6. Ansible は構成管理ツール 6 Powerful Simple Agentless ネットワーク機器 にとってうれしい
  7. 7. Ansible のネットワーク対応 7 SSH NETCONF など 対応機種 状態取得 設定変更 など 接続方式 操作 Cisco Juniper Arista F5 など
  8. 8. Ansible 2.5 の概要  2018/03/06 時点のバージョン • Ansible 2.5.0 rc1 (stable-2.5 ブランチ) • 正式リリースは3月中予定  変更点の例 • 280個以上のモジュール追加 • loop、debugger キーワードの導入 • ネットワークモジュール関連も色々(後述)  インストール方法 • pip install ansible==2.5.0rc1 8 ・CHANGELOG https://github.com/ansible/ansible/blob/stable-2.5/changelogs/CHANGELOG-v2.5.rst 本日のメイン
  9. 9. 9 ドキュメントの整備 【トピック1】
  10. 10. ネットワーク自動化の見出しができる 10 http://docs.ansible.com/ansible/devel/
  11. 11. ドキュメントの内容  Getting Started (ここから読むのがよさそう)  ベストプラクティス (後述)  トラブルシューティング  コマンド出力結果の条件判断方法  各プラットフォームで利用するオプション 11 http://docs.ansible.com/ansible/devel/network/index.html 探しやすく、詳しくなった
  12. 12. 12 ベストプラクティス 【トピック2】
  13. 13. ベストプラクティスの内容  フォルダ構成  group_vars の利用 • コネクション、OSの種類、認証情報の指定  特権モード移行の指定方法 • become を利用(ios/eos) 13 ネットワークモジュール用のベストプラクティスが公開 . ├── facts-demo.yml ├── group_vars │ ├── eos.yml │ └── ios.yml └── inventory などなど・・・詳細は http://docs.ansible.com/ansible/devel/network/user_guide/network_best_practices_2.5.html
  14. 14. ansible_connection: network_cli ansible_network_os: ios ansible_user: myiosuser ansible_ssh_pass: !vault | $ANSIBLE_VAULT;1.1;AES256 3462343131333634313 (略) ansible_become: yes ansible_become_method: enable group_vars 配下のファイルのサンプル 14 引用元 http://docs.ansible.com/ansible/devel/network/user_guide/network_best_practices_2.5.html コネクションタイプ (4.で後述) 特権モード関連 (6.で後述) 例: group_vars/ios.yml
  15. 15. 15 対応プラットフォーム の追加 【トピック3】
  16. 16. 新たに7つのプラットフォームに対応 1. Brocade Ironware 2. Cisco NSO 3. Fortinet Fortimanager (Fortigateは2.3から対応) 4. Infoblox NIOS 5. Lenovo ENOS 6. Mellanox ONYX 7. Nokia NetAct 16 引用元 https://www.ansible.com/blog/coming-soon-networking-features-in-ansible-2.5
  17. 17. 17 コネクションタイプ の追加 【トピック4】
  18. 18. ネットワークモジュール向けに2つ追加 18 network_cli local netconf 試した限り、 localのままでもエラーにはならないが、 network_cli にしないと利用できない 2.5 の新機能もある。 追加 ios_* junos_*
  19. 19. 19 ログの改善 【トピック5】
  20. 20. エラー原因が分かりやすくなった 20 エラー原因 2.4 のエラー表示 2.5 のエラー表示 認証エラー unable to open shell. Please see: https://docs.ansible.com/ansible/network _debug_troubleshooting.html#unable-to- open-shell Authentication failed. 接続タイムアウト timed out. ・ios_command モジュール利用時の例 何かとこのログ 分かりやすいログ
  21. 21. (参考)ログサンプル 21 TASK [command] *************************************************************** fatal: [192.168.1.13]: FAILED! => {"changed": false, "msg": "unable to open shell. Please see: https://docs.ansible.com/ansible/network_debug_troubleshooting.html#unable-to-open-shell"} TASK [command] *************************************************************** fatal: [192.168.1.13]: FAILED! => {"msg": "Authentication failed."} 2.4 2.5 ・ 認証エラー(ios_command) TASK [command] *************************************************************** fatal: [192.168.1.13]: FAILED! => {"changed": false, "msg": "unable to open shell. Please see: https://docs.ansible.com/ansible/network_debug_troubleshooting.html#unable-to-open-shell"} TASK [command] *************************************************************** fatal: [192.168.1.13]: FAILED! => {"msg": "timed out"} 2.4 2.5 ・ 接続タイムアウト(ios_command)
  22. 22. 22 特権モード移行方法 の追加 【トピック6】 Router> enable
  23. 23. 2.4 では provider を利用 23 - hosts: ios connection: local tasks: - name: command ios_command: commands: - show run provider: auth_pass: adminpassxx authorize: true local コネクションと provider オプションを利用 (ネットワークモジュール固有の書き方) ・Playbook
  24. 24. 2.5 では become も利用可(ios/eos) 24 - hosts: ios tasks: - name: command ios_command: commands: - show run ansible_connection: network_cli ansible_network_os: ios ansible_user: user99 ansible_ssh_pass: userpass99 ansible_become: yes ansible_become_method: enable ansible_become_pass: enablepass99 network_cli コネクションと become オプションを利用 ・Playbook ・group_vars/ios.yml
  25. 25. 25 Persistent Connections の仕様変更 【トピック7】
  26. 26. 切断されるタイミングが変わった 26 2.4 2.5 Playbook 処理完了後もコネ クションが残り、次回に接続時に 再利用される Playbook 処理完了時にコネ クションが切断される Playbook実行1 完了 Playbook実行2 完了 Playbook実行1 完了 Playbook実行2 完了 時 間 タイムアウト 時 間 切断 ロ グ イ ン 中 切断 ログイン中 切断 2.4 2.5 経緯 https://qiita.com/t-tkgh/items/79479d553784e2fe04c6 2.5でも再利用したい場合の対策 https://qiita.com/t-tkgh/items/38beb0546e3258955fe1 ログイン中 NW機器
  27. 27. 27 まとめ
  28. 28. まとめ 28 ネットワーク向けドキュメントが拡充 ログが分かりやすくなるなどの改善も 対応プラットフォームも追加
  29. 29. 参考資料 29  Ansible 2.5 全体  CHANGELOG ◦ https://github.com/ansible/ansible/blob/stable-2.5/changelogs/CHANGELOG-v2.5.rst  Ansible 2.5 への移行ガイド (devel) ◦ http://docs.ansible.com/ansible/devel/porting_guides/porting_guide_2.5.html  Ansible 2.5 ネットワーク関連  Ansible for Network Automation (devel) ◦ http://docs.ansible.com/ansible/devel/network/index.html COMING SOON: NETWORKING FEATURES IN ANSIBLE 2.5 ◦ https://www.ansible.com/blog/coming-soon-networking-features-in-ansible-2.5 おまけ:Ansible でネットワーク機器を操作したい時に参考になりそうな日本語情報 http://tekunabe.hatenablog.jp/entry/2017/04/06/231243 ※ 2.5正式リリース後、公式ドキュメントURL中の “devel” は “latest” に変更される見込みです(差し替え)

×