もふもふ技術部

CentOS6.4でchef soloを使ってapache環境を構築


こんな構成で

vagrant+chefの構成で試してる記事が多かったけど、vagrantでハマりそうなのでAWS・EC2のCentOS6.4でやってみます。vagrantはあとでまたやりたい。

というわけですでにCentOS6.4が入っているインスタンスがあって、sudo権限をもったユーザーでログオン出来る状態からスタート。目標はひとまずapache+phpの環境を動かすところまでやりたかったのですが、まずはapacheだけ。

スタート!

こちらのgetting started通りにやってみる。ここって公式ではないのかも。
http://gettingstartedwithchef.com/

エントリをみると結構やり方がバラバラだったので、公式からcurlで取ってくるのがまずは安牌かなと。

WEBからダウンロードしたりするのでwgetを、あとvim。
それから動かすのに必要との記述があったのでとりあえずrubyもインストールしておく。

リポジトリをダウンロードしているのかな?
knife solo init 〜 でリポジトリを生成しているエントリも見かけた。どういう違いだろうか。

.chefディレクトリを作成し、.chef/knife.rbにcookbookのパスを記述か。

phpのcookbookを作成。

apacheのサードパーティのcookbookをダウンロードしている模様。

apt?パッケージ管理のaptだとすると今回はCentOSなのでこれは違う気がする。
でもまぁそのままやってしまおう。初回の試行はそんなもんで良いでしょ。

phpappのmetadata.rbを編集。

レシピを記入。実際の個別の処理はここに書いていくのかな?

solo.rbを編集。最後に処理を叩くときに参照するファイル。
file_cacheとcookbookのパスを書く。

web.jsonにrunするレシピを記述するっぽい。
recipe[apt]を入れるように書いてあったけど、CentOSなのではずしておいた。

いざ実行!
怒られた!ごめんなさいごめんなさい。

ちょっとハマりましたが、各々のファイルを見なおしてみたらsolo.rbに書いたパスが間違ってました。修正して再実行。
ちょっとWarningが出ていたけど成功したっぽい?

EC2インスタンスにブラウザでアクセスして確認。失敗。接続できず。
404画面も返ってこなかったのでネットワークの設定の問題かな。

iptablesで80番を許可していなかったので手動で追記。この辺もレシピで組めるのかな。
あと念のためAWSのSecurity Groupsで80番をInboundしてるか確認。

再度アクセスするも失敗。ログを確認。

DocumentRootが/etc/httpd/htdocsになっているのは、apacheの設定ファイルで一つもDocumentRootを設定していない場合の挙動らしい。

設定を確認しようとしてみたら、いつもとファイル構成が違う。Debian系スタイルの構成のようだ。

sites-enableディレクトリにシンボリックリンクを貼ればアプリケーションが有効になります。

DocumentRootに何も置いてなかったので適当にindex.htmlを置いておく。

apacheを再起動。

再度ブラウザからアクセス。よし!出ました!

ぼくはこう思ったッス

まずはあんまり深く考えずやってみましたので、それぞれの手順で何してるかまだ理解出来ていないところは多々ある感じ。

最近はステージング環境や本番環境の構築をする機会も増えてきたので、いい加減手作業はうんざりしてるこの頃、chefを使いこなせばかなり楽できるんじゃね?という期待が膨らむばかり。あとvagrant早くやりたい。

The following two tabs change content below.
原田 敦

原田 敦

日本CAWのエンジニア。もふもふ部の部長。得意分野はRuby on Railsを使った小規模WEBアプリケーションを高速で開発すること。週末の楽しみは一人お菓子パーティー。三度の飯より小動物をもふもふするのが好きです。