構成管理ツールの大きな利点は、サーバーの構築の手順をコード化して決まった設定を自動で行える点だけではなく、誰が作業しても同じ結果が得られ、目的とする状態にできる(冪等性)ことです。
ネットワーク機器への対応は2016年ごろから開始され、多くのベンダーのOSに対応してきています(図表1)。そのため、ネットワーク業界からも注目が集まり、検証や情報収集が進んだ企業では実際に活用し始めています。以前から、データセンター事業者はサーバーの構築に利用してきましたが、ネットワーク機器にも活用の幅を広げています。
図表1 Ansibleのネットワークモジュールの例
データセンターのインフラは、サーバーとトップオブラックのスイッチを1つのPOD(サービス提供の基本単位)として増設することがほとんどで、サーバーとスイッチをセットアップするパラメータなどはPOD間でほぼ同一になるよう設計されています。そのため、サーバーもスイッチも同じように構成管理ツールでセットアップすることが有効で、サービスの提供にかかる工数の削減やオペレーションミスの低減につなげることができます。
第1回「APIと構成管理ツールの活用法」でもご紹介したように、構成管理ツールにはいくつか種類があり、現在では「Ansible」「Puppet」「Chef」の3種類がメジャーなものと言えます。後発のツールは扱いやすいように改善されてきており、近年ではAnsibleに注目が集まっています。その理由としては以下の点が挙げられるでしょう。
●プログラミングの知識がなくても作成できる
YAML形式のテキストに手順を列挙するだけ
●エージェントレスである
SSH接続できるだけでよいので導入が容易
●処理が簡単で理解しやすい
編集は、対象となる機器と実行する処理の2つで、処理順序は記述順
●豊富なモジュール
サーバーやネットワーク機器だけでなく、コンテナの作成などクラウド連携も可能
Ansibleの基本的な仕組みAnsibleは、IT機器に対して自動的に設定を行うことができる構成管理ツールです。その概要を図表2に示します。
図表2 Ansibleの概要
設定を行うためには、管理対象の機器を記述する「Inventoryファイル」と、設定内容を記述する「Playbook」を用意する必要があります。
●Inventoryファイル
管理対象の機器と環境変数を定義
●Playbook
Inventoryファイルで定義した機器に対して行う設定内容を記述
これらのファイルはシンプルで理解しやすい言語で記述するように設計されており、取り組みのための学習コストはそれほど高くありません。
Ansibleの特徴として、エージェントレスで機器の設定ができることが挙げられます。エージェントとは、機器を操作するために必要となる専用の管理ソフトウェアのことです。
エージェントレスではない構成管理ツールを用いる場合には、管理対象の機器に専用のソフトウェアをインストールする必要があり、アンインストールされると機器が管理できなくなります。また、管理対象の機器によってはエージェントをインストールできない場合もあります。
Ansibleはエージェントをインストールする必要がなく、基本的にSSH経由で機器にアクセスして操作します。SSHは広く一般に使われている、歴史ある暗号化通信のプロトコルであり、SSHが適切に設定されていれば、Ansibleを実行するホストと機器間の通信経路はセキュアに保たれます。また、対象機器によってはSSH以外にHTTPSも利用可能です。