salt の紹介やインストール方法について こちら で紹介しましたが、今回は salt の設定ファイルの概観と各ホストで稼働するノード(salt-minion)をマスタ(salt-master)で承認するまでの方法について説明します。
迷わないように salt の設定系ファイルを先に紹介
私が最初一番悩んだのが「どこに何を設定するの?」ということでした。そんなわけでまず最初に salt の設定ファイルについて説明しておきます。
salt では大きく分けてsalt 自体の設定ファイルと状態を定義するファイルファイルがあります。
salt 自体の設定ファイルはマスタの場合、/etc/salt/master、ノードの場合は /etc/salt/minion になります。このファイルは例えば以下の設定をします。
- ノードーマスタ間の接続(デフォルトは 0.0.0.0 でどこからでもアクセス可能)
- ログの設定
- オープン可能なファイルやスレッド数
- Root ディレクトリやキャッシュ・PID ファイルの置き場所
- 状態ファイルの置き場所(デフォルトは /srv/salt)
一方、状態を定義するファイル(トップは /srv/salt/base.sls。このファイルは自分で一から作成する)にはターゲットを指定(サーバと役割を定義)します。
ここで指定したターゲットごとに今度はまた /srv/salt/[ターゲット].sls というファイルを一から作成し今度は状態を定義していきます。
ノードをマスタ側で承認する
それでは設定をはじめましょう。
salt でノードとマスタを接続(承認)するには次の手順を行います。
- ノードの設定でマスタを指定する
- ノードをマスタ側で承認する(ノードは自動で検出)
ノードの設定でマスタを指定する
まず最初に「ノードの設定でマスタを指定」してみます。といってもやり方はほとんど既に設定してある為、以下のどちらかを実施するだけになります。
- /etc/hosts にマスタの IP アドレスを定義する:/etc/hosts に ‘[マスタの IP アドレス] salt’ と定義しておく方法です
- /etc/salt/minion で master を設定する:/etc/salt/minion の ‘master: salt’ という設定を ‘master: [マスタの IP アドレスかホスト名]’ に変更する方法です
/etc/salt/minion を書き換えた時はノードを再起動します。
$ sudo service salt-minion restart
ノードをマスタ側で承認する
次にマスタ側で承認します。ノード側でマスタの指定がきちんとされているのであればマスタ側はノードを検出します。salt-master をインストールすると salt-key というノード承認向けのコマンドが用意されています。まずはこのコマンドで検出したノードの一覧を確認します。
$ sudo salt-key -L
Accepted Keys:
Unaccepted Keys:
aak
nass
Rejected Keys:
aak と nass というのは私が設定したノードです。今は Unaccepted(未承認)になっている為、これを承認します。
$ sudo salt-key -A # 全部一度に承認する場合
$ sudo salt-key -a aak # ノードを指定して承認する場合
承認してから再度 sal-key -L を実行すると Accepted になります。
$ sudo salt-key -L
Accepted Keys:
aak
nass
Unaccepted Keys:
Rejected Keys:
これでノードの承認は完了です。
マスタもノード(minion)として認識したい場合
salt のマスタもノードとして一緒に管理したい場合、通常は salt-key -L を実行した時にマスタのホスト名が表示されるはずですが、これが表示されない場合があります(私の環境では表示された試しがありません)。
この場合マスタの /etc/salt/minion の id という定義に自分のホスト名を設定しマスタの salt-minion を再起動することで反映されます。
$ sudo service salt-minion restart