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という便利コマンドを教えていただきました。
@adarapata jq噛ませて必要な絡むだけ取ると良い。
— P山 (@pyama86) 2016年3月16日
$ cat nodes/webdb.json | jq ".run_list" [ "recipe[dstat]", "recipe[apache]", "recipe[mysql]" ]
便利だ・・・。 https://stedolan.github.io/jq/