SaltStack/Saltは、システム管理者がサーバーのプロビジョニングおよび管理タスクを自動化するための構成管理(Confuguration Management、CM)とオーケストレーションのツールです。CMの分野では長い間 Puppet と Chef が主流であり、2011年にCMセグメントとしてリリースされた SaltStack は、比較的新しい部類になります。
CMの分野への参入が遅れたことで、データ収集の遅さやスケーラビリティ制限など、他のCMツールがかかえる課題への対策を組み込むことができ、その点が有利に作用しました。そのため、SaltStack は、Puppet や Chefのような非常に豊富な機能を備えたツールでもなく、Ansible のように簡単なソリューションとして宣伝されているわけでもないのに、CM分野で大変注目されています。Salt の特長的機能は、スケーラビリティの高いアーキテクチャ、高速なデータ収集、信頼性の高いパフォーマンス、パワフルなオーケストレーションなどです。
SaltStack は、Thomas S. Hatch 氏によって作成された Python ベースのCMツールです。Saltは、高速データ接続のために、ZeroMQ メッセージングシステムを使います。Puppet や Chef などのCMツールはデータ処理が遅いですが、ZeroMQ メッセージングシステムのマルチスレッドを利用することで何千ものタスクを同時に実行することができます。
Salt のマスター・スレーブ・アーキテクチャで、プッシュ・システムとプル・システムの両方が可能になります。中央リポジトリからコードをプルしてリモートデバイスで使うこともできますし、エージェントデバイスが定期的にサーバーに接続してインストラクションを要求することもできます。
Salt アーキテクチャの重要なコンポーネントを以下にリストします。
Salt エンジンは、minions がマスターに接続し、通信するためのセキュアな双方向チャネルを生成します。minions は、暗号ハッシュと公開鍵認証を使用してマスターに接続します。安全なネットワークが形成されると、エージェントはマスターとシームレスに通信できます。Salt Master は、スケーラビリティの高いアーキテクチャと ZeroMQ メッセージングシステムによって、高速データ交換を行いながら数千のノードを管理することができます。そのため、Salt は大企業での導入管理にも適しており、LinkedIn、RackSpace、NASA などの大規模組織も採用しています。
Salt はデフォルトでコマンドラインインタフェース(Command Line Interface、CLI)を提供し、REST API も備えています。構成情報をYAMLやJSONなどの形式で格納できるため、他のシステムと簡単に統合することができます。minions からデータをフェッチし、システム設定のために使用することもできます。
関連Blog: Setting Up Your First Puppet Master Server
Salt は、イベントがメッセージバスに送られ、Salt reactors が事前に定義された設定に従って処理する、モジュール式のイベント駆動型システムです。Salt では、ビーコン技術を使用してサービス停止時に reactors に警告します。簡単に独自の変更を加えることができるモジュールの拡張性も注目に値します。APIと通信するためのコードの実行モデルやサービスの構成を定義する状態モジュールを、簡単に記述し、PyTest でテストし、すべてを文書化することができます。この設定にはマスターは必要ありません。この機能を使用すると、既存のデータベースまたはAPIに状態を統合することができます。
Salt のもう一つのユニークな特徴は、着脱可能なキーストアです。キーストアを使用すると、機密性の高い grain データをSQLに格納したり、外部ソースからパスワードを取得したりすることができます。grains と states は、テンプレートとして外部データストアに安全に格納されます。
Salt には2つのバージョンがあります。Salt 自体はオープンソースで完全に無料ですが、SaltStack はエンタープライズ・バージョンです。エンタープライズ・バージョンには、GUI、フロントエンド解析エンジン、カスタムレポートとダッシュボード、統合データベース、包括的なモジュールライブラリなどの追加機能があります。
Salt とそのエンタープライズ版である SaltStack Enterprise は、まだ広く知られているとは言えませんが、構成管理や自動化オーケストレーションの分野で効果的に利用できる可能性を持っています。ユニークなイベント駆動システム、ビーコン技術、速いパフォーマンスなどによって、企業の規模を問わず、Chef や Puppet などと競合する候補になり得るでしょう。
Adam Bertram is a 20-year veteran of IT. He’s currently an automation engineer, blogger, independent consultant, freelance writer, author, and trainer. Adam focuses on DevOps, system management, and automation technologies as well as various cloud platforms. He is a Microsoft Cloud and Datacenter Management MVP and efficiency nerd that enjoys teaching others a better way to leverage automation.
より優れた業務アプリケーションやウェブサイトの開発に役立つ、ニュース、情報、チュートリアルをご案内します。
The specified form no longer exists or is currently unpublished.