by the dreamland

夢の国の近くで暮らすエンジニア(おもにインフラ系)のブログ

【Chef】【ChefDK】Windows環境でChef+Vagrantを使う方法

職場でWindows7なのにChefを使うことになり、練習用の環境を作ろうと思ってかなりハマったのでメモします。

 

AWS EC2は使わないほうがいい、というか使えない(と思う)

まず、Chefではrubyを使用するしVMとの疎通もsshでやるため、Windowsrubysshのセットアップから始めるのはめんどくさいなと思いました。そこでAWSインスタンスを一つ立てて、そこにVirtualBoxとかVagrantとかを入れれば楽なのかな、、とか思ったら大間違いでした。

AWSでは仮想化にXenを使用しています。そしてVirtualBoxXenに対応していないらしいです。気になる人は実際にやってみてください。VirtualBoxをインストールした後、初期化かなんかのシェルを実行したら「Xenだから使えないよ」みたいなエラーが出てがっかりしました。

 

WindowsにChef環境を作るのは本当に疲れた

本当に面倒くさいです。

以下、簡単に手順メモ

2-1:virtualboxvagrantをインストール。

これは普通にインストールすれば良いです。

2-2:これが一番大事。ChefDKを使う!!!!!

rubyを入れて、ああして、こうして、、、、みたいなことが書いてある記事が多いですが、やめておいたほうがいいです。全部言ってることが違うから全く当てになりません。多分個々人の環境によってセットアップの方法も違うのでしょう。はまる危険性高いです。そんな時はこれ!!!

Chef Development Kit | Chef Downloads | Chef

これをまずインストールしましょう。

デフォルトでrubyとかssh設定が入ってます。

このChefDKのチュートリアルに従って試行錯誤すれば多分なんとか進めます。

 

2-3:最後の落とし穴はmingw用のrubyプログラムにあり。

Windows環境でChefやvagrantを使う際に何が大変かというと、コマンドプロンプトで「vagrant ssh」とかが気軽にできないことです。また、WindowsOSをホストOSとし、vagrantで立てたVMにchefコマンドで指令を送る時にもsshが必要になるのでまたここでもハードルがあります。そのため、chefDKがインストールされたディレクトリの下でいろいろとそのハードルをクリアするためのツールを入れていくのですが、、、、詳細はこちらのありがたいリンクをご覧あれ。ただしちょっと不正確なところもありますが、私はこれをみてなんとかなりました。

http://www.beeete2.com/blog/?p=908

 

他にも類似の記事が幾つかありますのでググってみてください。読めばわかるように結構面倒くさい、、、そしてこの後、私はさらに面倒な落とし穴にはまりました。それは、、、、「knife cookbook create」  というコマンドです。

 

2-4:knifeコマンドのサブコマンドが読み込まれない(T T)

VM側にもchefを入れて、windowsからのssh接続も問題なくできた、、、という段になって問題が起きました。いよいよホストOS側でクックブックを作成しようとするとできない!!!なぜか「FATAL: Cannot find sub command for:knife cookbook create」というエラーが出ます。

問題の切り分けとしては、knifeコマンド自体は正常に動作しているのでサブコマンドの読み込みで失敗しているという結論に達しました。そこでエラーメッセージでググって英語のページとかも漁っていたら、、、、ついに見つけた!!!!!git-hubのこの記事。

https://github.com/chef/chef/pull/3277/files

やっぱり同じエラーではまっていた人が世界にはいたようです。

C:\opscode\chefdk\(中略)\lib\chef\knife\core\subcommand_loader.rb
中略したところは記憶が曖昧なので、、すみません。ちなみにchefdkの中にsubcommand_loader.rbというファイルは複数ありますが、mingw-win32だったかそんな感じのディレクトリの下にあるファイルを修正します。私はこのファイルをgithubの記事の通りに修正したら無事にクックブック作れました泣
思わず職場なのに「おお!できた!」と普通に喋ってしまっていました。恥ずかしや。。。いずれにせよこんなことで丸一日潰してしまったのでした。

 引き続き頑張ります。それでは

 

 

 

 

 

 

 

 

 

 

 

 

【Mac】バックアップ領域を削除してストレージ容量確保

「このmacについて」→「ストレージ」で表示される詳細情報で、「バックアップ」という項目が20G以上あって不審に思い、消したいと思うようになる。特に困ってはいなかったのだが、アプリとかファイルなどを削除してもストレージの容量が減らなくて気持ち悪かったのでググった。ようやく見つけた。無料で、簡単にできたのはこの方法。

 

  1. TimeMachineの設定で「入」→「切」にする
  2. ターミナル開く
  3. sudo tmutil disablelocal
  4. sudo tmutil enablelocal

 

これだけ!!実際に df -hで比べてみたら驚く。

 

