imog

主にUnityとかの事を書いています

Chef実践入門を読んでいる 2

今日の進捗 2.8~3.2まで

  • gitで管理しようぜという話があったよ
  • リポジトリの各ディレクトリの説明が書いてあったよ
  • vagrant環境以外にchef流す方法を知ったよ
  • chefの考え方を知ったよ
  • td-agentのレシピを読んだよ

Berkshelfというcookbook用bundler的な役割のツールがあり、その設定ファイルがBerksfile。 少し前にLibrarian-Chefをインストールした記憶があるけど、最近はこっちが主流っぽい。

プロビジョニングは、裏で ssh で繋いでから sudo chef-solo を叩いているとのこと。

chefは冪等性という話。 以前rubyのバージョンアップ時に前のバージョンどうなるんだろうと怖かったので、過去のrubyのバージョンを残したままPR出したの思い出した。 書いた状態に収束されるということは、それ以外に関しては何も担保しないので残り続けるのだった・・

td−agentのレシピはこれだった。本の内容とは若干の変更あり

chef-td-agent/default.rb at master · treasure-data/chef-td-agent · GitHub

結構内部で普通にrubyのコード書いてる。

packageのremoveアクションの使いどころってどういう時だろうとふと思った。 元々使ってたけどもう不要になったものをremoveで明示的に消して、いずれコードごと消すみたいな運用かな。

ohaiというツールはシステムの情報を取り出していい感じにjsonにしてくれる便利なやつだった https://github.com/chef/ohai

試しに ohai | head したらBroken pipeしたので扱いには気をつけようと思う。

本とソース読んだだけなので、特にコミットは無し。

おまけ:弊社イケメンエンジニアからjqという便利コマンドを教えていただきました。

$ cat nodes/webdb.json | jq ".run_list"
[
  "recipe[dstat]",
  "recipe[apache]",
  "recipe[mysql]"
]

便利だ・・・。 https://stedolan.github.io/jq/