読者です 読者をやめる 読者になる 読者になる

tkuchikiの日記

Linux やプログラミングについて書きます。

chef-server-ctl reconfigure を繰り返すときの注意点

執筆時に使用した chef-server のバージョンは、以下のとおりです。

$ rpm -q chef-server
chef-server-11.1.6-1.el6.x86_64

chef-server のセットアップをしている時に、

$ chef-server-ctl reconfigure

を打つと、

$ ls -1 /etc/chef-server/
admin.pem
chef-server-running.json
chef-server-secrets.json
chef-validator.pem
chef-webui.pem

のようなファイルができると思いますが、
chef-server を入れなおして、

rm -rf /etc/chef-server

を実行して、もう一度 chef-server-ctl reconfigure を実行したら、

$ ls -1 /etc/chef-server/
chef-server-running.json
chef-server-secrets.json

pem ファイルが生成されませんでした。
/opt/chef-server/embedded/cookbooks/chef-server/recipes 以下を見ると、
/var/opt/chef-server 以下にいろいろファイルがあって、
それらがあると skip するようになっていました。

これらを clean する方法ですが、
chef-server-ctl のサブコマンドを見てみると、
cleanse というものがありました。

$ chef-server-ctl -h
...
cleanse
  Delete *all* chef-server data, and start from scratch.
...

これを実行すると、
process を落として、/var/opt/chef-server を削除し、
/etc/chef-server を $HOME/chef-server-cleanse-YYYY-MM-DDThh:mm に移動してくれます
(/opt/chef-server/embedded/lib/erlang/erts-5.9.3.1/bin/epmd -daemon だけは落としてくれませんでした)。

あとは、chef-server を入れなおして、

$ chef-server-ctl reconfigure

を実行すると、/etc/chef-server 以下に pem ファイルが生成されます。
chef-server-ctl cleanse を実行後に、chef-server-ctl reconfigure しても期待した通りの動作をしてくれました。