Ansibleを高度化するソフトウェア -Ansible Towerとは-

ビジネス推進本部 応用技術部
クラウドデータインフラチーム
神保 敏幸

構成管理・自動化エンジンのAnsibleを強化するためのソフトウェアAnsible Towerについてご紹介をいたします。

Ansibleでの課題とTowerの関係

Ansibleを用いたネットワーク設定の自動化では構成管理ツールであるAnsibleの概要・特長とネットワーク管理においても利用可能な汎用的なツールであることを紹介しました。
Ansibleは単体でも自動化エンジンとして魅力的なツールですが、さらにその活用を推進するためには、いくつかの課題をクリアする必要があります。

【課題】
・開発者が用意したPlaybookを利用者が活用するためのAnsible学習コスト
・利用率の向上に伴うPlaybook/Inventoryファイル乱立による管理コスト
・様々なレイヤのPlayBookの前後関係を意識した実行(ワークフロー)と処理結果を通知する手段の考慮

このような課題を解決し、Ansibleを高度化するソフトウェアがAnsible Towerです。AnsibleとAnsible Towerの関係を表で整理しますと以下のようになります。

Ansible Engineは基礎をなすコアと様々な設定変更を可能とするライブラリのモジュールで構成され、そのコア・モジュールに組み合わせて機能拡張するソフトウェアがAnsible Towerです。それらのオープンソースアップストリームプロジェクトとして、Ansible Project/AWX projectがそれぞれ対応しています。

Towerの強み① 利用者目線でのPlaybookの標準化とJob Templete

組織で自動化を最大限活用するためには、できるだけ属人性を排除し、標準化する必要があります。
管理者目線での標準化とそのメリットとしては、yaml形式で記述する実行ファイルであるPlayBookを、標準化された手順書として扱うことができる点と、そのPlayBook(手順書)での事前レビューによる効率化です。
これはAnsibleに対する一定の学習により得られます。

では利用者目線での標準化を考えたときにはどうでしょうか。
Ansibleを活用するための学習コストを利用者に求めない標準化が望ましいと考えられます。
このような機能をAnsible Towerは実現します

Towerの管理者がPlayBookあるいはGitHubから連携させた”Job Templete”として定義しておくことで利用者は特段Ansibleに関する知識がなくとも、従来のPlayBookの実行が可能になります。

利用イメージとしては、Webブラウザにアクセスし、目的のJob Templeteを選択し、実行ボタンをクリックするという非常にシンプルなものになります。
さらに、Job TempleteにはSURVEY機能というものがあり、ユーザー実行時に対話的に管理者が指定したリストを選択させたり、自由に値を入力(入力範囲設定あり)させる
ことも可能になっています。

従いまして、Ansibleに対する詳細な学習コストなしに利用者にもPlaybookの恩恵を受けられるため、利用部門の導入のハードルを下げ、活用を促すことが可能です。

Towerの強み② 管理者/ユーザの権限分離と履歴管理・監査機能

課題②として挙げたように、組織でAnsibleを利用する際、発生しがちな状況として、以下があります。

・Playbook/Inventoryが散在し、誰がどのようなPlaybook/Inventoryを管理しているかわからない
・管理者/ユーザの権限が明確に分離されていない

このような状況では構成管理全体としての見通しが悪くなり、「誰が、いつ、どのシステムにどんな変更を加えたのか?」という追跡が難しくなります。
さらに、構成変更を起因とする障害発生時に影響範囲を特定できず、サービスレベル低下の懸念もあります。

上記の課題対応のため、Towerでは以下の機能が提供されます。

・WebブラウザからJob Templete(Playbookの置換え)を実行
・管理者/ユーザの権限分離機能
– Job/Project/Inventory単位などUser/Team毎に権限管理を
実施する。(ActiveDirectory/LDAP連携)
・履歴管理・監査機能
– 誰が、いつ、どのシステムを対象に、何をやったか、ダッシュボー
ド表⽰や変更通知、履歴管理ができる

Towerの強み③ 標準ワークフロー作成・通知機能

AnsibleではOS/Network製品/Cloud製品など幅広いレイヤを管理できます。
Ansibleモジュールは1400以上が提供されており、日々新しいモジュールが公開されています。
(http://docs.ansible.com/ansible/list_of_all_modules.html)
Ansible Engineでは拡張モジュールを利用しながらいくつかのPlayBookをまとめ、一連のワークフローとして構成することで業務の包括的な自動化を実現しやすくなっています。

ここにGUIベースのインタフェースをもつAnsible Towerを加えることで、さらに以下のような機能拡張ができます。
・ある処理単位のPlaybookの成功・失敗などの実行結果に基づく別Playbookへの分岐などの条件制御
・全体としてワークロー完了時の通知(メール・Slack・Webhook等)

以下の例はCisco Nexus 5672スイッチとCisco UCS Bシリーズに対し、構成変更(VLAN/VSANの追加)を行うワークフローのサンプルです。
説明の便宜上、2つのJob Templeteを組み合わせたシンプルなワークフローとなっていますが、パーツ化したJob TempleteをGUIで簡単に連結・共有し、包括的な自動化ができるように設計されています。

GitHubで公開されているPlaybookにはUCSやNexusなどのインフラ製品もあり、日々アップデートされておりますので比較的簡単にTowerに取り込みワークフローを作成することが可能です。

インフラ管理者がこのようなワークフローを作成することで利用者はTowerにアクセスするだけでそのワークフローを実行できインフラの自動化をより活用しやすくなります。

最後に

今回はAnsibleをさらに強化し、高度化を実現するソフトウェア製品としてAnsible Towerと具体的な強みをご紹介いたしました。
Ansibleはその対応の裾野を広げており、VMware vSphereやOSに対するアプリケーション・ミドルウェアの構築、AWS/Azureなどのクラウド、Dockerコンテナも対応しており、ハイブリッドクラウドインフラの管理にも利用できる特長があります。

また、詳細は触れませんでしたが、TowerにはRest APIインタフェースも備えており、API経由でGUIと同等の操作が可能です。
現在、弊社ではサーバやネットワークのテレメトリ情報などを収集し、機械学習にかけ、その結果を踏まえた対処として、問題修正用のPlaybookをAPI経由で実行するという取組みも進めております。
今後もAnsible/Ansible Towerの応用の場は広がっていくものと考えます。

執筆者プロフィール

神保 敏幸
ネットワンシステムズ株式会社 ビジネス推進本部
応用技術部 クラウドデータインフラチーム所属

ITインフラストラクチャに関わる先進的なテクノロジーや製品の調査・研究・検証や技術支援を行う業務に従事。
最近ではAR/VR/MRなどの調査・研究とデータインフラとしてのSplunk・クラウドインフラ自動化などの領域に注力している。
・VMware Certified Professional バージョン6 (VCP-DCV)
・Red Hat Certified System Administrator in Red Hat OpenStack(RHCSA) (EX210)

イベント/レポート

pagetop