自動化の進め方から、導入の経験談、内製ソフトとの連携まで。Red Hat Ansible Automates Tokyo 2020 Day2
Day1に引き続き、Red Hat Ansible Automates Tokyo 2020 Day2のセッションについてまとめました。
Red Hat Ansible Automates資料・動画まとめページへ
目次
・実事例から学ぶ、大規模ネットワーク環境をAnsibleで自動化する方法
・ネットワーク運用自動化ジャーニーの歩み方と、これから目指す先
・ユーティリティ クラウドにおける自動化2.0への道のり
実事例から学ぶ、大規模ネットワーク環境をAnsibleで自動化する方法
Red Hat, Inc. Landon Holley(ランドン・ホレイ)氏
このセッションでは、大規模な環境でAnsibleを活用した事例と、最新のリリースであるAnsible 2.9で実現できる簡素化されたネットワーク自動化の方法が紹介されました。
※セッションは字幕付きの動画で公開されています
ネットワーク自動化を始めるにあたって、まずはファクトの収集を必要があるとHolley氏は話しました。
ネットワークの自動化を始めようとしている多くの人々は数多くの種類のデバイスを持っている可能性があり、様々な構造や様々なインベントリを持っているとも言えます。
自分のデバイスやデバイス上の構成からこうすれば情報を最大限得られるのかということを知るための近道がファクト収集です。
Ansibleを活用したファクト収集によって、ネットワークの自動化や自動化全般においてやらないといけないことのほぼすべてを基本的に行うことが出来ます。
Ansible 2.9より前はAnsibleのネイティブのファクト収集は少々癖があるもので、カスタムでのファクト収集がよくされていたが、カスタムファクトは構築に時間のかかるものでした。
Ansible 2.9ではネイティブのファクト収集についても大幅に改善されたとHolley氏は語ります。プレイ(Playbookの一部)の一番はじめにファクトを収集したいと宣言することで、安定してデバイス上のすべての情報を取得しユーザーの代わりに解析できます。
ファクト収集の度に生成されるファクトリストを比較することである時点と別の時点のデバイスの状態の差分を知ることが出来ます。
ファクトとログはビックデータへの登龍門となり得るという話もありました。大規模なネットワーク自動化のプロジェクトに関わると大量のデータを目にすることになりますが、だからと言って最初からすべてに向き合う必要はなく、「案件が大規模もしくは複雑であっても1歩ずつ進んで行くことが大切である」とHolley氏は言います。
このセッションでは、大規模もしくは複雑な案件でも役に立つ設定等に関する各種アイディアも紹介されました。
学習のためのリソースやAnsibleを理解するのに役立つ情報の紹介でセッションを締め、セッションのあとのQ&Aコーナーで、Holley氏はイベント参加者からの質問に応じました。
ネットワーク運用自動化ジャーニーの歩み方と、これから目指す先
株式会社エーピーコミュニケーションズ 横地 晃 氏
株式会社JALインフォテック 安達 大輝 氏
本セッションでは、株式会社エーピーコミュニケーションズから自動化を進めるためのポイントのご紹介と、同社が提供している「自律支援型ネットワーク運用自動化サービス」について紹介されました。「自律支援型ネットワーク運用自動化サービス」では、「エンジニアが自ら育てる自動化へ」がコンセプトの導入支援およびトレーニングを行っています。
まずはじめに、エーピーコミュニケーションズの横地氏からは、自動化の進め方と実装のポイントが紹介されました。
実装まで「洗い出し」「特定」「最適化」「実装」の4つのステップがあることを挙げ、セッション中でそれぞれで何をすべきかやポイントを掘り下げています。
特に「最適化」の項目では、どのように最適化すると自動化が進めやすいのかのポイントが4つ紹介されました。
①確認コマンド等が追加された経緯を追い、不要だと判断できれば削除するなど「不要な手順の削除」
②手順書上には記載されていない手順をあぶりだし、定型化する「隠れ手順をあぶりだす」
③確認の判断基準をロジック化、数値化する「判断基準を明確にする」
④人の判断や保留が必要な箇所を特定するなど「機械と人の役目を整理する」
JALインフォテック 安達氏からは、「自律支援型ネットワーク運用自動化サービス」の事例について、最も作業頻度も設定量も多かったCisco ACIの構築作業を自動化が紹介されました。
「毎週2日、4~6名体制で作業しても5時間ほどCisco ACIの構築作業に時間がかかっていた」などのネットワークチームが抱える問題を解決するためにネットワーク自動化推進チームが立ち上げられましたが、チームメンバーのほとんどが自動化開発未経験者で、自動化のゴールや進め方を知りませんでした。
そのため、社内でAnsibleを推進しているATLASチームとネットワーク自動化に定評のあるエーピーコミュニケーションズの協力のもと自動化が進められました。
ATLASチームでAnsible Towerを導入済みであること、自動化の対象に設定したCisco ACIのモジュールが豊富でPlaybookがYAML形式で読みやすく分かりやすいという2つの理由で、自動化のツールにはAnsibleが採用されました。
Ansibleでの自動化にあたり、設計段階で以下のような工夫が紹介されました。
「実際の運用がしやすいように工夫されたCisco ACI構築用のワークフローテンプレートを作成したこと」「Ansible TowerのSURVEY機能で4つの変数を入力してワークフローテンプレートを実行するだけにしたこと」「成功および失敗の通知をSlackで受け取れるようにしたこと」「ワークフローは時間指定で自動的に開始できるように設計したこと」の4点です。
また、教育面にも工夫がありました。
定期的にメンバーに課題を与えてスキルを可視化し、スキルに応じてAnsible Towerの権限を付与するというものです。
上記は当日セッションで語られた一部ですが、Ansibleを導入したことで、Cisco ACIの構築作業にかかっていた時間が80%削減されネットワークチームが抱えていた課題の解決が出来ました。また、自動化によりヒヤリハットや設定漏れを防ぐことができたようです。
副次的な導入の効果として、メンバーの成長が挙げられました。
ネットワーク自動化メンバーのうちAnsibleを使えるメンバーが2019年10月時点では2名だったのが、2020年6月時点で10名となり、現在ではCisco ACI以外の自動化にも取り組んでいるそうです。
「COVID-19により日本および世界の経済は苦戦を強いられていますが、自動化を進めることが出来る機会と前向きに捉えて頑張ってまいります」と安達氏のパートを締めました。
「このセッションが、これから自動化をはじめたい方や今自動化をしているが今後どうしていけば良いか迷っている方にとって、ポジティブな内容になっていたら良いと思う」と横地氏がセッションをまとめました。
ユーティリティ クラウドにおける自動化2.0への道のり
株式会社オプテージ 小路山 光希進 氏
「なぜ自動化をするのか、Ansibleを使うことがいつの間にか目的になっていないか」と小路山氏は聴衆に問いかけました。
現場にはサーバーの技術者やそれを運用する方もおり、スキルレベルも様々ですが、それでも共通の目的を達成していく必要があります。このセッションでは、自動化を浸透させるための工夫が紹介されました。
株式会社オプテージが提供するユーティリティ クラウドでは、サービスの成長に伴い運用コストが増え、緊急対応に追われてサービスレベルの維持が出来なくなることや、品質の向上にリソースを割けなくなることが懸念されたそうです。
そこで、「人のコストを下げ、運用とサービスの品質を上げる」「環境変化に対応できる柔軟性をもつ」の2点を目的に掲げ、「Ansibleによる手作業のコード化」「業務プロセスを改善し浸透させる」の2つを手段に自動化が行われました。
新しい仕組みを浸透させるには、運用者が難しいと思わない自動化の仕組みづくりが必要になります。
ユーティリティ クラウドでは、「Gitレス、YAMLレスでAnsibleを使えるようにする」「自動化に適した業務プロセスの改善を行う」「依頼入力システムを内製する」ことで難しさの解決を図ったそうです。
自動化のためのツールはシンプルかつ人気のAnsibleに決定したものの、YAMLを読み、Gitを操作することは運用現場では難しいことでした。
「複雑・難しい作業はシステムにさせる(隠す)」という理由から、Gitレス、YAMLレスでAnsibleを使えるようにしたとのことです。
ユーティリティ クラウドでは、クライアント設定変更や新しい設定の構築をするためにパラメータが記載されたExcelを利用しており、インベントリの更新をするにはパラメータが記載されたExcelの変更箇所を見つけてYAMLに変換する必要があり、結局は人手がかかってしまいます。
そのほかにも、「作業ログのエビデンスを残したい」「実行が長いPlaybookは非同期で行いたい」「セキュリティのため実行ユーザーを管理したい」といった浸透を阻む壁がありました。
また、従来の業務プロセスには、多くのツールを使う必要があったり、手作業によるコストが増えリスク管理も必要であったりという問題がありました。
これを、チケットシステムでやり取りを管理し依頼入力システムに承認機能を持たせるようにすることで業務プロセスをシンプルに改善しました。
内製された依頼入力システムは、主に「ExcelからYAML、YAMLからExcelへ相互変換を行う」「Ansible Towerジョブテンプレートの実行」「Gitの操作」「承認された作業のみが実行できる承認フロー」の4つの機能を持ち、業務プロセスの改善に貢献しました。
また、依頼入力システムを利用した自動化の浸透を図るために、パラメータExcelにもフォーマットの見直しや規則化といった改修を加えたそうです。
自動化プロジェクトでは様々な問題が起こり得ますが、「何を言われても自動化の目的を見失わないことが大事」と小路山氏は言いました。
そして、「Ansibleを用いた取り組みの効果を最大化させるには、いかに浸透させるかが重要であり、こういったところへのアプローチが自動化の次のステップに繋がっていくのではないかと思う」と締めくくりました。
イベントの資料や動画を公開中
Ansible Automates Tokyo 2020関連の資料や動画はこちらにまとまっておりますので、興味のある方はぜひご覧ください。
Red Hat Ansible Automates Tokyo 2020 資料・動画まとめ
Ansibleをこれから学ぶあなたに : Ansibleマンガ
Ansibleを最短距離で学ぶ : Ansibleトレイルマップ