誰向けの記事か
基本的には個人的な情報まとめで、公開用に最低限の調整をしたものです。 OpsWorksの情報、不足してるなーって感じがしたので。
ついさっきまでの僕自身と、同レベルの「OpsWorksを勉強したいけど何から読めば良いか良く分からん」という人には役に立つかもしれない。 少しでもOpsWorksを使ったことがあるような人の役に立つものではない。
ちなみに、Linuxのサーバーについて、authorized_keysが何かとか、パーミッションが何かとか、そのレベルが分かってない場合はChefはまだ早いので、自力で少しはサーバーを扱えるようになってからChefに挑んだ方が近道なんじゃないかと思う。
前提
僕はOpsWorksもChefも超初心者です。機能までbeanstalkとOpsWorksのどっちにするか迷って結局OpsWorksにしようと決めたくらいのレベルです。
昔いた会社ではEngineYardでChefを使っていましたが、僕は数回ちょっとした事をしただけで、もうほとんど覚えてませんでした。
知っていたのはせいぜい「どうやら正しく書かれたChefのスクリプトは冪当性を持つらしい」という程度でした。
OpsWorks を始めるにあたってやるべきこと
要約: Chefについての勉強とか後回しでいいから以下の記事の通りチュートリアル的に進めてしまえ!
まず以下は一応一読しておく。
StackとLayerとInstanceのニュアンスだけ掴んでおけばとりあえずOK。他は後から段々分かってくると思う。
すごい雑な事を言うとStackは運用したいサービス、Layerはその中の役割ごとのグループ(Webサーバー、とか、DBサーバー、とか。)、Instanceはいつも通りのEC2のインスタンス。だいたいそんな感じなんじゃないか、多分だけど。
これ読んだら、もう中にリンクあるんだけど、以下の記事に飛んでいいと思う。
他のチュートリアルを先にやっても良いけれど、いきなりクックブックを使う例も結構丁寧だし、ちゃんと追えば分かるレベルだと思う。 というか、サンプルプロジェクトを言われるがままデプロイしても、特に学びはなかった。
ほか個人的に気になった事とかのメモ
- gitにレシピを上げると更新作業は少し楽になる
- ssh-keygenで適当な鍵をつくって、githubの「デプロイ鍵」に公開鍵を設定、秘密鍵をStackの設定に入力するだけで上手く動く。 S3に何度も上げるの面倒だし、githubに置くことを強くオススメします。
-
Repository URL
にはgit@github.com:AknEp/MyOpsworks.git
みたいなgitでいつも使う記法で書けば大丈夫
- インスタンスにsshの鍵を設定し忘れてたら cookbook_file を使ってauthorized_keysを作成するような事も可能。 (後述)
- これから理解したいこと:
- まだ
ステップ 6: クックブックを更新してユーザーを追加する
まで実践した所なので、続きを見ていく - SetupとかConfigureとかのイベントはどういう時に発生するものなのか
- RailsとかのアプリケーションもChefから入れるべきなのか、それともCapistrano/Minaあたりでデプロイする環境の構築をChefで行うべきなのか。どちらもアリだとすれば長所と短所を理解したい
- そういえば
Application
の役割が良く分かってない。↑と関連する?
- まだ
SSH鍵のrecipeによる設定方法
emacsが立ち上がるかテストしようと思ったら、SSH鍵を設定してなくて詰んだので、試しにやってみた。
- 以下のレシピを作る
cookbook_file "/home/ec2-user/.ssh/authorized_keys" do
source "authorized_keys"
action :create
owner "ec2-user"
group "ec2-user"
mode "0600"
end
- 以下のファイルを置く
# 内容はid_rsa.pubみたいな、公開鍵の内容。
だいたいこんな感じ。 きっと、また記事を上げると思います。