$ df -h
Filesystem      Size   Used  Avail Capacity  iused      ifree           %iused  Mounted on
/dev/disk1     237Gi   83Gi  154Gi    36% 21949555 40268683   35%       /

$ sudo tmutil disablelocal

$ sudo tmutil enablelocal

$df -h
Filesystem     Size   Used  Avail Capacity   iused      ifree           %iused  Mounted on
/dev/disk1      237Gi   49Gi  188Gi    21% 12971183 49247055   21%   /

 

 

なんと30G以上確保できました。これはありがたいです。

 

【webalizer表示できない】httpd.confで設定変えたら表示できる

webalizerでも試してみるか、と気軽にインストールしていざwebalizerの画面へアクセスしようとすると403エラーではじかれることがある。

その時は/etc/httpd/conf/httpd.confの設定で最下行に次のように追記するととりあえず表示される。良い手段かどうかは別としてとりあえず表示できる。

<Location /usage>

Order Deny, Allow

</Location>

 

httpdを再起動してもう一度アクセスしてみると見れます。

【RHEL6】strace:特定の関数がコールされているかどうか確認する

ジョブとかコマンドとか何らかのサービス(mysqlとかいろいろ)がサーバでどんな関数をコールしているのかを確認するときにはこれを使う。

" strace -f -e シェル(フルパスで)|コマンド|サービス名 "

※fオプションで対象のプロセスが使用するすべてのスレッドが対象となる。

eオプションで対象のプロセスを指定する

 

複数のプロセスを同時にトレースしたいときは

「-e trace=プロセス1、プロセス2、プロセス3、、、、」というように指定すればいい。それ以外の使用法はググれば結構載ってました。

 

 

 

【RHEL6】ログイン直後の文言を編集(/etc/motd)

