SaltStack を使ってみる
(=˘ ꒳ ˘=) ちょっと興味が湧いたので塩を舐めてみる...
https://docs.saltstack.com/en/latest/ に従ってチュートリアルを一通り触ってみました。
- 基本的な動作編: https://docs.saltstack.com/en/getstarted/fundamentals/
- 設定ファイルのマネジメント編: https://docs.saltstack.com/en/getstarted/config/
- Pillar や Jinja テンプレートなど、設定ファイルやそこで使えるパラメータの管理方法についてです
- mysqld をインストールする場面で
mysql-server
を指定しないと動きませんでした
- イベント管理編: https://docs.saltstack.com/en/getstarted/event/
- イベント処理の概要や Reactor などイベントをトリガに発火する処理の記述についてです
ざっと触ってみた感じは宣言的定義が主体であるプロビジョニングツールといった感じでした。 設定ファイルに Jinja テンプレート処理を書き込めるあたり、かなり凝った処理も行えそうです。
宣言的定義に関連してひとつ気になったのですが、チュートリアルの途中まで install vim
のように命令的な Session ID が振られていたのが、途中から vim installed
のように宣言的な Session ID に変わったところです。
SaltStack の中でもブレがあるのでしょうか、どちらが SaltStack 流なのか気になるところですね。
個人的には pkg.installed
という命名から伺える意向を汲んでいるように見える宣言的な Session ID の方が好みです。
命令を定義するのではなく、あくまで状態の定義を行い、SaltStack はホストの状態と定義された理想状態を比較して適宜処理を行う。 install という処理が走るのはあくまで結果であって、大元にあるのはあくまで状態定義である、...と Kubernetes 的な思考を流用するとこうなるでしょうか。