chef-soloは将来サポートされなくなる。
今のうちにchef-zeroもといknife-zero使って未来に行けるかのメモ
ご参考 knife-zero作者さま
- Chefのローカルモードだけでリモートサーバを運用してみようと、Knife-Zeroを作った。Nodeの構成情報もとれるよ。 – Qiita
- Ruby – Chefのローカルモードチュートリアル + knife-zero + knife-sakura – Qiita
以下メモ
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メモ」