LoginSignup
0
0

More than 5 years have passed since last update.

10系のchef-serverをApache + Passengerで動かす

Last updated at Posted at 2013-05-30

chef-serverはどうやらIPv6をListenできないっぽい。(使われていたMerbのコードを見たけれど、それっぽいのが見つからない。。。)

最も簡単なのは、nginxでもapacheでもいいんですが、IPv6でlistenするproxyを立てちゃうことなんですが、MerbなんでPassengerでもいけるはず。。。ということで、Apache + Passengerで動かしてみました。

ちなみにChef 11系使えば不要です。(Merbもないし)
諸事情あり11系にアップグレードできなくて、かつ、半ば趣味が入っている人向けです。

手順

AWS上のubuntu 12.04でやりました

Apache + Passengerのインストール

ここは至って普通です。一応書いておきますが、お好きな手順で大丈夫です。

install_passenger
# パッケージを取ってきて
$ sudo apt-get install apache2 libapache2-mod-passenger

# passengerを入れる
$ sudo gem install passenger
$ sudo passenger-install-apache2-module 

# 失敗する場合、恐らくこのあたりを要求されてます。詳細はメッセージを読んで判断してください
$ sudo apt-get install apache2-threaded-dev libapr1-dev libaprutil1-dev libcurl4-gnutls-dev

# うまく行った場合は、passengerの設定ファイルを作ってくれと言われるので、それに従って作ります
$ sudo vim /etc/apache2/conf.d/passenger.conf

Chef ServerのPassenger用の設定

Chef ServerはMerb、つまりRackアプリなので、Passengerが有効な状態でconfig.ruの階層にあるpublicディレクトリをドキュメントルートにすると、アプリケーションとして動作します。

config_passenger
# まずはconfig.ruのありかを探す(aptで入れている場合はdpkgで)
$ gem contents chef-server-api|grep config.ru

# 見つかったので確認すると、publicディレクトリがある!
$ ls /var/lib/gems/1.9.1/gems/chef-server-api-10.xx.0/
LICENSE  README.rdoc  Rakefile  app  bin  config  config.ru  development.ru  lib  public  spec

あとは、このpublicディレクトリをapacheのDocumentRootに設定すればOKです。

パーミッションの修正

起動の仕方が変わるので、パーミッション(もしくは、apacheのプロセスユーザ)の修正が必要になります。
server.rbの設定内容やそこで設定しているパスへのパーミッション、認証に使っているpemファイルへのパーミッションを確認してください。

プロセスの切り替え

chef-serverのプロセスを停止し、apacheを起動します。

あとがき

WebUIを基本的に使っていないのでWebUIの手順は省きましたが、やるべき事は基本的に一緒です。ただ、同一アドレス・ポートでの共存は厳しそうなので、アドレスなりポートをapache側で分けてあげる必要があります。

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0