サーバー、端末の設定自動化「構成管理ツール」とは

 最近「構成管理ツール」という言葉を、良く耳にするようになりました。これは、OSのインストールやソフトウェアのインストールを一括管理するツールのことです。ここでは、この構成管理ツールについてまとめたいと思います。

目次
2.Ansible
3.Chef
4.Puppet
5.Salt
6.Vagrant

1.はじめに

 ここで言う構成管理ツールとは、Linuxを中心に利用が広がりだした、Ansible、Chef、Puppet、Salt等のミドルウェアのことです。これらを利用することで、OSのインストール、ユーザーの作成、各種ソフトウェアのインストールを一括処理することができます。
 1台だけをインストールするのであれば、このようなミドルウェアを利用する必要はありませんが、これが100台、1000台となると、相当な手間がかかる上にミスが発生する可能性があるため、これらミドルウェアが必要となります。
 以前からLinuxではシェル、Windowsではバッチを利用して、環境構築の自動化は行われていました。しかし、この方法ではOSのインストールを自動化することができません。このため、これらミドルウェアを利用してOSのインストール含め自動化します。

 これら、構成管理ツールが一般的に利用されるようになったきっかけは、AWS、Azure等のクラウドサービスの台頭により、低価格で、そしてワンクリックで仮想マシンが作成できるようになったためです。これにより、必要に応じて、仮想マシンを作ったり、消したりする運用が可能となったのですが、この際、ミドルウェアを利用することで、都度仮想マシンをセットアップする労力を省くことが出来ます。
 今後、クラウド上では構成管理ツールの利用がさらに広まると思われます。

 一方、物理的に多数のサーバーや端末をキッティングする大企業ではイメージバックアップが可能なバックアップ製品を利用して、端末を複製する方法が一般的であり、今後もこれらの構成管理ツールに取って変わるということはないと考えます。

 余談ですがSDN(:Software Defined Network)と呼ばれる、ネットワーク機器をソフトウェアで管理する手法は、その中核となる技術であるOpenFlowに対応したネットワーク機器が高額、また非搭載モデルも存在するため、一向に普及しませんが、サーバー、端末のソフトウェアによる制御は、これら構成管理ツールの普及によりさらに進化すると思われます。

2.Ansible

 RedHatが管理する構成管理ツールです。YAMLと呼ばれるマークアップ言語を、設定ファイルの書式に採用しており、Chef、Puppet、Saltのように各プログラム言語で設定ファイルを書かなければならないタイプの構成管理ツールに比べ、設定が簡単です。一方、条件分岐のある複雑な設定には対応できません。
 Linuxに加え、Windows版もリリースされましたが、現状macOSには対応していません。
 無償、商用可、OSSのGNU Licenseで運用されます。

Ansible(https://www.ansible.com/)


3.Chef(シェフ)

 設定ファイルをRubyで記載するタイプの構成管理ツールです。Ansibleに比べ、Rubyのコーディング知識が必要な分難易度が高いですが、複雑な設定が可能です。
 Linuxに加え、Windows、macOSにも対応するとWEBページに記載がありますが、説明資料が少なく、基本的にはLinux用と考えた方が良さそうです。
 無償、商用可、OSSのApache Licenseで運用されます。

Chef(https://www.chef.io/chef/)


4.Puppet(パペット)

 設定ファイルをRubyで記載するタイプの構成管理ツールです。Chefと同等製品です。
 マルチプラットフォームと言われていますが、基本的にはLinux用と考えた方が良さそうです。
 無償、商用可、OSSのApache Licenseで運用されます。Puppet Enterpriseという商用版が発売されており、OSS版に機能追加されています。開発元のPuppetは日本支社を作っており、今後商用版のみかもしれませんが、日本語対応が他のツールに比べて進む可能性があります。

Puppet(https://puppet.com/ja)


5.Salt(SaltStack)

 設定ファイルをPythonで記載するタイプの構成管理ツールです。Pythonのコーディング知識が必要な分難易度が高いですが、複雑な設定が可能です。
 マルチプラットフォームと言われていますが、基本的にはLinux用と考えた方が良さそうです。
 日本語ドキュメントが少なく、情報収集に労力がかかると思います。
 無償、商用可、OSSのApache Licenseで運用されます。

Salt(SaltStack)(https://saltstack.com/)


6.Vagrant(ベイグラント)

 他のAnsible、Chef、Puppet、Saltと違い、仮想化環境の構成管理ツールです。設定ファイルは独自のコマンドによるもので、若干の学習コストを必要とします。
 仮想化環境に対してはVagrantとAnsible、Chef、Puppet、Saltを組み合わせて使用します。
 無償、商用可、OSSのMIT Licenseで運用されます。

Vagrant(https://www.vagrantup.com/)




おすすめの関連記事

作成中