Ansible

Ansible概要

Ansible

Ansible は、シンプルでエージェントレスの IT 自動化テクノロジーです。現行の作業効率の向上や、さらなる最適化を目的としたアプリケーションの移行を可能にし、組織全体における DevOps 実践のための仕組みを提供します。

Ansibleの特徴

Ansibleは構成管理ツールとして多くの利用しやすい特徴を有しています。

  • エージェントレス

    Ansibleの操作対象にはエージェントが必要ありません。Linux系のサーバーであればssh、Windowsサーバーであれば、WinRMといったOS標準の機能、クラウドやネットワーク機器といったものは各操作対象が提供しているAPIなどを利用してリモートで操作を実行します。このため、導入が容易であり、既存の環境にも適用しやすいといった特徴があります。

  • 可読性の高いYAML形式の定義ファイル

    AnsibleでIT機器を操作する場合、YAML形式で記述するPlaybookと呼ばれる設定ファイルに操作内容を記述します。YAML形式のため、プログラムやスクリプト言語と異なり可読性が高く、学習コストが低いといった特徴があります。

  • 豊富なモジュール

    Ansibleには実行したい操作対象や作業に応じて、さまざまなモジュールが標準で容易されています。標準モジュールを組み合わせたPlaybookを作成することで、一連の作業手順を簡潔に定義できます。

  • べき等性を担保

    べき等性とは、なんど実行しても同じ状態になることを意味します。Ansibleでは実行後にどうなっているべきかをplaybookに定義します。設定がまだされていなければ設定変更を行い、すでに設定されていれば処理をスキップします。現在の状態を確認し、処理を分岐させる必要はありません。

  • 再利用性が高い

    Ansibleのplaybookはテキスト形式の定義ファイルです。繰り返し行う作業はroleと呼ばれる単位にまとめておくことで、容易に再利用することができます。また、実行環境や実行タイミングによって設定変更が可変となるパラメータを変数化しておくことで、同じplaybookを容易に再利用することができます。

これらの特徴により、IT資産を効率的に管理することができます。

Ansibleのシステム構成例

Ansibleはエージェントレスで動作するため、AnsibleをインストールするLinux端末が1台あれば、あらゆるIT機器を操作することができます。

図 1

図 1 Ansibleのシステム構成例

Ansible Tower

Ansible は非常に強力な構成管理ツールですが、エンタープライズで利用する場合、権限分離、変更履歴の管理、監査証跡の取得といった機能が重要になります。 Ansible Tower を利用するとこれらのエンタープライズで必要な機能を効率的に実現できます。
また、Ansibleはコマンドラインツールのため、利用するにあたってそれなりのスキルが必要になりますが、Ansible Tower であれば、WEBベースのダッシュボードが提供されるため、直感的な操作が可能となります。

表 1 Ansible Towerで提供される機能

機能 説明
ダッシュボード WEBベースの管理画面を提供します。
リモートコマンドの実行 サーバー、ネットワーク機器、仮想基盤、クラウドなどさまざまな環境に対して、リモートでコマンドを実行できます。
JOBスケジュール 日時指定や定期実行JOBを設定できます。簡易なJOBフロー機能も提供します。
インベントリ管理 JOB実行結果の通知機能を提供します。
アクセスコントロール ユーザー、チーム、組織などの単位できめ細かなアクセスコントロールを実現します。
監査証跡 JOBの実行結果の保管と検索機能を提供します。
RESTfull API 他の製品や個別プログラムからJOB制御が可能となるRESTfull APIを提供します。

Ansible Tower を利用する場合、Ansible Tower インストール用のサーバーと、Playbook を管理するためのバージョン管理システムが必要となります。

図 2

図 2 Ansible Tower のシステム構成例

Ansibleサブスクリプション

Ansibleサブスクリプション(Ansible Automation Platform)は、Ansible Automation Controller (旧称 Ansible Tower) と Ansible (旧称 Ansible Engine) がセットになったサブスクリプションとなります(個別のサブスクリプションはありません)。 Ansibleから操作する対象のノード数(最小単位:100ノード)に応じてサブスクリプションが必要となります。

Red Hat コンテンツ一覧

関連商品・キーワード