Anatomy of a Chef Runの訳

Anatomy of a Chef Runを訳しています。 Anatomy of a Chef Run Chefを動かすならChef-clientの実行の仕組みは覚えておいた方がいいですよ。 Convergence Chef-clientやChef-soloでプロセスを呼んだときは"Convergence"リソースを呼ぶ必要があります。Conver…

Architectureの訳

Architectureを訳してみます。 Server Architecture Chef-serverは以下の機能から成り立っています。 Chef server WebUI, node, clientからHTTP API リクエストを受け付ける Chef server web ui WebベースのChef-server管理ツール。 CouchDB Chef serverのデ…

Chef-clientの訳

Chef-clientを訳してみます。 Chef Client Chef-clientはChefができることを大体どこでも実行できます。Chef-clientは署名付きリクエストをREST形式でChef-serverに送り、COOKBOOKをコンパイルして実行します。 Clients do work for one or many Nodes Chef-…

Rspec 2.2を触っての変化

ちょっとだけ触った。覚えているうちに書いておく。 コマンドがspec->rspecに rspecたたいときにカレントディレクトリ以下のlibとspecがLOAD_PATHに自動で加わる テスト対象ファイルを呼び出すのが簡単 なぜかwikiのとおりautotestが走らない(PROJECT_ROOTの…

Net::SCPはあまり利用しないようにしよう

便利でよく使っているのですが極力使わないようにしようと思います。 30Mを超えたあたりからうまいことSCPのsessionが切れなくなる compression, rekey_packet_limit, rekey_blocks_limitを設定してもだめ Net::FTPだとうまくいくんですよねぇ。

APIの認証について

pemっていうファイルで認証しているのはなんとなくわかる。このなんとなくを解消したいと思う。本エントリはWikiの誤訳だと思ってほしいです。 API Clients nodeデータはChef serverからの認証リクエストによって別々に管理されており、それはすなわちAPI Cl…

ファイルのコピーを試してみました

Chefでcookbook内でファイルをコピーしてみました。サーバ上のファイルをコピーするときと利用するリソースが違うのでまとめておきます。 サーバ上のファイルをコピーする場合 以下のような設定でできる気がします。 file "/tmp/pochi.txt" do content IO.re…

Passenger利用の際にApacheの設定ファイルに追加するもの

PassengerRuby Rubyのパス ex) /usr/bin/ruby PassengerRoot Passengerのパス ex) /Library/Ruby/Gems/1.8/gems/passenger-2.2.15/ PassengerMaxPoolSize Railsの最大インスタンス数 ex) 10 PassengerPoolIdleTime passengerによって生成されたインスタンス…

templateリソースを試しました

前回の続きをやります。まずはchef-client呼び出して"hello, chef!"ですかね。 Hello, chef 表示専用cookbookを作ります。 $ knife cookbook create MESSAGE作成されたMESSAGEのディレクトリにいき、${MESSAGE_DIR}/recipes/default.rbを以下のように記述し…

webuiのパスワード忘れてしまったとき