業務で/etc/motdにアスキーアートっぽいものを設定した。アスキーアートというのは2chとかでよく使われているアレなので、ログインするとちょっと違和感が、、(笑

 

 

 

『ローマ人の物語』をひたすら読む日々

年末から何となく読み出した塩野の『ローマ人の物語』は非常に面白い。我々の先祖がまだ国家すら持っていなかった頃、ローマ人たちは高度な文明をもち、現代とほとんど遜色のない政治体制を持っていた。ため息が出てしまう。

”考えが浅い"という考えについて

さっき初めてはてなブログをいろいろ見ていたらこんな記事を見つけてしまった。

-------------------------------------------------------------------------------

皆さんの周りにも「こいつ考えが浅いな〜」って人いません?

  1. 直ぐ行動するが手戻りが多い
  2. 考慮するべきことが考慮されていない
  3. 人の意見によって、直ぐに自分の意見を変える
  4. 指摘されてたことに対して、回答できない

----------------------------------------------------------------------------------

 

 いろいろな意味で「痛い」仕事認識だと思う。まず、私はこのようなタイプに分類されるのでまずそれが「痛い」。この記事ではこのようなタイプの人間が「ダメな人」であり、仕事のできる人間はこのような欠点を克服すべきだというような内容になっている。だとすると私は「ダメな人間」に分類されてしまうのでそれが痛い。

二つ目に何が痛いかというと、この記事を書いている人がIT業界の人らしい(ブログタイトルの副題がそうなってる)ので私と同じ業界の人でこういう認識を持つ人が増えてるのだとすると「痛い」なということ。私はこのような認識とは正反対の考えをもつので、「考えが浅い」というような批判をしてくるような人間が業界で増えることは私にとっては痛手だ。とはいえ現場でこういう人が私と一緒に仕事をすると私と仕事の進め方において徹底的にぶつかり合い、屁理屈合戦大好きな私の格好のお相手になることは間違いないだろう。

三つ目に何が痛いかというと、IT業界で何らかのシステムを作る際にこういう認識はもう救いようがないくらい「痛い」。私はもともとアプリ側で働いていて最近はサーバーサイド(インフラエンジニア)的な方へシフトした。フロントエンドでアプリを作るうえでも、サーバから構築したりメンテしたりする上でも、すでに経験済みだが、システムを作り上げるために重要なことは「試行錯誤を重ねること」「考慮していなかったことを試してみること」「壁にぶつかったら自分の意見にこだわることなく視点を変え考えを改めてみること」「じっくりよく考えること」なのである。冒頭に戻ってよく見直してもらいたいが「ダメな例」として挙げられている4か条をこれらの原則は真っ向から否定している。特に一番最後の「指摘されたことに対して即答できない」というダメだしに関しては、私は真逆の考えで、指摘されたことに即答してくるようなヤツにロクなヤツはいないと思う。ようするに何も考えていないからどうでもいい返答をしてくるのではないだろうか。まあそもそもどのような指摘かにもよる。エラそうにどうでもいいような指摘してくるようなヤツはたくさんいる。そういう時にはその指摘の(無)意味を問いただすために即答するときは多々ある。

はっきり言ってこの「考えが浅い人はダメ」みたいな思想を持った上司なんかと一緒に仕事をすることになったらいやだな~、ゾッとしてしまう。たぶん転職するだろうなあ。

仕事を進めるうえで何がめんどくさいって「プロフェッショナル仕事の流儀」的なもので頭が固まっているようなヤツと仕事をすることくらい面倒なことは無いですからね。大事なのはいかに残業を減らすか、いかに仕事を効率的にやっつけてさっさと帰るかであって、「仕事できる人みたいにふるまうこと」はむしろ弊害でしかない。考えが浅いだの深いだのという議論を吹っかけてくるやつはそういう議論を始める時点で作業の工数の一部を無駄に過ごしていることを自覚すべきだろう。しかし、こういう思想を論破できる屁理屈を用意しておかないと、「流儀」にこだわるろくでもない連中に議論を吹っかけられたときに本来の作業以外のところで思わぬ落とし穴にはまる。カウンター技は常に発動可能な状態にしておくべきですね。

 

すごく気に入ったコート

電車で15分くらいのところにあるショッピングモールに行く。正月のセールで衝動買いしたスーツの裾直しが終わったので取りに行く。6万のスーツを3万で入手したが高いものは高い。高い買い物をしたなあと思いつつスーツを受け取り、モールをうろついていると、これまたとても素敵なコートがあった。5万7千円が半額になっている。試着するとサイズもピッタリだった。買おうかどうか猛烈に迷ったがやめたほうがいいと自分に強く言い聞かせその場を立ち去る。しかし帰りの電車でもあれを買っておけばよかったという後悔が脳裏をよぎる。午後23時になろうかという今この瞬間も相変わらず後悔が付きまとっている。水曜日。水曜日だ。水曜日は仕事の都合で午後出社だから午前中は手が空く。水曜日にあのショッピングモールへ私はふらりと立ち寄るだろう。そしてあの店にふらりと寄り、何気ないふりをしてあのコートを探すだろう。今日試着したものはチャコールグレーだったが隣に濃紺もあった。水曜日の私はどちらの色にしようか悩むだろう。でももしかしたら水曜日にはもうあのコートは売れているか、倉庫にしまわれているかもしれない。はたまた、セール期間が終わって元の値段に戻っているかもしれない。それでも私は水曜日にあのショッピングモールへ行こう。

珈琲屋にて

最近休日にとあるカフェに行った時のこと

それなりの人気店なので結構混んでいた。

席に案内されるとすこし離れた席に3歳くらいの子供が泣きわめきごねている。両親は彼を放置しており、対面に座る友人(?)と話し続けている。

 

しばらく嫁とメニューを眺めてぼそぼそと会話。だが泣きわめくノイズのデシベルが半端なく高い。ものすごくうるさい。隣の席のおばさんが顔をしかめて彼らの席をにらんでいた。

 

こういうシチュエーションで必ず勃発する二律背反的議論

テーゼ)

泣きわめくような子供を連れてカフェとかに来て子供を放置しているような親とかはマナー違反だし公共の秩序を侵している。こういう浅はかな親は社会から消えろ

 

アンチテーゼ)

別に子供連れでどこへ行こうがその親の自由。公共の秩序がうんぬんとか言ってるやつが社会から消えれば問題解決

 

ぼく個人ははっきりと「テーゼ」側の主張に立つ。人に迷惑をかけて平然としてるやつは絶対に許せん!と思うのであります。

 

 

 

 

 

『Homeland』というドラマがおもろい

これ作った人らはまじですごいと思う。

双極性障害(躁うつ病)を患うCIAエージェントと

イラクで捕虜になり、密かにテロリストと化した海兵隊の兵士。

2人の主人公が、自分のおかれた環境の中で

何とか自分なりの答えを見つけようともがき苦しむ。

物語論的に言うならばどうだろう、

2人の「ヴァージン」の話ではないか、と私は思うのだがどうだろう。

「ヴァージン」というのは「ヒーロー」とは異なる主人公のアーキタイプ

基本的に「受け身」だし、周囲に「依存」している。

だがその「依存の世界(秩序)」の中で「自分だけの世界」を確保しようと必死になる。

2つの「自分だけの世界」はある時は共鳴しある時は反発する。

やがてそれらの「秘密の世界」の存在が、「秩序側の人々」に暴露され、

秩序側の世界において大きな混乱が生じる。

混乱の後で、秩序世界に変革が起きるのか、

それとも「秘密の世界」は敢え無く潰されてしまい、秩序側の勝利に終わるのか。

 

これからどうなるのか本当に楽しみ。