Upgrade to Pro — share decks privately, control downloads, hide ads and more …

ネットワーク運用自動化ジャーニーの歩み方と、これから目指す先 / Network Automation Journey

ネットワーク運用自動化ジャーニーの歩み方と、これから目指す先 / Network Automation Journey

[Ansible Automates Tokyo 2020 登壇資料(弊社パートのみ)]
Ansible は ネットワーク機器にも対応していて、多数のモジュールによって
情報取得や設定変更といった運用作業を自動化できます。
それでは、実際に既存の運用作業を自動化、Ansible 化していくためには、
どのように進めればよいでしょうか。
まずは手順の見直しや自動化、Ansible 化の可否の判断などを行い、
自動化に適した形を考慮しながら進めていきます。
このセッションでは、ネットットワーク運用自動化サービスを提供している SIer の立場から、
自動化の進め方や Playbook 実装のポイントをご紹介します。
また、実際に Ansible、Ansible Tower を導入してネットワーク運用作業の
自動化を運用している立場から、自動化によって何が解決されてどうなったのか、
そしてこれからどこを目指しているのかをお話します。

Transcript

  1. ネットワーク運用自動化ジャーニーの 歩み方と、これから目指す先 Ansible Automates Tokyo 2020 #ansibleautomates 株式会社 エーピーコミュニケーションズ 横地

    晃 1
  2. はじめに 2

  3. 内容  株式会社エーピーコミュニケーションズより  自動化の進め方  実装のポイント  株式会社JALインフォテック様より 

    Ansible で自動化するまでの経緯  導入後の変化、今後の展望 3 方法 弊社が提供している「自律支援型ネットワーク運用自動化サービス」 のお客様として共同登壇していただきます。 事例
  4. 自己紹介 4 所属 株式会社エーピーコミュニケーションズ 技術開発部 自動化グループ 共著 寄稿 Ansible実践ガイド 第3版

    Software Design 2018年12月号 他 横地 晃
  5. ネットワーク運用自動化の進め方 5

  6. 自律支援型ネットワーク運用自動化サービス 1. 導入サービス Phase1: 業務プロセスのコンサルテーション Phase2: Ansible Engineの導入 Phase3: Ansible

    Towerの導入 2. トレーニング Ansible Engine、Ansible Tower、GitLab のハンズオン オンライン対応 6 エンジニアが自ら育てる自動化へ 詳細 https://www.ap-com.co.jp/network-automation/
  7. 実装までの大まかな流れ 7 洗い出し 特定 最適化 実装

  8. 洗い出し 8 洗い出し 特定 最適化 実装

  9. 候補の洗い出し  自動化対象の候補業務を洗い出す  業務をパターン化する  似た手順は、可変部分を見極めてパターン化する  パターン化しないと、似て非なる自動化が乱立してしまう 9

  10. 特定 10 洗い出し 特定 最適化 実装

  11. 検討と特定  基準にもとづいて検討し、自動化対象業務を特定する 11  工数、期間がかかっている  大きいコスト削減効果が見込める  Ansible

    で自動化できる
  12. Ansible で自動化できるか確認する方法  モジュールを探す  公式ドキュメントの「Module Index」で確認  https://docs.ansible.com/ansible/latest/modules/modules_by_category.html 

    特に「Network modules」  https://docs.ansible.com/ansible/latest/modules/list_of_network_modules.html  ネットワーク機器ベンダーが独自にモジュール提供している場合もあり 12
  13. ネットワーク機器側での準備  SSH、NETCONF、HTTP API を有効化する  ネットワークモジュールはこれらの通信方式が前提 13 TELNET NETCONF

    HTTP API SSH
  14. さぁ Playbook 作成! 14

  15. その前に 15

  16. 最適化 16 洗い出し 特定 最適化 実装

  17. 不要な手順を削除する  追加された経緯を追い、不要だと判断できれば削除  監視システムなどでカバーできていれば削除 17 形骸化した手順 重複した手順

  18. 隠れ手順をあぶりだす  手順書にない手順をあぶりだし、定型化  例: 手順書上は1回の show コマンド実行だが、 実際はOSPFネイバーが確立されるまで繰り返し実行して確認 18

    実は・・・ あぶりだし 定型化
  19. 判断基準を明確にする  確認の判断基準をロジック化、数値化  新人教育するイメージ  作業者によって基準が異なる場合は統一 19 要注意ワード 書き換え例

    異常がないこと show log の結果に「ERROR」が含まれないこと 同程度であること 差分が5以内であること 増加していないこと 作業前と比較し、差分が0であること • ▲ ▲
  20. 機械と人の役目を整理する  自動化する/しないだけでなく半自動という選択もある  例: 判断の自動化が難しければ、判断に必要な情報収集までを自動化  人の判断や保留が必要な箇所を特定する  Ansible

    Tower の Approval 機能を利用(後述) 20 低 自動 半自動 手動 高 自動化レベル
  21. 実装 21 洗い出し 特定 最適化 実装

  22. Playbook / Ansible Tower 実装のポイント 22

  23. 確認手順の自動化方法  assert モジュールを利用できる  show コマンド結果は構造化データのほうが扱いやすい  ネットワーク機器本体の機能として対応している場合も 

    他、TextFSM や Genie Parser などのパーサーを利用 23 - name: show ospf neighbor assert: that: - state == "Full" 期待する値 show コマンドで 取得した値(の変数) 【例】OSPF ネイバーの状態がFullであることを確認
  24. 【Tower】承認機能(Approval)  ワークフローの進行を一時停止し、人による承認行為を待つ機能  例: 事前確認まで進め、設定変更の直前で止める  Ansible Tower 3.6

    からの機能 24 1 一時停止 3 承認 2 通知
  25. 管理 実行 Ansible Tower 画面 【Tower】柔軟な権限設定  「管理者は管理、作業者は実行のみ」といった権限を設定できる  意図しない作業を未然に防げる

     他チームに引き渡して「サービス化」しやすい 25 【例】 作業者 管理者
  26. 【Tower】スケジュール設定  ジョブ実行の日時や繰り返し方法を指定できる  例: 夜間向けのジョブを日中に仕込む 26

  27. 導入事例 株式会社JALインフォテック様 27

  28. まとめ 28

  29. まとめ  ネットワーク運用自動化の進め方  対象業務の洗い出し、特定、最適化したうえでPlaybookを実装  Ansible Tower には承認や権限管理など運用に役立つ機能がある 

    弊社サービスのご利用もご検討ください  自動化は様々なケースがあるため、ふりかえり等を通じて改善して参ります  JALインフォテック様の自動化ジャーニー  NW自動化推進Teamを設立、段階的な目標を設定  設計はもちろん、教育も工夫し、Ansible開発者が増加  技術面、組織面とも積極的な取り組み 29 ご清聴ありがとうございました
  30. 本資料に関するお問い合わせ 30 株式会社エーピーコミュニケーションズ 自動化グループ E-mail automation@ap-com.co.jp Web https://www.ap-com.co.jp/network-automation/

  31. 参考  人の機械の役目整理の考え方  人と機械の共生のデザイン「人間中心の自動化」を探る  https://www.morikita.co.jp/books/book/2510  Ansible 

    ネットワークモジュール一覧  https://docs.ansible.com/ansible/latest/modules/list_of_network_modules.html  Ansible Tower ワークフロー機能  https://docs.ansible.com/ansible-tower/latest/html/userguide/workflow_templates.html#approval-nodes  https://www.ansible.com/blog/how-to-add-approval-steps-to-ansible-tower-workflows 31