忘れたときにした対応をメモ。 コードをいじる ${chef-server-webui}/app/controllers/user.rbっていうとこに以下のメソッドがある。 def login_exec begin @user = Chef::WebUIUser.load(params[:name]) raise(Unauthorized, "Wrong username or password."…

Triggerを利用するときに気をつける事

Triggerって? MySQLでテーブルに処理をしたとき、データの追加・更新・削除が行われる前後に行う処理を設定するもの。多分MySQL5.0以降で利用できる。 気をつける事 すごい便利な機能なんですが、トランザクションが明示的に指定できない。これ結構痛いです…

追加機能を既存Apacheに追加する場合

たまにApache触りますが忘れちゃうのでメモしておきます 前提 ${APACHE_DIR}/bin/httpd -l で mod_so.c があること ${APACHE_DIR}/bin/httpd -M でso_module(static)ってなっていること 組み込み方 以下のようなコマンドで組み込みます。 $ ${APACHE_DIR}/bi…

infoScoop opensource 2.2.0RC1をインストールしてみる

本家のサイトに書いていますが備忘録的に残しておきます。 環境 OS: Redhat MySQL: 5.1.34 GlassFish: 2.1系 前提 環境が一通りインストールできていること 本家サイトよりダウンロードしていること DB作成 今回はiscoopっていう名前で作成します。 $ mysql …

Apacheをchef経由でインストールできるようにする

運用管理ツール?「Chef」をいろいろ使ってみますの続きです。Apacheをchef経由でインストールできるとこまでがんばりたいです。 復習 前回やったとこは、以下のことです。 Chef-Clientをインストール Chef-Serverをインストール Chef-Serverを動かしてChef-S…

ActiveRecord::Relation Walkthrough

Railscastみたら覚えた事をすぐにブログに出すようにしてます。今回はActiveRecord::Relationの動きを追ってます。すごい勉強になった気がします。 ActiveRecord::Relation Rails3.0ではArel利用してQueryを遅延的に評価するようになっています。whereやjoin…

運用管理ツール?「Chef」をいろいろ使ってみます

Puppetとよく比較されるChefですが個人的にはPuppetの書き方がどうしてもなじめなかったのでChefをインストールしてみました。ChefのWikiでインストール方法に書いてあるのでそこまではスキップします。(couchDBとかapache-solrとかRabbitMQとかMerbとか結…

初めてProxy経由でリクエスト送ったから記念にプログラム書いておこう

livedoorさんが提供しているお天気APIをプロキシ経由で利用してみた。 require 'net/http' uri = URI.parse('http://weather.livedoor.com/forecast/webservice/rest/v1') proxy = Net::HTTP::Proxy('xxx.xxx.xxx.xxx', '8080') req = proxy.new(uri.host) r…

Passengerのインストール時にrakeがないといわれたときの対応

Passengerを入れようとして、passenger-install-apache2-moduleをたたくとrakeがないっておこられた。gem listするとあるのになんでかなぁと思っていたのだけどなんかgemの設定値と実際にはいっているとこが違うのが原因みたい。Passenger自体はgem envで出…

Sortable table columns

概要 Viewでtable表示するときにRails3.0でどうやって項目ごとにsortするかというおはなし。 やり方 Controller側でorderっていうのを使ってView側に渡す。 View側ではlink_toメソッドで:sort=>:nameみたいな感じでつける。 directionは同じカラム名でアクセ…

dynamic attr_accessible

概要 attr_accessorをアクセスされるもの全てに設定しておくと、 セキュリティ的に問題があるかもしれないので必要なときだけ Modelでアクセスを制御したいよねというものだと理解した。 やり方 Modelではattr_accessibleに設定せず、 mass_assignment_autho…

Railscasts見たのでメモしておく。 やっぱり毎回見とかないとだめだなぁ。

Railsのdeleteとdestroyの違いをおさらいする

deleteとdestroyの違いをちょこちょこ忘れるのでメモ。 delete ActiveRecordオブジェクトを介さずに削除する。(直接SQLを発行するイメージ) オブジェクト同士に依存関係がない場合はこっちを使った方がActiveRecordの インスタンスを生成しない分早い。 de…

インストール方法

http://www.scala-lang.org/downloads/ へアクセスしてダウンロード 解凍してPATHを通す 以下のように出力されることを確認する。 bash-3.2$ scala -version Scala code runner version 2.7.7.final -- Copyright 2002-2009, LAMP/EPFL bash-3.2$

スタンドアローンで動かす方法

開発用にスタンドアローンで稼働させたかったのでメモ。 hadoopをサイトから落としてくる あとはconf/hadoop-env.shのJAVA_HOMEを修正すればOK bin/hadoop jar hadoop-*-examples.war wordcount input output

bin_pathから利用するためには

gem

railsとかインストールするとそのままrailsコマンドが利用出来るようになっていますが、 gemspecファイルに以下の項目を記述しないとcan't findエラーが発生します。 Gem::Specification.new do |s| # これでbin/hogeが利用出来るようになる s.bindir = 'bin…

rubyで標準出力をテストする方法

最近毎日のように読んでいるwycatsさんが便利なメソッドを利用していたのでメモしておく。 # -*- coding:utf-8 -*- require "rubygems" require "spec" # this method is written by wycats def capture(stream) begin stream = stream.to_s eval "$#{stream…

thorのuninstall方法

thorの(un)installにはファイル名を指定する必要がある。 で、installしたときのファイル名を知りたいときは、ユーザホームディレクトリの下に.thorというのができており、その下のthor.ymlを見ればよい。 bash-3.2$ cat ~/.thor/thor.yml sample.thor: :fil…

Thorの起動の流れを追う

Thorはまってきました。これすごい手になじむというか。。。 基本はRuby 1.9.1 + Thor 0.13.4でなんでもできちゃいそうな錯覚すら。まずは、thorコマンドから。 Thor::Runner.startを呼んでるだけです。 #!/usr/bin/env ruby # -*- mode: ruby -*- require '…

rubyのデフォルトを1.9.1にした

rvm使ってますがとうとうデフォルトを1.9.1にしました。 やりかたは以下。 rvm 1.9.1 --default

Thorってなんなんだろう。

Rails3.0で利用されているThorだけど、まだあまり情報ってないようにおもう。 一番詳しいのは、多分リンク先の記事です。(2010/3/13時点) Thorってなんなの?yet another rakeなの?ただ、僕が前の記事であげたgeneratorの仕組みを解読するでは、 railsコマ…