こんにちは、cloudpackがみさん です。

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…

元記事はこちらです。
oreno knife-zeroメモ