読者です 読者をやめる 読者になる 読者になる

orenoblog

エンジニアになりたいExcel方眼紙erの物語

oreno knife-zeroメモ

chef

chef-soloは将来サポートされなくなる。

今のうちにchef-zeroもといknife-zero使って未来に行けるかのメモ

※ご参考 knife-zero作者さま

以下メモ

  • knife solo cook -Fの代替手段(~/.ssh/configとか-Fでsshのコンフィグ指定できるのかな)

-F はないですchef-serverだもんで。

-x username

-i identity file

--sudo sudoers.d でrootアクセス許可されているユーザ名指定するとよいよ

~/.ssh/configに定義しているホスト名だけ流用したい時は --attribute node を指定すりゃOK

--attribute はohaiで拾ってくるnode attributeのkeyを指定することができる。

実行例) hogehoge.comというname attributeを持つホストのrun_listをdry-run

knife zero chef_client 'name:hogehoge.com' -x ec2-user --sudo --attribute name --why-run
  • environment,role,nodesのファイルについて

knife zero bootstrap , knife environment create, knife role create した後は

エディタ等でいじってもOK.

ただしnode定義はbootstrap時点のohai情報がnodes/nodename.jsonに集約されるので、

エディタで編集するより knife node edit で修正したほうが良さそうな気もする..

インスタンスタイプ変わるとohaiでattribute取り直しな気もするし,

その時jsonの行数ちょっと変わりそうだし..(3ノード以上あると knife node edit が疲れるけど)

  • Berkshelf内でincludeしてる外部recipeはknife-zero実行クライアントのローカルに置いとくこと

knife soloだと実行時にターゲットノードでberks vendorの実行が行われているけど

knife-zeroはそうではないのであらかじめ berks vendor cookbooks しておく必要があります。

自分はこんなかんじでsite-cookbooksもberks vendor cookbooksを実行して cookbooks/に集約するようにしてます

source "https://supermarket.getchef.com"

cookbook "hostname"
cookbook "sudo"
cookbook "build-essential"
cookbook "yum"
cookbook "apache2"
cookbook "nginx"
cookbook "mariadb"
cookbook "dstat"
cookbook "td-agent", github: "treasure-data/chef-td-agent"
cookbook "common", path: './site-cookbooks/common'
cookbook "apache2", path: './site-cookbooks/apache2'
cookbook "user", path: './site-cookbooks/user'
cookbook "mariadb", path: './site-cookbooks/mariadb'
cookbook "fluentd", path: './site-cookbooks/fluentd'
  • test-kitchenどーなのよ

provisionerでchef-zeroがサポートされているのでそのまま利用できると思います。 自分は今のところ問題なく利用できてます。

が、kitchen-ec2がHVM専用のインスタンスタイプに対応していないらしく、ちょっとつらくなりました。

  • chef solo からknife zeroへの移行は?

多分容易にできるとおもう(chef zero化した時のrecipe修正は置いといて)

cookbooksの転送がなくなるのでいい感じかも。knife solo cleanし忘れとかあるので..

ただ knife zero bootstrap を実行してターゲットノードの /etc/chef 配下にclient.rb等登録する必要あり。

とりいそぎこんなかんじで。

chef soloの弱点?だった関連ノードのsearchと並列実行ができるようになって最高 の予感 とにかく並列実行はsaikou.

実行対象ホスト数上げ過ぎると失敗するけどsaikou...