salt をちょっと試してみる(1)

python 製サーバ管理ツールの Salt について こちら で紹介していますが、今日は salt を速攻で試す方法について説明します。環境は Ubuntu server 12.04 です。

salt の動作とサーバ&ノード構成

salt はサーバのマスタ(salt-master)とノード(salt-minion)で動き、サーバからノードの状態(ステート)を変える必要がないのであれば salt-minion だけでも動作します。

salt の基本的な動作は状態と対象サーバを salt 設定ファイルに定義し、コマンド(salt ‘*’ state.highstate)を実行した時に対象サーバ('*' の箇所にはサーバを指定することが可能)を指定した状態にする(apache2 をインストールしたり起動したり)ことです。

salt-minion だけでもこのことを実現することは可能です。この場合、自分自身のサーバだけが対象になります。salt-master を一緒に使うと複数のノードにコマンド一発で全て状態を反映させることができます。

ちなみにこのあたりのことは Salt Stack ドキュメントに以下のように書いてあります。

The Salt Minion can operate with or without a Salt Master. This walkthrough assumes that the minion will be connected to the master, for information on how to run a master-less minion please see the masterless quickstart guide:

[Masterless Minon Quickstart]

今回はこの salt-master と salt-minion を使ってサーバ&ノード方式を試す方法を説明します。

と言ってもインストール&設定は非常に簡単です。

まずはインストール

なにはともあれインストールです。

このあたりは [Salt Stack ドキュメントの Installation] にも書いてあるので今回対象としている Ubuntu や CentOS 以外の方は参考にして下さい。

以下は Ubuntu 12.04 LTS の場合です。

$ sudo apt-get install python-software-properties
$ sudo add-apt-repository ppa:saltstack/salt
$ sudo apt-get update
$ sudo apt-get install salt-master # Minion(ノード)側には不要
$ sudo apt-get install salt-minion # Master にも必要
$ sudo apt-get install salt-syndic
$ sudo update-rc.d salt-master defaults # OS 起動と同時に起動する、ノード側は不要
$ sudo update-rc.d salt-minion defaults # OS 起動と同時に起動する

以下は CentOS 6系の場合です。

$ sudo rpm -Uvh http://ftp.jaist.ac.jp/pub/Linux/Fedora/epel/6/x86_64/epel-release-6-8.noarch.rpm
$ sudo yum install salt-master # Minion(ノード)側には不要
$ sudo yum install salt-minion
$ sudo service salt-master start # ノード側は不要
$ sudo service salt-minion start
$ sudo chkconfig salt-master on # OS 起動と同時に起動する、ノード側は不要
$ sudo chkconfig salt-minion on # OS 起動と同時に起動する

Ubuntu における 最後の salt-syndic はオプションです。salt-syndic はマスタ(salt-master)&ノード(salt-minion)構成のいくつかのグループを互いに連携する時に使うようなのですが、そこまでの環境でない場合は必要ないようです(使う場合は設定も別途必要です)。

このあたりのことは以下の URL に詳細が書いて有ります。

Salt Syndic

http://docs.saltstack.com/ref/syndic.html

The Salt Syndic interface is a powerful tool which allows for the construction of Salt command topologies. A basic Salt setup has a Salt Master commanding a group of Salt Minions. The Syndic interface is a special passthrough minion, it is run on a master and connects to another master, then the master that the Syndic minion is listening to can control the minions attached to the master running the syndic.

The intent for supporting many layouts is not presented with the intent of supposing the use of any single topology, but to allow a more flexible method of controlling many systems.

Published by in Linux, Web 技術, インストール, オープンソース, スケーラビリティ and 紹介 using 307 words.